ChatGPT桌面应用现已支持通过Amazon Bedrock在AWS GovCloud(美国)中运行,让用户能够访问OpenAI的前沿模型。该应用包含两大组件:Work负责完成复杂多步骤任务并交付可供审核的结果;Codex则是一个编码智能体,用于开发、测试和审查软件。对于安全架构要求模型推理必须使用AWS GovCloud(美国)身份、端点和区域控制的企业,这一方案提供了合规路径。
本文介绍的部署方式将Codex配置为通过us-gov-west-1区域的Amazon Bedrock Mantle路由模型请求,从而可利用AWS Identity and Access Management(IAM)以及现有的GovCloud网络控制来治理访问。用户可以通过ChatGPT桌面应用、Codex CLI以及与Visual Studio Code、JetBrains和Xcode的IDE集成来使用该服务,模型推理通过Amazon Bedrock上的Responses API进行。
对于有数据驻留要求的客户,处理过程始终保持在所选的Amazon Bedrock AWS区域内。计费按token数量进行,无需席位许可或按开发者承诺。该方案还支持零数据保留(ZDR),在此可配置模式下,提示和响应不会被AWS写入持久存储,也不会与模型提供商共享,有助于保护敏感信息并满足严格的数据治理、隐私和安全要求。
本文逐步演示如何在本地受控环境中部署ChatGPT桌面应用,将模型推理发送至AWS GovCloud(美国西部)的Amazon Bedrock。配置采用API模式登录、托管设备策略、命名AWS配置文件和网络限制。这些限制仅允许访问经批准的Amazon Bedrock端点,同时禁用其他外部连接和网络功能。最终形成的部署可由机构安全团队测试并记录,然后再批准更广泛的使用。需要注意的是,使用AWS GovCloud(美国)并遵循本指南本身并不构成对工作负载的授权。组织仍需根据其系统安全计划和授权流程,审查所选模型、AWS服务、区域、端点、工作站控制、代码库、凭证和数据流。
解决方案概述方面,ChatGPT桌面应用可在组织管理的计算机上通过桌面应用或CLI运行。它使用配置的AWS凭证安全地将请求发送至us-gov-west-1的Amazon Bedrock Mantle端点。由于此设置直接使用AWS,ChatGPT工作区规则和用户角色并不控制该流程,主要安全控制在于计算机上的策略以及所使用的AWS身份和权限。
整个配置分为三个主要步骤:设置身份验证、配置ChatGPT桌面应用文件,以及启动、初始化和验证部署。
先决条件包括:确保ChatGPT桌面应用版本支持AWS GovCloud(美国)中的Amazon Bedrock;拥有经批准的AWS GovCloud账户、IAM身份和获批凭证;具备对已批准模型、区域和端点的访问权限及使用许可;还需要设置requirements.toml和config.toml文件。
第一步是设置身份验证。选择经批准的AWS GovCloud账户和具有us-gov-west-1中已批准模型访问权限的IAM身份或角色,通过组织批准机制获取凭证。本演练使用名为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凭证文件中。
第二步是设置ChatGPT桌面应用配置文件。必须创建两个文件:config.toml和requirements.toml。重要提示:配置文件必须在应用启动之前设置好。文件位置因操作系统而异:Windows用户配置为%USERPROFILE%\.codex\config.toml,管理员策略为%ProgramData%\OpenAI\Codex\requirements.toml;Linux和macOS用户配置为~/.codex/config.toml,管理员策略为/etc/codex/requirements.toml。
从requirements.toml开始,这是管理员控制的规则文件,设置用户无法覆盖的安全限制,例如限制ChatGPT桌面应用允许使用的权限级别、工具或设置。对于受支持的AWS GovCloud(美国)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、in_app_dictation、in_app_browser、browser_use、computer_use、image_generation、memories、plugins等均设为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"、"chat.openai.com"、"chatgpt.com"、"ab.chatgpt.com"、"platform.openai.com"、"auth.openai.com"、"gov.api.openai.com"、"gov.chatgpt.com"、"sdfedpreastus2.oaiusercontent.com"、"o33249.ingest.us.sentry.io"、"persistent.oaistatic.com"、"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"。
第三步是启动、初始化和验证。从ChatGPT网站下载应用并安装,安装后保持应用关闭。如果应用自动打开或之前已启动过,请完全退出ChatGPT并结束所有残留的ChatGPT或Codex进程。确保在首次启动应用之前requirements.toml和config.toml已就位。启动应用以加载这些设置,并确认它显示amazon-bedrock作为模型提供商。在Codex CLI中,应能看到/status标签页确认amazon-bedrock;在ChatGPT桌面应用设置中同样可以确认。
故障排除方面:如果应用提示输入OpenAI账户,请验证requirements.toml和config.toml使用了上表中确切的位置和文件名,终止所有ChatGPT和Codex进程后重新启动。文件必须在应用启动前存在。如果报告AWS GovCloud(美国)端点不受支持,请与OpenAI确认确切的桌面或应用服务器版本、端点和模型;仅更改URL并不能建立支持。如果使用了错误的AWS身份,请检查有效的凭证源和命名配置文件,确认Amazon Bedrock API密钥是否优先于配置文件。如果缺少能力限制,请在重启后检查完整的有效要求;仅API登录设置并不会应用能力策略。
回滚与清理:如果验证检查失败,请停止推广。将受影响的设备恢复到先前批准的策略和提供商设置,然后重启ChatGPT桌面应用。撤销任何临时AWS凭证或API密钥,并确认这些设备不再能连接到Amazon Bedrock。保留测试记录并明确记录。