Настройка Bedrock в GovCloud

Настройте локальные рабочие процессы Codex с Amazon Bedrock в AWS GovCloud

В этом руководстве описаны параметры безопасности для работы Codex с AWS GovCloud в режиме API. Изучите эти параметры, прежде чем разрешать чувствительные с точки зрения безопасности рабочие процессы.

Контрольный список проверки · Справочник возможностей · Справочник по настройке Codex

Совместная ответственность

AWS и ваша организация несут совместную ответственность за безопасность облачного развёртывания. Изучите модель совместной ответственности AWS и документацию выбранных сервисов, чтобы определить меры защиты со стороны поставщика и ваши обязанности. Ваше ведомство отвечает за разрешение на использование этих сервисов своей системой.

В поддерживаемом развёртывании Codex отправляет запросы на инференс на проверенную конечную точку Amazon Bedrock с использованием аутентификации AWS. Требования рабочего пространства ChatGPT и RBAC не применяются к этому способу работы в режиме API. Настройте идентификацию в AWS, доступ к сервисам и рабочую станцию, на которой работает Codex.

Конфигурация рабочей станции, включая файлы политик Codex в формате TOML, определяет доступ к локальным файлам, выполнение команд, доступ к сети, плагины, инструменты MCP и возможности браузера. Вы отвечаете за защиту рабочих станций, учётных данных, репозиториев, локальных записей и всех включённых сторонних сервисов. Назначьте ответственных за политику устройств, сетевые ограничения, обновления и проверку развёртывания.

Сами по себе AWS GovCloud и эти настройки не гарантируют соответствия всего рабочего процесса требованиям ведомства. Проверьте конкретные сервисы, модели, регионы, адреса назначения и потоки данных в вашем развёртывании и задокументируйте свои обязанности как клиента в плане безопасности системы.

Перед началом работы

Убедитесь, что ваша версия Codex поддерживает GovCloud.

Подготовка Что потребуется
Доступ к AWS Одобренные аккаунт, субъект IAM и механизм получения учётных данных; разрешённые модель, регион GovCloud и конечная точка.
Пакет развёртывания Поддерживаемый выпуск настольного приложения и входящего в его состав app-server, проверенная политика требований Bedrock, одобренные адреса назначения для аутентификации, хранения данных и эксплуатационных операций, а также инструкции по откату.
Управление устройствами Доступ к системной конфигурации или MDM, а также проверенные сетевые политики для приложения, устройства и команд агента.

1. Подготовьте доступ к AWS

Выберите одобренные аккаунт AWS и субъект IAM с доступом к выбранным модели и региону. Предоставьте учётные данные через механизм, одобренный вашей организацией. Не храните учётные данные в TOML.

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

2. Разверните требования на устройствах

Разверните проверенный файл requirements.toml для Bedrock через системную конфигурацию или MDM до запуска приложения или аутентификации. Сеансы в режиме API не получают требования рабочего пространства ChatGPT или RBAC.

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

Сведения о расположении системных файлов и доставке через MDM приведены в разделе «Управляемая конфигурация». Защитите управляемую политику и проверьте её действующие настройки на узле выполнения на шаге 4.

Рекомендуемый requirements.toml

Эта конфигурация намеренно ограничивает возможности. Она рекомендуется для GovCloud, если ваша организация не применяет другие ограничения. Подробности о каждом параметре приведены в справочнике по настройке.

Последняя таблица [windows] применяется только к Windows. Убедитесь, что одобренная вами среда выполнения поддерживает sandbox_private_desktop.

requirements.toml

allowed_login_methods = ["api"]
allowed_sandbox_modes = ["read-only", "workspace-write"]
allowed_approvals_reviewers = ["user"]
allowed_approval_policies = [
  { granular = { sandbox_approval = false, rules = true, mcp_elicitations = false, request_permissions = false, skill_approval = true } },
]
allowed_web_search_modes = ["disabled", "cached"]
allow_browser_and_computer_use = false
allow_appshots = false
allow_remote_control = false
allow_login_shell = false
allow_managed_hooks_only = true
check_for_update_on_startup = false
mcp_servers = {}

