Bedrock GovCloud 구성
AWS GovCloud의 Amazon Bedrock으로 로컬 Codex 워크플로 구성하기
이 가이드에서는 API 모드에서 AWS GovCloud와 함께 Codex를 실행하기 위한 보안 설정을 설명합니다. 민감한 워크플로를 승인하기 전에 이 설정을 검토하세요.
검증 체크리스트 · 기능 참조 · Codex 구성 참조
공동 책임
AWS와 조직은 클라우드 배포의 보안 책임을 분담합니다. AWS 공동 책임 모델과 선택한 서비스의 문서를 검토하여 공급자가 제공하는 제어와 조직의 책임을 파악하세요. 시스템에서 해당 서비스를 사용하도록 승인할 책임은 소속 기관에 있습니다.
지원되는 배포에서 Codex는 AWS 인증을 사용하여 검토된 Amazon Bedrock 엔드포인트로 추론 요청을 보냅니다. 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. 기기 요구 사항 배포
앱을 실행하거나 인증하기 전에 시스템 구성 또는 MDM을 통해 검토된 Bedrock requirements.toml을 배포하세요. 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
us-gov-west-1에서 확인된 Mantle 배포의 경우 모델 ID와 프로필을 승인된 값으로 바꾸세요. 승인된 엔드포인트나 리전이 다르면 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"requires_openai_auth = false인 경우에도 AWS 인증이 필요합니다. Bedrock Runtime과 Bearer 토큰 게이트웨이에는 각각 승인된 공급자 및 인증 구성이 필요합니다. 이 Mantle URL이나 서명 서비스를 재사용하지 마세요.
네트워크 제어 적용
검토된 애플리케이션 및 기기 네트워크 정책과 에이전트 명령용 별도 정책을 적용하세요. 추론, 자격 증명 획득 및 갱신, 텔레메트리, 스토리지, 업데이트를 모두 포함하세요. 추론을 Bedrock으로 라우팅한다고 해서 모든 데스크톱 트래픽이 AWS로만 향하는 것은 아닙니다.
애플리케이션 네트워크 정책은 지원되는 애플리케이션 및 번들 app-server 요청에 적용됩니다. 이 정책은 에이전트 샌드박스 제어와 별개이며 운영 체제 방화벽이 아닙니다. 네이티브 업데이터 트래픽, Git, SSH, 외부 앱, 자격 증명 도우미, 하위 프로세스 네트워킹에는 별도 제어가 필요합니다.
이 예제는 us-gov-west-1에서 캐시된 검색을 선택합니다. AWS Bedrock 웹 검색 문서에서 리전별 가용성을 확인하고, 배포 담당자가 서비스를 승인한 경우에만 캐시된 검색을 사용하세요. 그렇지 않으면 web_search = "disabled"를 설정하세요.
4. 배포 검증
앱을 다시 시작하세요. 실행 호스트에서 실제 적용된 요구 사항, AWS 자격 증명, 공급자, 모델, 리전, 엔드포인트를 확인하세요.
예제 데이터로 승인된 워크플로를 실행하세요.
필요한 기능 제한이 적용되는지 확인하세요. 충돌하는 사용자 설정, 유효하지 않거나 만료된 자격 증명, 라우팅 실패를 테스트하세요. 콘텐츠가 승인되지 않은 대상으로 대체 전송되어서는 안 됩니다.
데스크톱 및 app-server 버전, 실제 적용된 구성, 결과, 롤백 절차를 기록하세요. 액세스 범위를 확대하기 전에 실패하거나 차단된 검증 항목을 해결하세요.
일반적인 문제 해결
| 문제 | 확인할 사항 |
|---|---|
| GovCloud 엔드포인트가 지원되지 않음 | 정확한 데스크톱/app-server 릴리스, 엔드포인트, 모델을 OpenAI에 확인하세요. 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은 Codex CLI의 /voice를 제어합니다. 이를 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 server를 차단합니다. 조직별 요구 사항과 보안 태세에 따라 활성화하세요. |
| 자동 승인 | 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] 아래에 설정한 다음 다시 시작하세요. 외부 패키지, 패치, 철회, 롤백, 지원 버전은 별도로 관리하세요. |