Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Модели и цены
    Обзор моделейВыбор моделиЧто нового в Claude 4.5Миграция на Claude 4.5Устаревшие моделиЦены
    Разработка с Claude
    Обзор функцийИспользование Messages APIКонтекстные окнаЛучшие практики промптинга
    Возможности
    Кеширование промптовРедактирование контекстаРасширенное мышлениеУсилиеПотоковая передача сообщенийПакетная обработкаЦитированияМногоязычная поддержкаПодсчет токеновEmbeddingsЗрениеПоддержка PDFFiles APIРезультаты поискаСтруктурированные выходные данные
    Инструменты
    ОбзорКак реализовать использование инструментовПотоковая передача инструментов с детализациейИнструмент BashИнструмент выполнения кодаПрограммное вызывание инструментовИнструмент управления компьютеромИнструмент текстового редактораИнструмент веб-выборкиИнструмент веб-поискаИнструмент памятиИнструмент поиска инструментов
    Agent Skills
    ОбзорБыстрый стартЛучшие практикиИспользование Skills с API
    Agent SDK
    ОбзорБыстрый стартTypeScript SDKTypeScript V2 (предпросмотр)Python SDKРуководство по миграции
    Потоковый вводОбработка разрешенийУправление выполнением с помощью хуковУправление сеансамиСтруктурированные выходные данные в SDKРазмещение Agent SDKБезопасное развертывание AI-агентовИзменение системных промптовMCP в SDKПользовательские инструментыПодагенты в SDKКосые команды в SDKAgent Skills в SDKОтслеживание затрат и использованияСписки задачПлагины в SDK
    MCP в API
    MCP коннекторУдаленные MCP серверы
    Claude на платформах третьих сторон
    Amazon BedrockMicrosoft FoundryVertex AI
    Инженерия промптов
    ОбзорГенератор промптовИспользование шаблонов промптовУлучшитель промптовБудьте ясны и прямолинейныИспользуйте примеры (многошаговый промптинг)Дайте Claude подумать (CoT)Используйте XML тегиДайте Claude роль (системные промпты)Предзаполните ответ ClaudeЦепочка сложных промптовСоветы по длинному контекстуСоветы по расширенному мышлению
    Тестирование и оценка
    Определение критериев успехаРазработка тестовых случаевИспользование инструмента оценкиСнижение задержки
    Усиление защиты
    Снижение галлюцинацийПовышение согласованности выходных данныхСмягчение взломовПотоковые отказыСнижение утечки промптовДержите Claude в образе
    Администрирование и мониторинг
    Обзор Admin APIAPI использования и затратClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Руководства

    Безопасное развертывание AI-агентов

    Руководство по защите развертываний Claude Code и Agent SDK с использованием изоляции, управления учетными данными и сетевых элементов управления

    Claude Code и Agent SDK — это мощные инструменты, которые могут выполнять код, получать доступ к файлам и взаимодействовать с внешними сервисами от вашего имени. Как и любой инструмент с такими возможностями, их продуманное развертывание гарантирует, что вы получите преимущества, сохраняя при этом надлежащий контроль.

    В отличие от традиционного программного обеспечения, которое следует предопределенным путям кода, эти инструменты динамически генерируют свои действия на основе контекста и целей. Эта гибкость делает их полезными, но это также означает, что их поведение может быть подвержено влиянию содержимого, которое они обрабатывают: файлы, веб-страницы или пользовательский ввод. Это иногда называют инъекцией подсказок. Например, если README репозитория содержит необычные инструкции, Claude Code может включить их в свои действия способами, которые оператор не предусмотрел. Это руководство охватывает практические способы снижения этого риска.

    Хорошая новость заключается в том, что защита развертывания агента не требует экзотической инфраструктуры. Те же принципы, которые применяются к запуску любого полудоверенного кода, применяются здесь: изоляция, принцип наименьших привилегий и защита в глубину. Claude Code включает несколько функций безопасности, которые помогают с общими проблемами, и это руководство проходит через них вместе с дополнительными вариантами усиления для тех, кому они нужны.

    Не каждое развертывание требует максимальной безопасности. Разработчик, запускающий Claude Code на своем ноутбуке, имеет другие требования, чем компания, обрабатывающая данные клиентов в многотенантной среде. Это руководство представляет варианты, начиная от встроенных функций безопасности Claude Code до усиленных архитектур производства, поэтому вы можете выбрать то, что подходит вашей ситуации.

    Что мы защищаем?

    Агенты могут предпринимать непредусмотренные действия из-за инъекции подсказок (инструкции, встроенные в содержимое, которое они обрабатывают) или ошибки модели. Модели Claude разработаны для сопротивления этому, и, как мы проанализировали в нашей карточке модели, мы считаем, что Claude Opus 4.5 — это самая надежная граничная модель из доступных.

    Защита в глубину — это все еще хорошая практика. Например, если агент обрабатывает вредоносный файл, который инструктирует его отправить данные клиента на внешний сервер, сетевые элементы управления могут полностью заблокировать этот запрос.

    Встроенные функции безопасности

    Claude Code включает несколько функций безопасности, которые решают общие проблемы. Полные детали см. в .

    • Что мы защищаем?
    • Встроенные функции безопасности
    • Принципы безопасности
    • Границы безопасности
    • Принцип наименьших привилегий
    • Защита в глубину
    • Технологии изоляции
    • Среда выполнения песочницы
    • Контейнеры
    • gVisor
    • Виртуальные машины
    • Облачные развертывания
    • Управление учетными данными
    • Паттерн прокси
    • Настройка Claude Code для использования прокси
    • Реализация прокси
    • Учетные данные для других сервисов
    • Конфигурация файловой системы
    • Монтирование кода только для чтения
    • Записываемые местоположения
    • Дополнительное чтение
    документации по безопасности
    • Система разрешений: Каждый инструмент и команда bash можно настроить на разрешение, блокировку или запрос одобрения у пользователя. Используйте глобальные шаблоны для создания правил, таких как «разрешить все команды npm» или «заблокировать любую команду с sudo». Организации могут устанавливать политики, которые применяются ко всем пользователям. См. управление доступом и разрешения.
    • Статический анализ: Перед выполнением команд bash Claude Code запускает статический анализ для выявления потенциально рискованных операций. Команды, которые изменяют системные файлы или получают доступ к конфиденциальным каталогам, помечаются и требуют явного одобрения пользователя.
    • Суммирование веб-поиска: Результаты поиска суммируются, а не передаются в контекст в виде необработанного содержимого, что снижает риск инъекции подсказок из вредоносного веб-содержимого.
    • Режим песочницы: Команды bash могут работать в изолированной среде, которая ограничивает доступ к файловой системе и сети. Подробности см. в документации по изоляции.

    Принципы безопасности

    Для развертываний, требующих дополнительного усиления сверх значений по умолчанию Claude Code, эти принципы направляют доступные варианты.

    Границы безопасности

    Граница безопасности отделяет компоненты с разными уровнями доверия. Для развертываний с высокой безопасностью вы можете разместить конфиденциальные ресурсы (такие как учетные данные) вне границы, содержащей агента. Если что-то пойдет не так в среде агента, ресурсы вне этой границы остаются защищенными.

    Например, вместо того чтобы давать агенту прямой доступ к ключу API, вы можете запустить прокси вне среды агента, который вводит ключ в запросы. Агент может делать вызовы API, но он никогда не видит саму учетную данные. Этот паттерн полезен для многотенантных развертываний или при обработке ненадежного содержимого.

    Принцип наименьших привилегий

    При необходимости вы можете ограничить агента только возможностями, необходимыми для его конкретной задачи:

    РесурсВарианты ограничения
    Файловая системаМонтируйте только необходимые каталоги, предпочитайте только для чтения
    СетьОграничьте конкретными конечными точками через прокси
    Учетные данныеВводите через прокси, а не раскрывайте напрямую
    Возможности системыУдалите возможности Linux в контейнерах

    Защита в глубину

    Для высокозащищенных сред наслоение нескольких элементов управления обеспечивает дополнительную защиту. Варианты включают:

    • Изоляция контейнера
    • Ограничения сети
    • Элементы управления файловой системой
    • Проверка запроса на прокси

    Правильная комбинация зависит от вашей модели угроз и операционных требований.

    Технологии изоляции

    Различные технологии изоляции предлагают различные компромиссы между силой безопасности, производительностью и операционной сложностью.

    Во всех этих конфигурациях Claude Code (или ваше приложение Agent SDK) работает внутри границы изоляции — песочницы, контейнера или виртуальной машины. Описанные ниже элементы управления безопасностью ограничивают, к чему агент может получить доступ из этой границы.

    ТехнологияСила изоляцииНакладные расходы производительностиСложность
    Среда выполнения песочницыХорошо (безопасные значения по умолчанию)Очень низкоНизко
    Контейнеры (Docker)Зависит от настройкиНизкоСреднее
    gVisorОтлично (при правильной настройке)Среднее/ВысокоеСреднее
    Виртуальные машины (Firecracker, QEMU)Отлично (при правильной настройке)ВысокоеСреднее/Высокое

    Среда выполнения песочницы

    Для легкой изоляции без контейнеров sandbox-runtime обеспечивает ограничения файловой системы и сети на уровне ОС.

    Основное преимущество — простота: не требуется конфигурация Docker, образы контейнеров или настройка сети. Прокси и ограничения файловой системы встроены. Вы предоставляете файл настроек, указывающий разрешенные домены и пути.

    Как это работает:

    • Файловая система: Использует примитивы ОС (bubblewrap на Linux, sandbox-exec на macOS) для ограничения доступа на чтение/запись к настроенным путям
    • Сеть: Удаляет пространство имен сети (Linux) или использует профили Seatbelt (macOS) для маршрутизации сетевого трафика через встроенный прокси
    • Конфигурация: Списки разрешений на основе JSON для доменов и путей файловой системы

    Установка:

    npm install @anthropic-ai/sandbox-runtime

    Затем создайте файл конфигурации, указывающий разрешенные пути и домены.

    Соображения безопасности:

    1. Ядро на одном хосте: В отличие от виртуальных машин, изолированные процессы используют ядро хоста совместно. Уязвимость ядра теоретически может позволить выход. Для некоторых моделей угроз это приемлемо, но если вам нужна изоляция на уровне ядра, используйте gVisor или отдельную виртуальную машину.

    2. Нет проверки TLS: Прокси использует списки разрешений доменов, но не проверяет зашифрованный трафик. Если агент имеет разрешительные учетные данные для разрешенного домена, убедитесь, что невозможно использовать этот домен для запуска других сетевых запросов или для утечки данных.

    Для многих случаев использования одного разработчика и CI/CD sandbox-runtime значительно повышает планку с минимальной настройкой. Разделы ниже охватывают контейнеры и виртуальные машины для развертываний, требующих более сильной изоляции.

    Контейнеры

    Контейнеры обеспечивают изоляцию через пространства имен Linux. Каждый контейнер имеет свой собственный вид файловой системы, дерева процессов и стека сети, при этом совместно используя ядро хоста.

    Конфигурация контейнера с усиленной безопасностью может выглядеть так:

    docker run \
      --cap-drop ALL \
      --security-opt no-new-privileges \
      --security-opt seccomp=/path/to/seccomp-profile.json \
      --read-only \
      --tmpfs /tmp:rw,noexec,nosuid,size=100m \
      --tmpfs /home/agent:rw,noexec,nosuid,size=500m \
      --network none \
      --memory 2g \
      --cpus 2 \
      --pids-limit 100 \
      --user 1000:1000 \
      -v /path/to/code:/workspace:ro \
      -v /var/run/proxy.sock:/var/run/proxy.sock:ro \
      agent-image

    Вот что делает каждый вариант:

    ВариантНазначение
    --cap-drop ALLУдаляет возможности Linux, такие как NET_ADMIN и SYS_ADMIN, которые могут позволить повышение привилегий
    --security-opt no-new-privilegesПредотвращает получение процессами привилегий через двоичные файлы setuid
    --security-opt seccomp=...Ограничивает доступные системные вызовы; значение по умолчанию Docker блокирует ~44, пользовательские профили могут блокировать больше
    --read-onlyДелает корневую файловую систему контейнера неизменяемой, предотвращая сохранение изменений агентом
    --tmpfs /tmp:...Предоставляет записываемый временный каталог, который очищается при остановке контейнера
    --network noneУдаляет все сетевые интерфейсы; агент взаимодействует через смонтированный сокет Unix ниже
    --memory 2gОграничивает использование памяти, чтобы предотвратить истощение ресурсов
    --pids-limit 100Ограничивает количество процессов, чтобы предотвратить fork-бомбы
    --user 1000:1000Работает как непривилегированный пользователь
    -v ...:/workspace:roМонтирует код только для чтения, чтобы агент мог анализировать, но не изменять его. Избегайте монтирования конфиденциальных каталогов хоста, таких как ~/.ssh, ~/.aws или ~/.config
    -v .../proxy.sock:...Монтирует сокет Unix, подключенный к прокси, работающему вне контейнера (см. ниже)

    Архитектура сокета Unix:

    С --network none контейнер вообще не имеет сетевых интерфейсов. Единственный способ для агента достичь внешнего мира — через смонтированный сокет Unix, который подключается к прокси, работающему на хосте. Этот прокси может обеспечивать списки разрешений доменов, вводить учетные данные и регистрировать весь трафик.

    Это та же архитектура, используемая sandbox-runtime. Даже если агент скомпрометирован через инъекцию подсказок, он не может утечь данные на произвольные серверы — он может взаимодействовать только через прокси, который контролирует, какие домены доступны. Для получения дополнительной информации см. блог Claude Code sandboxing.

    Дополнительные варианты усиления:

    ВариантНазначение
    --userns-remapОтображает корень контейнера на непривилегированного пользователя хоста; требует конфигурации демона, но ограничивает ущерб от выхода контейнера
    --ipc privateИзолирует межпроцессное взаимодействие, чтобы предотвратить атаки между контейнерами

    gVisor

    Стандартные контейнеры используют ядро хоста совместно: когда код внутри контейнера делает системный вызов, он идет прямо к тому же ядру, которое запускает хост. Это означает, что уязвимость ядра может позволить выход контейнера. gVisor решает эту проблему, перехватывая системные вызовы в пользовательском пространстве перед тем, как они достигнут ядра хоста, реализуя свой собственный уровень совместимости, который обрабатывает большинство системных вызовов без участия реального ядра.

    Если агент запускает вредоносный код (возможно, из-за инъекции подсказок), этот код работает в контейнере и может попытаться использовать уязвимости ядра. С gVisor поверхность атаки намного меньше: вредоносный код должен сначала использовать реализацию gVisor в пользовательском пространстве и будет иметь ограниченный доступ к реальному ядру.

    Чтобы использовать gVisor с Docker, установите среду выполнения runsc и настройте демон:

    // /etc/docker/daemon.json
    {
      "runtimes": {
        "runsc": {
          "path": "/usr/local/bin/runsc"
        }
      }
    }

    Затем запустите контейнеры с:

    docker run --runtime=runsc agent-image

    Соображения производительности:

    Рабочая нагрузкаНакладные расходы
    Вычисления, связанные с ЦП~0% (нет перехвата системных вызовов)
    Простые системные вызовы~2× медленнее
    Интенсивный ввод-вывод файловДо 10-200× медленнее для тяжелых паттернов открытия/закрытия

    Для многотенантных сред или при обработке ненадежного содержимого дополнительная изоляция часто стоит накладных расходов.

    Виртуальные машины

    Виртуальные машины обеспечивают изоляцию на уровне оборудования через расширения виртуализации ЦП. Каждая виртуальная машина запускает свое собственное ядро, создавая сильную границу — уязвимость в ядре гостя не напрямую компрометирует хост. Однако виртуальные машины не являются автоматически «более безопасными», чем альтернативы, такие как gVisor. Безопасность виртуальной машины сильно зависит от гипервизора и кода эмуляции устройства.

    Firecracker разработан для легкой изоляции microVM — он может загружать виртуальные машины менее чем за 125 мс с накладными расходами памяти менее 5 МиБ, удаляя ненужную эмуляцию устройств, чтобы уменьшить поверхность атаки.

    При таком подходе виртуальная машина агента не имеет внешнего сетевого интерфейса. Вместо этого она взаимодействует через vsock (виртуальные сокеты). Весь трафик маршрутизируется через vsock к прокси на хосте, который обеспечивает списки разрешений и вводит учетные данные перед пересылкой запросов.

    Облачные развертывания

    Для облачных развертываний вы можете комбинировать любую из вышеуказанных технологий изоляции с облачными сетевыми элементами управления:

    1. Запустите контейнеры агента в приватной подсети без интернет-шлюза
    2. Настройте правила облачного брандмауэра (AWS Security Groups, GCP VPC firewall) для блокировки всего исходящего трафика, кроме вашего прокси
    3. Запустите прокси (такой как Envoy с его фильтром credential_injector), который проверяет запросы, обеспечивает списки разрешений доменов, вводит учетные данные и пересылает на внешние API
    4. Назначьте минимальные разрешения IAM учетной записи сервиса агента, маршрутизируя конфиденциальный доступ через прокси, где это возможно
    5. Регистрируйте весь трафик на прокси в целях аудита

    Управление учетными данными

    Агентам часто нужны учетные данные для вызова API, доступа к репозиториям или взаимодействия с облачными сервисами. Задача состоит в том, чтобы предоставить этот доступ без раскрытия самих учетных данных.

    Паттерн прокси

    Рекомендуемый подход — запустить прокси вне границы безопасности агента, который вводит учетные данные в исходящие запросы. Агент отправляет запросы без учетных данных, прокси добавляет их и пересылает запрос на его назначение.

    Этот паттерн имеет несколько преимуществ:

    1. Агент никогда не видит фактические учетные данные
    2. Прокси может обеспечивать список разрешений разрешенных конечных точек
    3. Прокси может регистрировать все запросы для аудита
    4. Учетные данные хранятся в одном безопасном месте, а не распределяются каждому агенту

    Настройка Claude Code для использования прокси

    Claude Code поддерживает два метода маршрутизации запросов выборки через прокси:

    Вариант 1: ANTHROPIC_BASE_URL (простой, но только для запросов API выборки)

    export ANTHROPIC_BASE_URL="http://localhost:8080"

    Это говорит Claude Code и Agent SDK отправлять запросы выборки на ваш прокси вместо прямого обращения к API Anthropic. Ваш прокси получает открытые HTTP-запросы, может проверять и изменять их (включая введение учетных данных), затем пересылает на реальный API.

    Вариант 2: HTTP_PROXY / HTTPS_PROXY (системный)

    export HTTP_PROXY="http://localhost:8080"
    export HTTPS_PROXY="http://localhost:8080"

    Claude Code и Agent SDK соблюдают эти стандартные переменные окружения, маршрутизируя весь HTTP-трафик через прокси. Для HTTPS прокси создает зашифрованный туннель CONNECT: он не может видеть или изменять содержимое запроса без перехвата TLS.

    Реализация прокси

    Вы можете создать свой собственный прокси или использовать существующий:

    • Envoy Proxy — прокси производственного уровня с фильтром credential_injector для добавления заголовков аутентификации
    • mitmproxy — прокси с завершением TLS для проверки и изменения трафика HTTPS
    • Squid — кэширующий прокси со списками управления доступом
    • LiteLLM — шлюз LLM с введением учетных данных и ограничением скорости

    Учетные данные для других сервисов

    Помимо выборки из API Anthropic, агентам часто нужен аутентифицированный доступ к другим сервисам — репозиториям git, базам данных, внутренним API. Есть два основных подхода:

    Пользовательские инструменты

    Предоставьте доступ через сервер MCP или пользовательский инструмент, который маршрутизирует запросы к сервису, работающему вне границы безопасности агента. Агент вызывает инструмент, но фактический аутентифицированный запрос происходит снаружи — инструмент вызывает прокси, который вводит учетные данные перед контактом с удаленным репозиторием. Агент никогда не видит учетные данные.

    Преимущества:

    • Нет перехвата TLS: Внешний сервис делает аутентифицированные запросы напрямую
    • Учетные данные остаются снаружи: Агент видит только интерфейс инструмента, не лежащие в основе учетные данные

    Пересылка трафика

    Для вызовов API Anthropic ANTHROPIC_BASE_URL позволяет маршрутизировать запросы на прокси, который может проверять и изменять их в открытом виде. Но для других сервисов HTTPS (GitHub, реестры npm, внутренние API) трафик часто зашифрован от конца до конца — даже если вы маршрутизируете его через прокси через HTTP_PROXY, прокси видит только непрозрачный туннель TLS и не может вводить учетные данные.

    Чтобы изменить трафик HTTPS на произвольные сервисы без использования пользовательского инструмента, вам нужен прокси с завершением TLS, который расшифровывает трафик, проверяет или изменяет его, затем повторно шифрует перед пересылкой. Это требует:

    1. Запуска прокси вне контейнера агента
    2. Установки сертификата ЦС прокси в хранилище доверия агента (чтобы агент доверял сертификатам прокси)
    3. Настройки HTTP_PROXY/HTTPS_PROXY для маршрутизации трафика через прокси

    Этот подход обрабатывает любой сервис на основе HTTP без написания пользовательских инструментов, но добавляет сложность вокруг управления сертификатами.

    Обратите внимание, что не все программы соблюдают HTTP_PROXY/HTTPS_PROXY. Большинство инструментов (curl, pip, npm, git) это делают, но некоторые могут обойти эти переменные и подключиться напрямую. Например, Node.js fetch() по умолчанию игнорирует эти переменные; в Node 24+ вы можете установить NODE_USE_ENV_PROXY=1 для включения поддержки. Для полного охвата вы можете использовать proxychains для перехвата сетевых вызовов или настроить iptables для перенаправления исходящего трафика на прозрачный прокси.

    Прозрачный прокси перехватывает трафик на сетевом уровне, поэтому клиент не нуждается в конфигурации для его использования. Обычные прокси требуют, чтобы клиенты явно подключались и говорили HTTP CONNECT или SOCKS. Прозрачные прокси (такие как Squid или mitmproxy в прозрачном режиме) могут обрабатывать необработанные перенаправленные TCP-соединения.

    Оба подхода все еще требуют прокси с завершением TLS и доверенного сертификата ЦС — они просто гарантируют, что трафик действительно достигает прокси.

    Конфигурация файловой системы

    Элементы управления файловой системой определяют, какие файлы агент может читать и писать.

    Монтирование кода только для чтения

    Когда агенту нужно анализировать код, но не изменять его, смонтируйте каталог только для чтения:

    docker run -v /path/to/code:/workspace:ro agent-image

    Даже доступ только для чтения к каталогу кода может раскрыть учетные данные. Общие файлы для исключения или очистки перед монтированием:

    ФайлРиск
    .env, .env.localКлючи API, пароли базы данных, секреты
    ~/.git-credentialsПароли/токены Git в открытом виде
    ~/.aws/credentialsКлючи доступа AWS
    ~/.config/gcloud/application_default_credentials.jsonТокены Google Cloud ADC
    ~/.azure/Учетные данные Azure CLI
    ~/.docker/config.jsonТокены аутентификации реестра Docker
    ~/.kube/configУчетные данные кластера Kubernetes
    .npmrc, .pypircТокены реестра пакетов
    *-service-account.jsonКлючи учетной записи сервиса GCP
    *.pem, *.keyПриватные ключи

    Рассмотрите возможность копирования только необходимых исходных файлов или использования фильтрации в стиле .dockerignore.

    Записываемые местоположения

    Если агенту нужно писать файлы, у вас есть несколько вариантов в зависимости от того, хотите ли вы, чтобы изменения сохранялись:

    Для эфемерных рабочих пространств в контейнерах используйте монтирования tmpfs, которые существуют только в памяти и очищаются при остановке контейнера:

    docker run \
      --read-only \
      --tmpfs /tmp:rw,noexec,nosuid,size=100m \
      --tmpfs /workspace:rw,noexec,size=500m \
      agent-image

    Если вы хотите просмотреть изменения перед их сохранением, файловая система оверлея позволяет агенту писать без изменения базовых файлов — изменения хранятся в отдельном слое, который вы можете проверить, применить или отклонить. Для полностью постоянного вывода смонтируйте выделенный том, но держите его отдельно от конфиденциальных каталогов.

    Дополнительное чтение

    • Документация по безопасности Claude Code
    • Размещение Agent SDK
    • Обработка разрешений
    • Sandbox runtime
    • The Lethal Trifecta for AI Agents
    • OWASP Top 10 for LLM Applications
    • Docker Security Best Practices
    • gVisor Documentation
    • Firecracker Documentation