人工智能
在 AWS GovCloud (US) 中为 ChatGPT 桌面应用配置 Amazon BedrockChatGPT 桌面应用现已在 Amazon Bedrock 上推出,适用于 AWS GovCloud (US), 通过两个组件提供对 OpenAI 前沿模型的访问。Work 可完成复杂的多步骤任务并交付可供审核的结果,Codex 则是用于开发、测试和审查软件的编码代理。
本演练面向安全架构要求模型推理使用 AWS GovCloud (US) 身份、终端节点和区域控制机制的组织。它将 Codex 配置为通过 Amazon Bedrock Mantle 在 us-gov-west-1中路由模型请求,在此可使用 AWS Identity and Access Management (IAM) 和现有 AWS GovCloud (US) 网络控制机制来管理访问权限。
Codex 是 OpenAI 的编码代理,用于 AI 驱动的软件开发。借助由 GPT 模型驱动的推理,Codex 引入了一类专为复杂、长周期开发者工作流优化的新型智能。您可以使用 ChatGPT 桌面应用、Codex CLI,以及与 Visual Studio Code、JetBrains 和 Xcode 的 IDE 集成。模型推理通过 Amazon Bedrock 上的 Responses API 进行路由。
对于有数据驻留要求的客户,处理过程会保留在您所选的 Amazon Bedrock AWS 区域内。您按 token 付费,无需席位许可,也没有按开发者计算的承诺用量。同时支持零数据保留(ZDR)。在此可配置模式下,提示和响应在处理过程中不会被 AWS 写入持久存储,也不会与模型提供商共享。这有助于您保护敏感信息,并满足严格的数据治理、隐私和安全要求。
本文介绍 ChatGPT 桌面应用的受控本地部署,该部署将模型推理发送至 AWS GovCloud (US-West) 中的 Amazon Bedrock。该配置使用 API 模式登录、托管设备策略、命名 AWS 配置文件以及网络限制。这些限制仅允许访问已批准的 Amazon Bedrock 终端节点,同时禁用其他外部连接和启用网络的功能。最终形成的部署可供机构安全团队测试和记录,然后再批准更广泛的使用。
使用 AWS GovCloud (US) 并遵循本指南本身并不构成对您工作负载的授权。您的组织仍需负责根据其系统安全计划和授权流程,审查所选模型、AWS 服务、区域、终端节点、工作站控制措施、代码仓库、凭证和数据流。
解决方案概述
您可以通过两种方式使用 ChatGPT 桌面应用:
- Work 用于需要规划、研究、文件和最终成果的较大任务。
- Codex 用于技术工作,例如编辑代码、运行测试和审查拉取请求。
ChatGPT 桌面应用通过桌面应用或 CLI 在组织管理的计算机上运行。它使用配置的 AWS 凭证安全地将请求发送到 us-gov-west-1中的 Amazon Bedrock Mantle 终端节点。由于此设置直接使用 AWS,因此不受 ChatGPT 工作区规则和用户角色的控制。主要安全控制措施是计算机的策略以及所使用的 AWS 身份和权限。
演练
该配置包含三个主要步骤:设置身份验证、设置 ChatGPT 桌面应用配置文件,然后启动、初始化并验证部署。
先决条件
在 AWS GovCloud (US) 中设置 ChatGPT 桌面应用之前,请确保 您的版本 的 ChatGPT 桌面应用支持 AWS GovCloud (US) 中的 Amazon Bedrock。您需要一个已批准的 AWS GovCloud (US) 账户、一个 IAM 身份和已批准的凭证、对已批准模型、AWS 区域和终端节点的访问权限,以及使用它们的权限。您还需要设置 requirements.toml 和 config.toml 文件。
步骤 1:设置身份验证
选择已批准的 AWS GovCloud (US) 账户和 IAM 身份或角色,使其有权访问 us-gov-west-1中已批准的模型。通过组织批准的机制获取凭证。本演练使用命名配置文件 codex-il5。请勿将凭证、持有者令牌、会话令牌和其他密钥保存在 TOML 文件中。
保护配置文件配置、凭证来源、SSO 令牌缓存以及任何凭证辅助程序,防止 ChatGPT 桌面应用任务写入,同时允许已批准的身份验证工具维护和刷新凭证。
ChatGPT 桌面应用支持两种 Amazon Bedrock 身份验证途径: Amazon Bedrock API 密钥 或 AWS SDK 凭证链. 通过 AWS IAM Identity Center 的 AWS SSO 在凭证链途径中受支持。
应用首先检查其环境中是否存在 AWS_BEARER_TOKEN_BEDROCK 。对于桌面使用,此变量可通过 Windows 上的 %USERPROFILE%\.codex\.env 或 Linux 和 macOS 上的 ~/.codex/.env 提供。存在时,持有者令牌优先于基于配置文件的身份验证。
如果没有可用的持有者令牌,应用将回退到标准 AWS SDK 凭证链。该链可以从 ~/.aws/credentials 读取 AWS 凭证,并从 ~/.aws/config读取相关配置文件设置。在 Windows 上,相应的默认路径为 %USERPROFILE%\.aws\credentials 和 %USERPROFILE%\.aws\config。该链还支持 SSO 配置文件。对于 SSO,它使用 AWS 配置文件中的配置文件设置和缓存的 SSO 会话获取临时角色凭证。这些凭证无需手动存储在 AWS 凭证文件中。请参阅 OpenAI 的 Bedrock 身份验证文档 和 AWS IAM Identity Center 凭证提供程序文档.
步骤 2:设置 ChatGPT 桌面应用配置文件
您必须创建两个 ChatGPT 桌面应用配置文件: config.toml 和 requirements.toml.
重要:必须在启动应用程序之前设置配置文件。下表显示了文件位置。
| 操作系统 | 用户 config.toml |
管理员 requirements.toml |
| Windows | %USERPROFILE%\.codex\config.toml |
%ProgramData%\OpenAI\Codex\requirements.toml |
| Linux | ~/.codex/config.toml |
/etc/codex/requirements.toml |
| macOS | ~/.codex/config.toml |
/etc/codex/requirements.toml |
从 requirements.toml 文件开始。 requirements.toml 是由管理员控制的规则文件。它设置用户无法覆盖的安全限制,例如限制 ChatGPT 桌面应用允许使用的权限级别、工具或设置。
对于受支持的 AWS GovCloud (US) Amazon Bedrock 部署,请使用以下基线。 [windows] 部分仅适用于 Windows,且 sandbox_private_desktop 必须得到已批准运行时的支持。
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.network]
enabled = true
[application.network.domains]
"bedrock-mantle.us-gov-west-1.api.aws" = "allow"
"api.openai.com" = "deny"
"chat.openai.com" = "deny"
"chatgpt.com" = "deny"
"ab.chatgpt.com" = "deny"
"platform.openai.com" = "deny"
"auth.openai.com" = "deny"
"gov.api.openai.com" = "deny"
"gov.chatgpt.com" = "deny"
"sdfedpreastus2.oaiusercontent.com" = "deny"
"o33249.ingest.us.sentry.io" = "deny"
"persistent.oaistatic.com" = "deny"
"oaisidekickupdates.blob.core.windows.net" = "deny"
[windows]
allowed_sandbox_implementations = ["elevated"]
sandbox_private_desktop = true
接下来,配置 config.toml 文件。 config.toml 用于告知 ChatGPT 桌面应用如何运行,包括使用哪个模型提供商(amazon-bedrock)、选择哪个模型,以及权限或上下文限制等设置。
将模型 ID 和命名配置文件(例如 codex-il5)替换为已批准的值。
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]
sandbox = "elevated"
第 3 步:启动、初始化并验证
从 ChatGPT 网站下载应用并安装。安装后保持应用关闭。如果应用自动打开,或此前已启动过该应用,请完全退出 ChatGPT,并结束所有残留的 ChatGPT 或 Codex 进程。
确保在首次启动应用前, requirements.toml 和 config.toml 已就位。
启动应用以加载 requirements.toml 和 config.toml 设置。确保其将 amazon-bedrock 显示为模型提供商。
在 Codex CLI 中,你应该会看到一个 /status 标签页,如下所示:
图 1:Codex CLI /status 标签页确认 amazon-bedrock 为模型提供商
在 ChatGPT 桌面应用中,你也可以确认 amazon-bedrock 为模型提供商。
图 2:ChatGPT 桌面应用设置显示 amazon-bedrock 为模型提供商
故障排除
应用提示登录 OpenAI 账户。 验证 requirements.toml 和 config.toml 使用的是前表中所示的确切位置和文件名,终止所有 ChatGPT 和 Codex 进程,然后重新启动。这些文件必须在应用启动之前就位。
AWS GovCloud (US) 端点被报告为不受支持。 与 OpenAI 确认确切的桌面版或应用服务器版本、端点和模型。仅更改 URL 并不能确立支持。
使用了错误的 AWS 身份。 检查实际生效的凭证来源和命名配置文件。检查 Amazon Bedrock API 密钥是否优先于配置文件。
缺少能力限制。 重启后检查完整的实际生效要求。仅 API 登录设置不会应用能力策略。
回滚与清理
如果验证检查失败,请停止推广。将受影响的设备恢复到先前批准的策略和提供商设置,然后重启 ChatGPT 桌面应用。撤销所有临时 AWS 凭证或 API 密钥,并确认这些设备无法再连接到 Amazon Bedrock。保留测试记录,并在再次尝试前清楚记录失败原因。
结论
在 AWS GovCloud (US) 中,Amazon Bedrock 上的 ChatGPT 桌面应用为你提供了一种受控方式来使用 OpenAI 前沿模型和编码辅助。推理过程保留在 AWS GovCloud (US) 区域内。通过验证配置、确认已批准的 AWS 身份和端点,并验证安全控制,你可以自信地为更广泛的使用准备部署。这种方法支持创新,同时使部署决策与各组织的安全、授权和数据处理要求保持一致。
准备好探索在 AWS GovCloud (US) 中 Amazon Bedrock 上使用 Codex 的 ChatGPT 桌面应用了吗?从受控部署开始,验证你的安全控制,并与你的安全团队合作,为更广泛的采用做好准备。
相关资源
- Bedrock AWS GovCloud (US) 配置 – ChatGPT 桌面应用的设备、提供商、网络、验证和故障排除指南。
- Amazon Bedrock 上的 Responses API – Responses API 的 AWS 区域、端点行为、身份验证和权限。
- AWS GovCloud (US) 合规 – 合规计划和客户授权注意事项。
- OpenAI 的 Bedrock 身份验证文档 – Amazon Bedrock API 密钥和 AWS SDK 凭证链身份验证,包括 SSO。
- AWS IAM Identity Center 凭证提供程序文档 – SSO 配置文件配置和临时 AWS 凭证。