Configuration de Bedrock GovCloud
Configurez les workflows locaux de Codex avec Amazon Bedrock dans AWS GovCloud
Ce guide présente les paramètres de sécurité pour exécuter Codex avec AWS GovCloud en mode API. Examinez ces paramètres avant d’autoriser des workflows sensibles.
Liste de vérification · Référence des fonctionnalités · Référence de configuration de Codex
Responsabilité partagée
AWS et votre organisation partagent la responsabilité de la sécurisation du déploiement cloud. Consultez le modèle de responsabilité partagée d’AWS et la documentation des services sélectionnés pour identifier les contrôles du fournisseur et vos responsabilités. Votre organisme est responsable de l’autorisation d’utilisation de ces services par son système.
Pour un déploiement pris en charge, Codex envoie les requêtes d’inférence au point de terminaison Amazon Bedrock validé en utilisant l’authentification AWS. Les exigences de l’espace de travail ChatGPT et le RBAC ne s’appliquent pas à ce mode API. Configurez l’identité AWS, l’accès aux services et le poste de travail sur lequel Codex s’exécute.
La configuration de votre poste de travail, y compris ses fichiers de politique TOML pour Codex, régit l’accès aux fichiers locaux, l’exécution des commandes, l’accès réseau, les plugins, les outils MCP et les fonctionnalités du navigateur. Vous êtes responsable de la sécurisation des postes de travail, des identifiants, des dépôts, des enregistrements locaux et de tout service tiers activé. Désignez des responsables pour la politique des appareils, les contrôles réseau, les mises à jour et la validation du déploiement.
AWS GovCloud et ces paramètres ne suffisent pas à établir que l’ensemble de votre workflow respecte les exigences de votre organisme. Examinez précisément les services, modèles, régions, destinations et flux de données de votre déploiement, et consignez vos responsabilités en tant que client dans le plan de sécurité du système.
Avant de commencer
Confirmez que votre version de Codex prend en charge GovCloud.
| Préparation | Éléments nécessaires |
|---|---|
| Accès AWS | Compte, identité IAM et mécanisme d’identification approuvés ; modèle, région GovCloud et point de terminaison autorisés. |
| Package de déploiement | Version prise en charge de l’application de bureau et de l’app-server intégré, politique d’exigences Bedrock validée, destinations d’authentification, de stockage et d’exploitation approuvées, et instructions de retour arrière. |
| Gestion des appareils | Accès à la configuration système ou au MDM, avec des politiques réseau validées pour les applications, les appareils et les commandes de l’agent. |
1. Préparer l’accès AWS
Sélectionnez le compte AWS et l’identité IAM approuvés, disposant d’un accès au modèle et à la région sélectionnés. Fournissez les identifiants par le mécanisme approuvé de votre organisation. Ne stockez pas les identifiants dans les fichiers TOML.
Pour un profil nommé, protégez sa configuration, sa source d’identifiants et son assistant d’identification contre les écritures effectuées par les tâches.
2. Déployer les exigences des appareils
Déployez le fichier Bedrock requirements.toml validé via la configuration système ou le MDM avant le lancement de l’application ou l’authentification. Les sessions en mode API ne reçoivent ni les exigences de l’espace de travail ChatGPT ni le RBAC.
Utilisez l’ensemble des exigences ci-dessous comme base pour votre déploiement Bedrock pris en charge. Examinez la référence des fonctionnalités, les skills locaux et l’accès aux commandes pour le workflow approuvé.
Suivez les instructions de Configuration gérée pour les emplacements des fichiers système et le déploiement par MDM. Protégez la politique gérée et vérifiez ses paramètres effectifs sur l’hôte d’exécution à l’étape 4.
Configuration recommandée pour requirements.toml
Cette configuration restreint volontairement les fonctionnalités. Elle est recommandée pour GovCloud, sauf si votre organisation impose d’autres restrictions. Consultez la référence de configuration pour en savoir plus sur chaque paramètre.
La dernière table [windows] s’applique uniquement à Windows. Confirmez la prise en charge de sandbox_private_desktop dans votre environnement d’exécution approuvé.
requirements.toml
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 destinations
[application.network]
enabled = true
[application.network.domains]
"bedrock-mantle.us-gov-west-1.api.aws" = "allow"
# OpenAI / ChatGPT, including auth and telemetry.
"api.openai.com" = "deny"
"chat.openai.com" = "deny"
"chatgpt.com" = "deny"
"ab.chatgpt.com" = "deny"
"platform.openai.com" = "deny"
"auth.openai.com" = "deny"
# FedRAMP OpenAI endpoints are also outside this Bedrock profile.
"gov.api.openai.com" = "deny"
"gov.chatgpt.com" = "deny"
"sdfedpreastus2.oaiusercontent.com" = "deny"
# Crash reporting and distribution.
"o33249.ingest.us.sentry.io" = "deny"
"persistent.oaistatic.com" = "deny"
"oaisidekickupdates.blob.core.windows.net" = "deny"
# Windows only
[windows]
allowed_sandbox_implementations = ["elevated"]
sandbox_private_desktop = true3. Configurer le routage vers le fournisseur et les contrôles réseau
Définissez le fournisseur, le modèle, la région et le point de terminaison dans config.toml ou dans les valeurs par défaut gérées, séparément de requirements.toml. Les utilisateurs peuvent modifier les valeurs par défaut du fournisseur, sauf si la politique gérée les restreint.
Configuration recommandée pour config.toml
Pour un déploiement Mantle confirmé dans us-gov-west-1, remplacez l’ID du modèle et le profil par des valeurs approuvées. Si le point de terminaison ou la région approuvés diffèrent, mettez à jour ensemble l’URL, la région et la politique réseau.
Ces valeurs par défaut définissent le routage de l’inférence, correspondent à la politique d’approbation gérée et désactivent les diagnostics facultatifs ainsi que le partage de données. Les utilisateurs peuvent modifier les valeurs par défaut dans les limites des exigences gérées. Conservez les identifiants AWS en dehors du fichier TOML. La dernière table [windows] s’applique uniquement à Windows et doit correspondre à votre environnement d’exécution approuvé.
config.toml
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 only
[windows]
sandbox = "elevated"L’authentification AWS reste requise lorsque requires_openai_auth = false. Bedrock Runtime et les passerelles utilisant des jetons bearer nécessitent leur propre configuration approuvée de fournisseur et d’authentification ; ne réutilisez pas cette URL Mantle ni ce service de signature.
Appliquer les contrôles réseau
Appliquez les politiques réseau validées pour les applications et les appareils, ainsi que la politique distincte pour les commandes de l’agent. Couvrez l’inférence, l’acquisition et le renouvellement des identifiants, la télémétrie, le stockage et les mises à jour. Le routage de l’inférence via Bedrock ne limite pas l’ensemble du trafic de l’application de bureau à AWS.
La politique réseau de l’application couvre les requêtes prises en charge de l’application et de l’app-server intégré. Elle est distincte des contrôles du bac à sable de l’agent et ne constitue pas un pare-feu du système d’exploitation. Le trafic du programme de mise à jour natif, Git, SSH, les applications externes, les assistants d’identification et les communications réseau des sous-processus nécessitent des contrôles distincts.
L’exemple sélectionne la recherche en cache dans us-gov-west-1. Vérifiez la disponibilité régionale dans la documentation de la recherche web d’AWS Bedrock et n’utilisez la recherche en cache que si le responsable du déploiement approuve le service. Sinon, définissez web_search = "disabled".
4. Vérifier le déploiement
Redémarrez l’application. Sur l’hôte d’exécution, confirmez les exigences effectives, l’identité AWS, le fournisseur, le modèle, la région et le point de terminaison.
Exécutez un workflow approuvé avec des données d’exemple.
Confirmez que les restrictions de fonctionnalités requises sont effectives. Testez les paramètres utilisateur contradictoires, les identifiants non valides ou expirés et les échecs de routage ; le contenu ne doit pas être redirigé vers une destination non approuvée en cas d’échec.
Consignez les versions de l’application de bureau et de l’app-server, la configuration effective, les résultats et la procédure de retour arrière. Résolvez les vérifications en échec ou bloquées avant d’élargir l’accès.
Résoudre les problèmes courants
| Problème | Points à vérifier |
|---|---|
| Le point de terminaison GovCloud n’est pas pris en charge | Confirmez auprès d’OpenAI la version exacte de l’application de bureau et de l’app-server, le point de terminaison et le modèle. Modifier uniquement l’URL ne garantit pas la prise en charge. |
| Une identité AWS incorrecte est utilisée | Inspectez la source d’identifiants effective et le profil nommé. Vérifiez si une API key Bedrock est prioritaire sur le profil. |
| Les restrictions de fonctionnalités sont absentes | Inspectez l’ensemble des exigences effectives après le redémarrage. Le paramètre de connexion exclusivement par API n’applique pas la politique relative aux fonctionnalités. |
Référence : restrictions des fonctionnalités de Bedrock
Ces paramètres décrivent le profil de déploiement initial de Bedrock. Appliquez la politique complète fournie pour votre version prise en charge, y compris les contrôles réseau AWS. L’automatisation locale et la voix en temps réel nécessitent des contrôles supplémentaires : in_app_local_automation et realtime_conversation ne sont pas définis dans la configuration de base ci-dessus. Examinez ces restrictions pour votre déploiement.
Les valeurs ci-dessous sont des exigences gérées, et non des valeurs par défaut utilisateur. Définir une fonctionnalité sur true ne contourne pas les restrictions du compte, de l’espace de travail, du fournisseur ou du système d’exploitation. L’omission d’une exigence laisse en place les vérifications habituelles de configuration et de disponibilité.
| Fonctionnalité | Paramètre de politique | Comportement dans ce profil |
|---|---|---|
| Conversations ChatGPT et Quick Chat | [features] in_app_chat = false |
false masque les interfaces de conversation ChatGPT et de Quick Chat. Ce paramètre n’arrête pas les tâches cloud existantes et ne désactive pas ChatGPT Voice. |
| Automatisation locale | [features] in_app_local_automation = false |
false empêche le démarrage des tâches planifiées locales, y compris après un redémarrage. true autorise la planification locale lorsqu’elle est par ailleurs prise en charge. Les planifications cloud sont gérées par des contrôles distincts. |
| Dictée, transcription et voix en temps réel | in_app_dictation = false; realtime_conversation = false |
in_app_dictation contrôle la saisie par reconnaissance vocale dans l’application de bureau : false la désactive, tandis que true l’autorise lorsque la dictée est disponible. realtime_conversation contrôle /voice dans Codex CLI. Le définir sur false ne bloque pas globalement ChatGPT Voice dans l’application de bureau ni les sessions vocales de l’app-server. |
| Navigateur intégré et automatisation du navigateur | in_app_browser, browser_use, browser_use_external, browser_use_full_cdp_access = false |
in_app_browser contrôle le volet du navigateur disponible dans l’application. browser_use permet à l’agent de naviguer et browser_use_external étend cette possibilité aux sessions de navigateur authentifiées. browser_use_full_cdp_access autorise le débogage complet du navigateur. Définir chaque paramètre sur false bloque l’accès correspondant ; true reste soumis aux autres vérifications relatives aux fonctionnalités, aux sites et aux approbations. |
| Contrôle de l’ordinateur, Appshots et historique de l’ordinateur | computer_use = false; allow_appshots = false au niveau racine ; chronicle = false |
computer_use = false bloque le contrôle des applications natives, allow_appshots = false bloque la capture des images et du texte des fenêtres. true autorise chacun sous réserve de ses autres contrôles. chronicle = false sert à arrêter la collecte de Computer History. |
| Mémoire entre les sessions | memories = false; external_agent_memory_import = false |
memories = false désactive la génération et l’utilisation de souvenirs locaux entre les conversations. true autorise les deux, sous réserve de memories.generate_memories et de memories.use_memories. external_agent_memory_import = false bloque également l’importation de souvenirs provenant d’autres agents de programmation, même si les souvenirs locaux sont activés. |
| Génération d’images | image_generation = false |
false désactive l’outil intégré de génération d’images ; true le rend disponible lorsque le client, le modèle et le fournisseur le prennent en charge. Ce paramètre ne désactive ni les images en entrée ni l’accès aux fichiers image existants ; validez ces workflows à l’étape 4. |
| Recherche web | Suivez la politique de recherche web du déploiement approuvé. | cached utilise le cache de recherche ; disabled supprime l’outil de recherche web. live autorise l’accès au web en direct, tandis que indexed conditionne l’accès externe au passage par l’index de recherche. Les exigences ci-dessus autorisent uniquement cached ou disabled. Confirmez la prise en charge par le fournisseur et les destinations approuvées à l’étape 3. |
| Applications, plugins, MCP et téléchargements automatiques | apps = false; plugins = false; [mcp_servers] explicitement vide |
false désactive les applications et les plugins par défaut. Une liste d’autorisation mcp_servers vide bloque tous les MCP servers configurés. Activez-les en fonction des exigences propres à votre organisation et de sa posture de sécurité. |
| Approbation automatique | allowed_approvals_reviewers = ["user"]; guardian_approval = false; guardianv2 = false |
["user"] réserve l’examen des demandes d’approbation à l’utilisateur. Autoriser auto_review et les fonctionnalités Guardian permettrait l’examen automatique lorsqu’il est pris en charge. Le paramètre de responsable de l’examen détermine qui examine les demandes, et approval_policy détermine toujours les actions nécessitant une approbation. |
| Contrôle à distance de l’appareil | allow_remote_control = false au niveau racine |
false bloque le contrôle à distance de l’appareil. true ou l’omission de l’exigence autorise la configuration habituelle du contrôle à distance lorsqu’il est pris en charge ; aucune de ces valeurs n’établit à elle seule une connexion. |
Contrôles de déploiement supplémentaires
| Domaine | Contrôle requis |
|---|---|
| Workflows cloud et distants | Maintenez indisponibles l’exécution et les planifications cloud, SSH, le partage, la persistance dans Library, les connaissances de projet hébergées et les notifications transmises par le réseau. Imposez ces restrictions séparément ; les indicateurs de fonctionnalité individuels ne couvrent pas tous les points d’entrée. |
| Télémétrie | Examinez séparément les données analytiques, les commentaires, OpenTelemetry, les rapports de plantage et le trafic en arrière-plan. feedback.enabled = false ne désactive pas tous les canaux de télémétrie. |
| Distribution de l’application | Pour une distribution des mises à jour de l’application contrôlée par le client, définissez in_app_updates = false sous [features] lorsque cela est pris en charge, puis redémarrez. Gérez séparément les packages externes, les correctifs, la révocation, le retour arrière et les versions prises en charge. |