在 AWS GovCloud (US) 中用 Amazon Bedrock 配置 ChatGPT 桌面应用
ChatGPT 桌面应用现已上架 AWS GovCloud (US) 的 Amazon Bedrock,通过两个组件提供对 OpenAI 前沿模型的访问。Work 负责完成复杂的多步骤任务,交付可直接审阅的结果;Codex 则是用于开发、测试和审查软件的编码智能体。
本指南面向这类组织:其安全架构要求模型推理必须使用 AWS GovCloud (US) 的身份、端点和区域控制。指南会配置 Codex,让模型请求经由 us-gov-west-1 区域的 Amazon Bedrock Mantle 路由,并借助 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) 账户,以及能访问 us-gov-west-1 中已批准模型的 IAM 身份或角色。通过组织批准的机制获取凭证。本演练使用命名配置文件 codex-il5。不要把凭证、bearer token(持有者令牌)、会话令牌和其他机密放进 TOML 文件。要保护配置文件配置、凭证源、SSO 令牌缓存和任何凭证助手,防止 ChatGPT 桌面应用执行任务时写入这些内容,同时允许已批准的身份验证工具维护和刷新凭证。
ChatGPT 桌面应用支持两种 Amazon Bedrock 认证方式:Amazon Bedrock API key,或者 AWS SDK 凭证链(credential chain)。凭证链方式下可以使用 AWS IAM Identity Center 的 AWS SSO。
应用会先检查环境变量 AWS_BEARER_TOKEN_BEDROCK。桌面端可以通过 Windows 的 %USERPROFILE%\.codex\.env,或 Linux、macOS 的 ~/.codex/.env 提供这个变量。只要 bearer token 存在,它的优先级就高于基于 profile 的认证。没有 bearer token 时,应用会退回标准 AWS SDK 凭证链。凭证链可以从 ~/.aws/credentials 读取 AWS 凭证,从 ~/.aws/config 读取相关 profile 配置。Windows 上对应的默认路径是 %USERPROFILE%\.aws\credentials 和 %USERPROFILE%\.aws\config。
凭证链也支持 SSO profile。使用 SSO 时,它会读取 AWS config 文件中的 profile 配置,并利用缓存的 SSO 会话获取临时角色凭证。这些凭证不需要手动写入 AWS credentials 文件。详见 OpenAI 的 Bedrock 认证文档和 AWS IAM Identity Center 凭证提供程序文档。
第 2 步:准备 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 文件。这个文件规定了 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 凭证。
关于作者
Virgil Ennes 是 AWS 的高级合作伙伴解决方案架构师,专攻生成式 AI 和 AI/ML。他帮助合作伙伴和客户把 OpenAI 技术集成到 AWS 服务中,将创新想法转化为可扩展、可落地的业务方案。
Sean Phuphanich 是应用 AI 首席技术专家,也是 ISV 细分领域负责人。Sean 专注于用前沿 AI 解决行业重大难题,优化帕累托曲线。他还是开发与网络安全领域的专家,并担任 AWS 政府零信任加速器(ZTAG)的项目经理。
ChatGPT 桌面应用现已支持 Amazon Bedrock 的 AWS GovCloud (US) 区域。本文介绍一套受控的本地部署方案:通过 API 模式登录、托管设备策略、具名 AWS 配置文件和网络限制,把模型推理请求发往 AWS GovCloud(美国西部)的 Amazon Bedrock。安全团队可以先在小范围验证,确认无误后再推广使用。