[feedback]
enabled = false

[features]
network_proxy = true
in_app_chat = false
in_app_dictation = false
in_app_browser = false
browser_use = false
browser_use_external = false
browser_use_full_cdp_access = false
computer_use = false
in_app_updates = false
image_generation = false
memories = false
chronicle = false
external_agent_memory_import = false
guardian_approval = false
guardianv2 = false
guardian_ext = false
apps = false
enable_mcp_apps = false
plugins = false
remote_plugin = false
plugin_sharing = false
recommended_plugins = false
skill_mcp_dependency_install = false
skill_search = false
workspace_dependencies = false
hooks = false
standalone_web_search = false

[experimental_network]
enabled = true
managed_allowed_domains_only = true
domains = {}
unix_sockets = {}
allow_upstream_proxy = false
dangerously_allow_non_loopback_proxy = false
dangerously_allow_all_unix_sockets = false
allow_local_binding = false

# Application destinations

[application.network]
enabled = true

[application.network.domains]
"bedrock-mantle.us-gov-west-1.api.aws" = "allow"

# OpenAI / ChatGPT, including auth and telemetry.

"api.openai.com" = "deny"
"chat.openai.com" = "deny"
"chatgpt.com" = "deny"
"ab.chatgpt.com" = "deny"
"platform.openai.com" = "deny"
"auth.openai.com" = "deny"

# FedRAMP OpenAI endpoints are also outside this Bedrock profile.

"gov.api.openai.com" = "deny"
"gov.chatgpt.com" = "deny"
"sdfedpreastus2.oaiusercontent.com" = "deny"

# Crash reporting and distribution.

"o33249.ingest.us.sentry.io" = "deny"
"persistent.oaistatic.com" = "deny"
"oaisidekickupdates.blob.core.windows.net" = "deny"

# Windows only

[windows]
allowed_sandbox_implementations = ["elevated"]
sandbox_private_desktop = true

3. Настройте маршрутизацию к поставщику и сетевые ограничения

Задайте поставщика, модель, регион и конечную точку в config.toml или в управляемых настройках по умолчанию, отдельно от requirements.toml. Пользователи могут менять настройки поставщика по умолчанию, если управляемая политика их не ограничивает.

Рекомендуемый config.toml

Для подтверждённого развёртывания Mantle в us-gov-west-1 замените идентификатор модели и профиль одобренными значениями. Если одобренная конечная точка или регион отличаются, обновите URL, регион и сетевую политику одновременно.

Эти настройки по умолчанию задают маршрут запросов на инференс, соответствуют управляемой политике одобрения и отключают необязательную диагностику и передачу данных. Пользователи могут менять настройки по умолчанию в пределах управляемых требований. Храните учётные данные AWS вне файла TOML. Последняя таблица [windows] применяется только к Windows и должна соответствовать одобренной вами среде выполнения.

config.toml

model = "REPLACE_WITH_APPROVED_MODEL_ID"
model_provider = "amazon-bedrock"
forced_login_method = "api"
approval_policy = { granular = { sandbox_approval = false, rules = true, mcp_elicitations = false, request_permissions = false, skill_approval = true } }
approvals_reviewer = "user"
sandbox_mode = "workspace-write"
web_search = "cached"
allow_login_shell = false
check_for_update_on_startup = false

[model_providers.amazon-bedrock]
base_url = "https://bedrock-mantle.us-gov-west-1.api.aws/openai/v1"
wire_api = "responses"
requires_openai_auth = false
supports_websockets = false
supports_standalone_web_search = false

[model_providers.amazon-bedrock.aws]
region = "us-gov-west-1"
profile = "codex-il5"

[sandbox_workspace_write]
network_access = false

