AWS Machine Learning来源发布时间

在 AWS GovCloud (US) 中配置 ChatGPT 桌面应用与 Amazon Bedrock

ChatGPT 桌面应用现已在以下平台推出: Amazon Bedrock 在 AWS GovCloud (US),通过两个组件提供对OpenAI前沿模型的访问。Work负责完成复杂的多步骤任务并交付可供审查的结果,而Codex是一个用于开发、测试和审查软件的编码代理。

ChatGPT 桌面应用现已在以下平台推出: Amazon Bedrock 在 AWS GovCloud (US),通过两个组件提供对OpenAI前沿模型的访问。Work负责完成复杂的多步骤任务并交付可供审查的结果,而Codex是一个用于开发、测试和审查软件的编码代理。

本演练面向安全架构要求模型推理使用 AWS GovCloud(美国)身份、端点和区域控制措施的组织。它将 Codex 配置为通过 Amazon Bedrock Mantle 路由模型请求,位于 us-gov-west-1,在那里可以使用 AWS 身份和访问管理(IAM) 以及现有的 AWS GovCloud(美国)网络控制措施。

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 桌面应用:

  • 适用于需要规划、研究、文件和最终成果的较大型任务。
  • 用于编辑代码、运行测试和审查拉取请求等技术工作的 Codex。

ChatGPT 桌面应用通过桌面应用或 CLI 在由组织管理的计算机上运行。它使用已配置的 AWS 凭证安全地将请求发送到位于以下位置的 Amazon Bedrock Mantle 端点: us-gov-west-1。由于此设置直接使用AWS,ChatGPT的工作区规则和用户角色无法控制它。主要的安全控制是计算机的策略以及所使用的AWS身份和权限。

操作指南

该配置包含三个主要步骤:设置身份验证、设置 ChatGPT 桌面应用的配置文件,然后启动、初始化并验证部署。

先决条件

在将 ChatGPT 桌面应用与 AWS GovCloud (US) 配合设置之前,请确保 你的版本 ChatGPT 桌面应用支持 AWS GovCloud (US) 中的 Amazon Bedrock。您需要一个已获批准的 AWS GovCloud (US) 账户、一个 IAM 身份和已获批准的凭证、对已批准模型、AWS Region 和端点的访问权限,以及使用它们的权限。您还需要设置 requirements.toml 和 config.toml 文件。

步骤 1:设置身份验证

选择已获批准的 AWS GovCloud (US) 账户以及有权访问已获批准模型的 IAM 身份或角色,位于 us-gov-west-1。请通过您所在组织批准的机制获取凭证。本演练使用命名配置文件 codex-il5。请将凭证、bearer 令牌、会话令牌和其他机密信息排除在 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 提供。当存在时,bearer 令牌优先于基于配置文件的认证。

如果没有可用的 bearer 令牌,该应用会回退到标准的 AWS SDK 凭证链。该链可以从 ~/.aws/credentials 读取 AWS 凭证,并从 ~/.aws/config读取相关的配置文件设置。在 Windows 上,对应的默认路径是 %USERPROFILE%\.aws\credentials 和 %USERPROFILE%\.aws\config。该链还支持 SSO 配置文件。对于 SSO,它使用 AWS config 文件中的配置文件设置和缓存的 SSO 会话来获取临时角色凭证。这些凭证不需要手动存储在 AWS credentials 文件中。参见 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桌面应用了吗?从受控部署开始,验证您的安全控制,并与您的安全团队合作,为更广泛的采用做好准备。

相关资源

 


关于作者

原始出处

AWS Machine Learning

内容说明

原始发布及相关权利归来源方。

机器翻译 · 请以原文为准