Aperçu
Enterprise Key Management (EKM) permet à OpenAI de chiffrer les données à l’aide d’une clé principale que vous contrôlez. Ce document explique comment configurer votre compte GCP afin d’accorder à OpenAI des autorisations limitées sur votre KMS.

Étapes
1. Créer une identité fédérée pour OpenAI
OpenAI émettra un token d’identité à partir d’un compte GCP appartenant à OpenAI qui ressemble à ceci.
Les champs azp et sub correspondent à l’ID du compte de service d’OpenAI dans GCP
Le champ aud correspond à l’ID de votre organisation OpenAI. Vous pouvez aussi choisir une autre audience, comme l’ID de votre projet OpenAI — consultez les instructions ci-dessous
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Cette étape reconnaît les déclarations faites par ce token d’identité et permet à votre STS GCP d’émettre un token d’accès lorsque ce token d’identité est fourni.
Accédez à IAM et administration -> Fédération d’identité de charge de travail et cliquez sur Créer un pool

À l’étape Créer un pool d’identités, entrez n’importe quoi comme nom du pool.
À l’étape Ajouter un fournisseur au pool :
Dans Sélectionner un fournisseur, sélectionnez OpenID Connect (OIDC)
Entrez n’importe quoi comme nom du fournisseur.
Dans la section Émetteur (URL), entrez https://accounts.google.com
Dans la section Audiences
Sélectionnez Audiences autorisées
Entrez l’audience qu’OpenAI doit indiquer lorsque nous vous transmettons un token.
Pour ChatGPT ou l’API : vous pouvez mettre l’ID d’organisation de l’API OpenAI (org-xxx)
Pour l’API : vous pouvez mettre un ID de projet API spécifique pour plus de granularité.

Dans la section Mappage des attributs
pour google.subject, entrez assertion.sub

Dans la section Conditions d’attribut
Vous devriez maintenant voir votre pool d’identités de charge de travail et votre fournisseur d’identités de charge de travail répertoriés sur la page https://console.cloud.google.com/iam-admin/workload-identity-pools
ID du pool d’identités de charge de travail

ID du fournisseur d’identités de charge de travail

2. Assurez-vous que KMS est activé
Accédez à https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview pour activer KMS. Vous n’êtes pas tenu de créer votre KMS dans le même projet GCP où vous avez reconnu l’identité fédérée d’OpenAI; toutefois, si les projets diffèrent, le produit KMS doit au moins être activé dans les deux projets.
3. Créer une nouvelle clé KMS
Accédez à Sécurité -> Protection des données > Gestion des clés
Sous l’onglet Aperçu, cliquez sur Créer un trousseau de clés
Choisissez n’importe quel nom pour votre trousseau de clés
Pour Objectif et algorithme, sélectionnez Chiffrement/déchiffrement symétrique

Une fois que vous avez créé un trousseau de clés, il devrait figurer dans l’onglet Trousseaux de clés. Cliquez sur le trousseau de clés.
Dans les détails du trousseau de clés, cliquez sur Créer une clé
Choisissez n’importe quel nom pour votre clé
4. Créer un rôle limité pour les opérations de chiffrement/déchiffrement sur le KMS
Accédez à IAM et administration -> Rôles -> Créer un rôle
Entrez n’importe quoi comme titre et ID du rôle
Cliquez sur Ajouter des autorisations, puis ajoutez les suivantes
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Attribuer l’identité fédérée d’OpenAI au rôle KMS limité pour les opérations de chiffrement/déchiffrement
Accédez à Sécurité -> Protection des données > Gestion des clés
Cliquez sur le nom de votre trousseau de clés, puis sur le nom de votre clé pour accéder à la page des détails de votre clé.
Cliquez sur l’onglet Autorisations, puis cliquez sur le bouton Accorder l’accès

Attribuez l’identité fédérée d’OpenAI au rôle personnalisé que vous avez créé précédemment
Pour la section Ajouter des principaux, entrez principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
Dans la section Attribuer des rôles, sélectionnez le rôle personnalisé que vous avez créé à l’étape précédente pour les autorisations EKM limitées
6. Appliquer toute restriction supplémentaire conforme à vos propres pratiques de sécurité
Ci-dessus se trouvent les renseignements minimaux requis dont OpenAI a besoin pour configurer EKM. Vous pouvez appliquer des politiques de clé ou des restrictions supplémentaires conformes à vos propres pratiques de sécurité internes, à condition qu’OpenAI puisse appeler les opérations de chiffrement et de déchiffrement sur votre KMS. Lorsque vous appelez l’endpoint d’enregistrement de clé auprès d’OpenAI décrit ci-dessous, nous validons votre configuration.
Après avoir effectué les étapes ci-dessus
ChatGPT Enterprise
Veuillez communiquer avec votre contact OpenAI et lui transmettre ce qui suit :
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
La région où se trouve la clé principale de votre système de gestion des clés
Nous activerons EKM pour votre organisation/espace de travail ChatGPT.
API
Enregistrer votre clé externe auprès d’OpenAI
Suivez les instructions dans cette référence d’API Clés externes dans l’API de gestion
Commencez par enregistrer votre clé externe au niveau de l’organisation OpenAI, ce qui générera un ID de clé externe.
À cette étape, nous validerons votre configuration sur GCP en vérifiant que nous pouvons nous authentifier auprès de votre KMS.
Cela n’ajoutera pas encore EKM à votre projet OpenAI.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "gcp",
"name": "GCP EKM Config",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <votre ID d’organisation ou ID de projet>,
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
}'Ensuite, créez un projet OpenAI associé à la clé externe. Après cela, EKM est activé pour votre projet.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Some Project",
"external_key_id": "extkey_xxxx"
}'