[features]
network_proxy = true

[analytics]
enabled = false

[feedback]
enabled = false

[otel]
exporter = "none"
trace_exporter = "none"
metrics_exporter = "none"
log_user_prompt = false

[memories]
generate_memories = false
use_memories = false

[skills.bundled]
enabled = false

[apps._default]
enabled = false

# Windows only

[windows]
sandbox = "elevated"

Аутентификация AWS по-прежнему необходима при requires_openai_auth = false. Для Bedrock Runtime и шлюзов с bearer-токенами требуется собственная одобренная конфигурация поставщика и аутентификации; не используйте для них этот URL Mantle или сервис подписи.

Примените сетевые ограничения

Примените проверенные сетевые политики для приложения и устройства, а также отдельную политику для команд агента. Охватите инференс, получение и обновление учётных данных, телеметрию, хранение данных и обновления. Маршрутизация запросов на инференс через Bedrock не означает, что весь трафик настольного приложения направляется только в AWS.

Сетевая политика приложения охватывает поддерживаемые запросы приложения и входящего в его состав app-server. Она действует отдельно от ограничений песочницы агента и не является межсетевым экраном операционной системы. Трафик встроенного механизма обновлений, Git, SSH, внешних приложений, вспомогательных программ для работы с учётными данными и сетевые обращения подпроцессов требуют отдельных мер контроля.

В примере для us-gov-west-1 выбран поиск по кэшу. Проверьте доступность в нужном регионе в документации AWS Bedrock по веб-поиску и используйте поиск по кэшу только после одобрения сервиса ответственным за развёртывание. В противном случае задайте web_search = "disabled".

4. Проверьте развёртывание

  1. Перезапустите приложение. На узле выполнения проверьте действующие требования, субъект AWS, поставщика, модель, регион и конечную точку.

  2. Выполните одобренный рабочий процесс с тестовыми данными.

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

Зафиксируйте версии настольного приложения и app-server, действующую конфигурацию, результаты и процедуру отката. Устраните причины неудачных или заблокированных проверок, прежде чем расширять доступ.

Устранение распространённых проблем

Проблема Что проверить
Конечная точка GovCloud не поддерживается Уточните у OpenAI поддержку конкретного выпуска настольного приложения/app-server, конечной точки и модели. Одно лишь изменение URL не обеспечивает поддержку.
Используется неверный субъект AWS Проверьте фактически используемый источник учётных данных и именованный профиль. Проверьте, не имеет ли Bedrock API key приоритет над профилем.
Ограничения возможностей отсутствуют Проверьте полный набор действующих требований после перезапуска. Настройка входа только через API не применяет политику возможностей.

Справочник: ограничения возможностей Bedrock

Эти настройки описывают исходный профиль развёртывания Bedrock. Примените полную политику, предоставленную для поддерживаемого вами выпуска, включая сетевые ограничения AWS. Для локальной автоматизации и голосового взаимодействия в реальном времени требуются дополнительные меры контроля: in_app_local_automation и realtime_conversation не заданы в приведённой выше базовой конфигурации. Проверьте эти ограничения применительно к вашему развёртыванию.

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

