跳到正文
AWS Machine Learning Blog· Virgil Ennes·· 3 天前AI 评分34

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

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

AI 导读

ChatGPT 桌面应用现已在 AWS GovCloud (US) 的 Amazon Bedrock 上线,可通过 Work 和 Codex 两个组件访问 OpenAI 的前沿模型。

摘要与补充说明

该配置面向安全架构要求模型推理使用 AWS GovCloud (US) 身份、端点和区域控制的企业,将 Codex 的模型请求经 us-gov-west-1 的 Amazon Bedrock Mantle 路由,并用 IAM 及现有网络控制管理访问。

正文· AI 翻译

ChatGPT 桌面应用现已在 Amazon 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 是 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 步:设置身份验证

在 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。对于桌面使用,此变量可以通过 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。

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

操作系统 用户 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 标签页:

Codex CLI /status tab showing amazon-bedrock configured as the model provider

图 1:Codex CLI 的 /status 标签页确认 amazon-bedrock 为模型提供商

在 ChatGPT 桌面应用中,你也可以确认 amazon-bedrock 为模型提供商。

ChatGPT desktop app settings confirming amazon-bedrock as the model provider

图 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 桌面应用了吗?从受控部署开始,验证你的安全控制,并与你的安全团队合作,为更广泛的采用做好准备。

相关资源


关于作者

Virgil Ennes

Virgil Ennes

Virgil 是 AWS 的高级合作伙伴解决方案架构师,也是 GenAI 和 AI/ML 专家。他帮助合作伙伴和客户将 OpenAI 技术与 AWS 服务集成,将创新想法转化为可扩展的实际业务解决方案。

Sean Phuphanich

Sean Phuphanich

Sean 是应用 AI 的首席技术专家,并担任 ISV 细分领域负责人。Sean 专注于利用前沿 AI 解决行业的重大挑战,并优化帕累托曲线。Sean 同时也是开发与网络安全领域的专家,以及 AWS 政府零信任加速器(ZTAG)的项目经理。

来源:AWS Machine Learning Blog · aws.amazon.com阅读原文

相关阅读

专题与标签

相关资讯专题

标签