ChatGPT桌面应用配置Amazon Bedrock
Configure the ChatGPT desktop app with Amazon Bedrock in AWS GovCloud (US)
ChatGPT桌面应用现已可在AWS GovCloud (US)的Amazon Bedrock上使用,通过两个组件提供对OpenAI前沿模型的访问,适用于需要模型推理使用AWS GovCloud (US)身份、端点和区域控制架构的组织
ChatGPT桌面应用现已可在亚马逊云科技Bedrock上AWS GovCloud (US)使用,通过两个组件提供对OpenAI前沿模型的访问。Work可完成复杂的多步骤任务并交付可审阅的结果,而Codex是一个用于开发、测试和审阅软件的编码代理。
本演练面向那些其安全架构要求模型推理使用AWS GovCloud (US)身份、端点和区域控制的组织。它配置Codex以通过us-gov-west-1中的Amazon Bedrock Mantle路由模型请求,其中可以使用AWS Identity and Access Management (IAM)和现有的AWS GovCloud (US)网络控制来管理访问权限。
Codex是用于AI驱动软件开发的OpenAI编码代理。通过GPT模型进行推理,Codex引入了一种针对复杂、长周期的开发者工作流程进行优化的新智能类别。您可以使用ChatGPT桌面应用、Codex CLI以及与Visual Studio Code、JetBrains和Xcode的IDE集成。模型推理通过Amazon Bedrock的Responses API进行路由。
对于有数据驻留要求的患者,处理将保持在您选择的Amazon Bedrock AWS区域内。您按令牌付费,无需许可证和开发者承诺。还支持零数据保留(ZDR)。在这种可配置模式下,提示和响应在由AWS写入持久化存储或与模型提供者共享之前进行处理。这有助于您保护敏感信息并满足严格的数据治理、隐私和安全要求。
本帖将介绍ChatGPT桌面应用的一个受控本地部署,该部署将模型推理发送到AWS GovCloud (US-West)中的Amazon Bedrock。该配置使用API模式登录、管理设备策略、命名的AWS配置文件和网络限制。这些限制仅允许访问批准的Amazon Bedrock端点,同时禁用其他外部连接和网络启用功能。结果是,机构安全团队可以在批准更广泛的使用之前测试和记录该部署。
使用AWS GovCloud (US)并遵循本指南本身不会授权您的工作负载。您的组织仍然需要根据其系统安全计划和授权流程,审阅所选模型、AWS服务、区域、端点、工作站控制、存储库、凭证和数据流。
解决方案概述
您可以使用ChatGPT桌面应用以两种方式使用:
- 为需要规划、研究、文件和最终结果的大任务工作。
- Codex用于技术工作,如编辑代码、运行测试和审阅拉取请求。
ChatGPT桌面应用通过桌面应用或CLI在组织管理的计算机上运行。它使用配置的AWS凭证将请求安全地发送到us-gov-west-1中的Amazon Bedrock Mantle端点。由于此设置直接使用AWS,因此ChatGPT工作区规则和用户角色不控制它。主要的安全控制是计算机的策略和正在使用的AWS身份和权限。
演练
配置有三个主要步骤:设置身份验证、设置ChatGPT桌面应用配置文件,然后启动、初始化并验证部署。
先决条件
在将 ChatGPT 桌面应用程序设置到 AWS GovCloud (US) 之前,请确保 您的版本 的 ChatGPT 桌面应用程序支持 AWS GovCloud (US) 中的 Amazon Bedrock。您需要一个经过批准的 AWS GovCloud (US) 账户、一个 IAM 身份和经过批准的凭证、对经过批准的模型的访问权限、AWS 区域和端点,以及使用它们的权限。您还需要设置 requirements.toml 和 config.toml 文件。
步骤 1:设置身份验证
选择 us-gov-west-1 中的经过批准的 AWS GovCloud (US) 账户和 IAM 身份或角色,以便访问经过批准的模型。通过您组织的批准机制获取凭证。此演练使用命名的配置文件 codex-il5。请将凭证、持有者令牌、会话令牌和其他秘密信息从 TOML 文件中排除出来。
保护配置文件配置、凭证源、SSO 令牌缓存以及任何凭证帮助程序免受 ChatGPT 桌面应用程序任务写入的影响,同时允许批准的身份验证工具维护和刷新凭证。
ChatGPT 桌面应用程序支持两种 Amazon Bedrock 身份验证路径:一个 Amazon Bedrock API 密钥 或 AWS SDK 凭证链。通过 AWS IAM Identity Center 的 AWS SSO 在凭证链路径中得到支持。
应用程序首先检查其环境中的 AWS_BEARER_TOKEN_BEDROCK。对于桌面使用,此变量可以通过 %USERPROFILE%\.codex\.env 在 Windows 上或 ~/.codex/.env 在 Linux 和 macOS 上提供。当存在时,持有者令牌优先于基于配置文件的身份验证。
如果可用持有者令牌,应用程序会回退到标准的 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确认确切的桌面或app-server版本、端点和模型。仅更改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上的响应API – AWS区域、端点行为、身份验证和响应API的权限。
- AWS GovCloud (US)合规性 – 合规计划和客户授权考虑事项。
- OpenAI的Bedrock身份验证文档 – Amazon Bedrock API密钥和AWS SDK凭证链身份验证,包括SSO。
- AWS IAM Identity Center凭证提供程序文档 – SSO配置文件和临时AWS凭证。
关于作者
Virgil Ennes
Virgil是AWS的高级合作伙伴解决方案架构师,也是GenAI和AI/ML专家。他帮助合作伙伴和客户将OpenAI技术与AWS服务集成,将创新理念转化为可扩展的实际业务解决方案。
Sean Phuphanich
Sean 是应用人工智能的首席技术专家,也是独立软件供应商(ISV)领域的负责人。Sean 致力于利用前沿人工智能解决行业面临的重大挑战,并优化帕累托曲线。Sean 还是开发和安全领域的专家,担任 AWS 政府零信任加速器(ZTAG)的项目经理。
来源:AWS Machine Learning Blog · aws.amazon.com