Возможность Параметр политики Поведение в этом профиле
Беседы ChatGPT и Quick Chat [features] in_app_chat = false false скрывает интерфейсы бесед ChatGPT и Quick Chat. Эта настройка не останавливает существующие облачные задачи и не отключает ChatGPT Voice.
Локальная автоматизация [features] in_app_local_automation = false false предотвращает запуск локальных задач по расписанию, в том числе после перезапуска. true разрешает локальное планирование задач, если оно поддерживается при остальных действующих условиях. Облачные расписания регулируются отдельными мерами контроля.
Диктовка, транскрибация и голосовое взаимодействие в реальном времени in_app_dictation = false; realtime_conversation = false in_app_dictation управляет преобразованием речи в текст в настольном приложении: false отключает его, а true разрешает, если диктовка доступна. realtime_conversation управляет /voice в Codex CLI. Значение false не обеспечивает полной блокировки ChatGPT Voice в настольном приложении или голосовых сеансов app-server.
Встроенный браузер и автоматизация браузера in_app_browser, browser_use, browser_use_external, browser_use_full_cdp_access = false in_app_browser управляет панелью браузера внутри приложения. browser_use позволяет агенту просматривать веб-страницы, а browser_use_external распространяет эту возможность на сеансы браузера с выполненным входом. browser_use_full_cdp_access разрешает полную отладку браузера. Установка для каждого параметра значения false блокирует соответствующий способ доступа; true по-прежнему требует прохождения остальных проверок возможностей, сайтов и одобрений.
Управление компьютером, Appshots и история компьютера computer_use = false; allow_appshots = false верхнего уровня; chronicle = false computer_use = false блокирует управление нативными приложениями, allow_appshots = false блокирует захват изображений и текста окон. true разрешает каждую из этих возможностей с учётом других действующих для неё ограничений. chronicle = false используется для прекращения сбора данных Computer History.
Память между сеансами memories = false; external_agent_memory_import = false memories = false отключает создание и использование локальной памяти между чатами. true разрешает и то и другое с учётом memories.generate_memories и memories.use_memories. external_agent_memory_import = false также блокирует импорт памяти из других агентов для программирования, даже если локальная память включена.
Генерация изображений image_generation = false false отключает встроенный инструмент генерации изображений; true делает его доступным, если клиент, модель и поставщик его поддерживают. Этот переключатель не отключает ввод изображений или доступ к существующим файлам изображений; проверьте эти рабочие процессы на шаге 4.
Веб-поиск Следуйте политике веб-поиска одобренного развёртывания. cached использует поисковый кэш; disabled убирает инструмент веб-поиска. live разрешает прямой доступ к веб-ресурсам, а indexed ограничивает внешний доступ поисковым индексом. Приведённые выше требования допускают только cached или disabled. Проверьте поддержку поставщиком и одобренные адреса назначения на шаге 3.
Приложения, плагины, MCP и автоматические загрузки apps = false; plugins = false; явно заданный пустой [mcp_servers] false по умолчанию отключает приложения и плагины. Пустой список разрешений mcp_servers блокирует все настроенные MCP servers. Включайте их с учётом требований и мер безопасности вашей организации.
Автоматическое одобрение allowed_approvals_reviewers = ["user"]; guardian_approval = false; guardianv2 = false ["user"] разрешает рассмотрение запросов на одобрение только пользователю. Разрешение auto_review и возможностей Guardian позволило бы автоматически рассматривать запросы там, где это поддерживается. Настройка проверяющего определяет, кто рассматривает запросы, а approval_policy по-прежнему определяет, какие действия требуют одобрения.
Удалённое управление устройством allow_remote_control = false верхнего уровня false блокирует удалённое управление устройством. true или отсутствие требования допускает стандартную настройку удалённого управления там, где оно поддерживается; ни один из вариантов сам по себе не устанавливает соединение.

Дополнительные меры контроля развёртывания

Область Необходимая мера контроля
Облачные и удалённые рабочие процессы Оставьте недоступными облачное выполнение и расписания, SSH, общий доступ, сохранение в Library, размещённые в облаке знания проекта и уведомления, доставляемые по сети. Обеспечьте это отдельными мерами; флаги отдельных возможностей не охватывают все точки входа.
Телеметрия Отдельно проверьте аналитику, обратную связь, OpenTelemetry, отчёты о сбоях и фоновый трафик. feedback.enabled = false не отключает все каналы телеметрии.
Распространение приложения Для распространения обновлений приложения под управлением клиента задайте in_app_updates = false в разделе [features] там, где это поддерживается, затем перезапустите приложение. Управляйте внешними пакетами, установкой исправлений, отзывом, откатом и поддерживаемыми версиями отдельно.