Aperçu
Enterprise Key Management (EKM) permet à OpenAI de chiffrer les données à l’aide d’une clé maître 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éez une identité fédérée pour OpenAI
OpenAI émettra un jeton 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 à votre ID d’organisation OpenAI. Vous pouvez aussi choisir une autre audience, comme votre ID de projet OpenAI — voir 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 revendications de ce jeton d’identité et permet à votre GCP STS d’émettre un jeton d’accès lorsque ce jeton d’identité est fourni.
Allez à IAM & Admin -> Workload Identity Federation et cliquez sur Create Pool

À l’étape Create an identity pool, entrez n’importe quelle valeur pour le nom du pool.
Souvenez-vous-en pour plus tard — vous devrez l’enregistrer auprès d’OpenAI
À l’étape Add a provider to pool :
Dans Select a provider, sélectionnez OpenID Connect (OIDC)
Entrez n’importe quelle valeur pour le nom du fournisseur.
Dans la section Issuer (URL), entrez https://accounts.google.com
Dans la section Audiences
Sélectionnez Allowed audiences
Entrez l’audience qu’OpenAI doit indiquer lorsque nous vous transmettons un jeton.
Pour ChatGPT ou API : vous pouvez inscrire l’ID d’organisation de l’API OpenAI (org-xxx)
Pour l’API : vous pouvez inscrire un ID de projet API précis pour plus de granularité.

Dans la section Attribute mapping
pour google.subject, entrez assertion.sub

Dans la section Attribute conditions
inscrivez
assertion.sub == "105900137572174660365"
Vous devriez maintenant voir votre workload identity pool et votre workload identity provider dans la page https://console.cloud.google.com/iam-admin/workload-identity-pools
ID du workload identity pool

ID du workload identity provider

2. Assurez-vous que KMS est activé
Allez à 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 minimum être activé dans les deux projets.
3. Créez une nouvelle clé KMS
Allez à Security -> Data Protection > Key Management
Sous l’onglet Overview, cliquez sur Create key ring
Choisissez n’importe quel nom pour votre trousseau de clés
Pour Purpose and algorithm, sélectionnez Symmetric encrypt/decrypt

Une fois le trousseau de clés créé, il devrait apparaître dans l’onglet Key Rings. Cliquez sur le trousseau de clés.
Dans les détails du trousseau de clés, cliquez sur Create Key
Choisissez n’importe quel nom pour votre clé
4. Créez un rôle limité pour les opérations de chiffrement/déchiffrement sur le KMS
Allez à IAM & Admin -> Roles -> Create role
Entrez n’importe quelle valeur pour le titre et l’ID du rôle
Cliquez sur Add Permissions, puis ajoutez ce qui suit
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Attribuez l’identité fédérée d’OpenAI au rôle KMS limité pour les opérations de chiffrement/déchiffrement
Allez à Security -> Data Protection > Key Management
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é.
Si vous n’avez pas cela, revenez à la section Create a KMS
Cliquez sur l’onglet Permissions, puis sur le bouton Grant Access

Attribuez l’identité fédérée OpenAI au rôle personnalisé que vous avez créé précédemment
Dans la section Add principals, entrez principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
YOUR_GCP_PROJECT_NUMBER désigne ici le projet dans lequel vous avez reconnu l’identité fédérée d’OpenAI en créant un YOUR_GCP_WORKLOAD_IDENTITY_POOL. Il peut s’agir, mais ce n’est pas obligatoire, du même projet où se trouve votre KMS.
Si les projets diffèrent, assurez-vous que KMS est au moins activé dans l’autre projet en allant à https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview
Dans la section Assign roles, sélectionnez le rôle personnalisé que vous avez créé à l’étape précédente pour les autorisations EKM limitées
6. Appliquez toute restriction supplémentaire conformément à vos propres pratiques de sécurité
Ci-dessus se trouve le minimum d’information requis dont OpenAI a besoin pour configurer EKM. Vous êtes libre d’appliquer des politiques de clés ou des restrictions supplémentaires conformément à vos propres pratiques de sécurité internes, tant qu’OpenAI peut appeler les opérations de chiffrement et de déchiffrement sur votre KMS. Lorsque vous appellerez l’endpoint d’enregistrement de clé auprès d’OpenAI décrit ci-dessous, nous validerons votre configuration.
Après avoir terminé les étapes ci-dessus
ChatGPT Enterprise
Veuillez communiquer avec votre contact OpenAI et partager ce qui suit :
"workload_identity_project_number": "123456789012",
Le numéro de projet GCP à 12 chiffres où vous avez enregistré la workload identity d’OpenAI
"workload_identity_pool_id": "openai-azure",
Le pool contenant le fournisseur Workload Identity que vous avez enregistré pour OpenAI
"workload_identity_provider_id": "openai-ekm-service-role",
Le fournisseur Workload Identity que vous avez enregistré pour OpenAI
"kms_project_id": "adjective-noun-12345",
Le nom du projet GCP où se trouve votre KMS
"kms_key_name": "openai-kms-key",
Le nom de la clé maître du système Key Management System
"kms_key_ring_name": "openai-kms-key-ring",
Le trousseau de clés Key Management System contenant la clé maître que vous gérez
"kms_key_location": "us-east1"
La région où se trouve votre clé maître Key Management System
Nous activerons EKM pour votre organisation/espace de travail ChatGPT.
API
Enregistrez votre clé externe auprès d’OpenAI
Suivez les instructions dans cette référence d’API External Keys in the Management API
D’abord, enregistrez 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é sur 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"
}'