AWS Machine Learning Blog

Configure the ChatGPT desktop app with Amazon Bedrock in AWS GovCloud (US)

6.9内容质量
Configure the ChatGPT desktop app with Amazon Bedrock in AWS GovCloud (US)

TL;DR · AI 摘要

Configure the ChatGPT desktop app with Amazon Bedrock in AWS GovCloud US Artificial Intelligence Configure the ChatGPT d...

核心要点

  • 主题聚焦:Configure the ChatGPT desktop app with Amazon Be
  • 来源:AWS Machine Learning Blog,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#云计算#安全
打开原文

在 AWS GovCloud (US) 中使用 Amazon Bedrock 配置 ChatGPT 桌面应用 | 人工智能

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

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

本操作指南适用于需要通过 AWS GovCloud (US) 身份、端点和区域控制进行模型推理的组织架构。它将配置 Codex 通过 Amazon Bedrock Mantle(位于 us-gov-west-1)路由模型请求,从而可以使用 AWS 身份和访问管理(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 的命名配置文件。请确保凭证、承载令牌、会话令牌和其他秘密信息不要存储在 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。

重要提示:配置文件需要在应用启动之前设置。下表显示了文件位置。

操作系统

用户

code
config.toml

管理员

code
requirements.toml

Windows

code
%USERPROFILE%\.codex\config.toml
code
%ProgramData%\OpenAI\Codex\requirements.toml

Linux

code
~/.codex/config.toml
code
/etc/codex/requirements.toml

macOS

从 requirements.toml 文件开始。requirements.toml 是一个由管理员控制的规则文件。它设置用户无法覆盖的安全限制,例如限制 ChatGPT 桌面应用可以使用的权限级别、工具或设置。

使用以下基准来支持 AWS GovCloud (US) 的 Amazon Bedrock 部署。[windows] 部分仅适用于 Windows,且 sandbox_private_desktop 必须由已批准的运行时支持。

code
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)替换为已批准的值。

code
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"

code

### 步骤 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 凭证。

## 作者信息

'"` /status