OpenAI

Instructions d'intégration OpenAI / GCP EKM

Instructions étape par étape pour provisionner GCP et activer EKM

Dernière mise à jour : 20 days ago

Présentation

La gestion des clés d'entreprise (EKM) permet à OpenAI de chiffrer les données à l'aide d'une clé maîtresse que vous contrôlez. Ce document explique comment configurer votre compte GCP pour accorder à OpenAI des autorisations limitées sur votre KMS.

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

Étapes

1. Créez une identité fédérée pour OpenAI

OpenAI émettra un token d'identité depuis un compte GCP appartenant à OpenAI, qui ressemble à ceci.

  • Les champs azp et sub sont les identifiants du compte de service d'OpenAI dans GCP.

  • L'aud est votre identifiant d'organisation OpenAI. Vous pouvez également choisir une autre audience, comme votre identifiant de 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 revendications faites par ce token d'identité et permet à votre GCP STS d'émettre un token d'accès lorsque ce token d'identité est fourni.

  1. Allez sur IAM & Administration -> Fédération d’identité de charge de travail et cliquez sur Créer un pool

GCP IAM & Admin with Workload Identity Federation selected
  1. À l'étape Créer un pool d'identités, saisissez n'importe quel nom pour le nom du pool.

  1. Dans l'étape Ajouter un fournisseur au pool :

  1. Dans Sélectionner un fournisseur, sélectionnez OpenID Connect (OIDC)

  2. Indiquez n'importe quoi pour le nom du fournisseur.

  3. Dans la section Issuer (URL), saisissez https://accounts.google.com

  4. Dans la section Audiences

  1. Sélectionnez Audiences autorisées

  2. Indiquez l'audience qu'OpenAI doit spécifier lorsque nous vous transmettons un token.

  1. Pour ChatGPT ou l'API : vous pouvez saisir l'identifiant d'organisation de l'API OpenAI (org-xxx)

  2. Pour l'API : vous pouvez indiquer un identifiant de projet API spécifique pour plus de granularité.

GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
  1. Dans la section mappage d'attributs

  1. Pour google.subject, saisissez assertion.sub

Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
  1. Dans la section conditions des attributs

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

  1. ID du pool d'identités de charge de travail

GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
  1. ID du fournisseur d'identité de charge de travail

GCP Workload Identity Provider edit page with the provider ID field highlighted

2. Assurez-vous que KMS est activé

Allez sur 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 que celui dans lequel vous avez reconnu l’identité fédérée d’OpenAI ; toutefois, si les projets sont différents, le produit KMS doit au moins être activé dans les deux projets.

3. Créez une nouvelle clé KMS

  1. Allez sur Sécurité -> protection des données > gestion des clés

  2. Sous Vue d'ensemble, cliquez sur Créer un trousseau de clés

  1. Choisissez un nom pour votre trousseau de clés

  2. Pour objectif et algorithme, sélectionnez chiffrement/déchiffrement symétrique

GCP Key Management Overview page with the Create Key Ring button highlighted
  1. Une fois que vous avez créé un trousseau de clés, il devrait être listé dans l'onglet Trousseaux de clés. Cliquez sur le porte-clés.

  2. Dans les détails du trousseau de clés, cliquez sur Créer une clé

  1. Choisissez un nom quelconque pour votre clé

4. Créez un rôle limité pour les opérations de chiffrement/déchiffrement sur le KMS

  1. Allez sur IAM et Admin -> Roles -> Créer un poste

  2. Saisissez n'importe quelle valeur pour l'intitulé de poste et l'ID

  3. Cliquez sur Ajouter des autorisations, puis ajoutez les éléments suivants

  1. cloudkms.cryptoKeyVersions.useToDecrypt

  2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Attribuez l’identité fédérée d’OpenAI au rôle KMS limité pour les opérations de chiffrement et de déchiffrement

  1. Allez sur Sécurité -> Protection des données > Gestion des clés

  2. Cliquez sur le nom de votre trousseau de clés, puis cliquez sur le nom de votre clé pour accéder à la page des détails de votre clé.

  1. Cliquez sur l’onglet Autorisations, puis cliquez sur le bouton Accorder l’accès

Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  1. Attribuez l'identité fédérée OpenAI au rôle personnalisé que vous avez créé précédemment.

  1. Dans la section Ajouter des principaux, saisissez principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

  1. Dans la section Attribuer des rôles, sélectionnez le rôle personnalisé que vous avez créé à l'étape précédente pour des autorisations EKM limitées

6. Appliquez des restrictions supplémentaires conformément à vos propres pratiques de sécurité

Ci-dessus figurent les informations minimales requises dont OpenAI a besoin pour configurer EKM. Vous êtes libre d'appliquer des stratégies ou restrictions supplémentaires relatives aux clés, conformément à vos propres pratiques internes de sécurité, à 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é avec OpenAI décrit ci-dessous, nous validerons votre configuration.

Après avoir suivi les étapes ci-dessus

ChatGPT Enterprise

Veuillez contacter votre contact OpenAI et partager les éléments suivants :

  • "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 votre clé principale Key Management System

Nous activerons EKM pour votre organisation ou espace de travail ChatGPT.

API

Enregistrez votre clé externe auprès d'OpenAI

Suivez les instructions de cette référence d’API Clés externes dans l’API de gestion

  • Tout d'abord, enregistrez votre clé externe au niveau de l'organisation OpenAI, ce qui générera un identifiant de clé externe.

  • Lors de cette étape, nous allons valider votre configuration sur GCP en vérifiant que nous pouvons nous authentifier auprès de votre KMS.

  • Ceci 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" : <your org id or project id>,
   "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" : "Un projet",

   "external_key_id" : "extkey_xxxx"

}'

Cet article vous a-t-il été utile ?