Настройка 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 = true3. Настройте маршрутизацию к поставщику и сетевые ограничения
Задайте поставщика, модель, регион и конечную точку в 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. Проверьте развёртывание
Перезапустите приложение. На узле выполнения проверьте действующие требования, субъект AWS, поставщика, модель, регион и конечную точку.
Выполните одобренный рабочий процесс с тестовыми данными.
Убедитесь, что необходимые ограничения возможностей действуют. Проверьте поведение при конфликтующих пользовательских настройках, недействительных или просроченных учётных данных и сбоях маршрутизации; содержимое не должно перенаправляться на неодобренный адрес назначения.
Зафиксируйте версии настольного приложения и 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] там, где это поддерживается, затем перезапустите приложение. Управляйте внешними пакетами, установкой исправлений, отзывом, откатом и поддерживаемыми версиями отдельно. |