OpenAI
Cette page a été traduite automatiquement. Afficher l’article original en anglais.

Instructions d’intégration OpenAI / GCP EKM

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

Mise à jour : 14 hours ago

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.

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 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.

  1. Allez à IAM & Admin -> Workload Identity Federation et cliquez sur Create Pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. À l’étape Create an identity pool, entrez n’importe quelle valeur pour le nom du pool.

    1. Souvenez-vous-en pour plus tard — vous devrez l’enregistrer auprès d’OpenAI

  3. À l’étape Add a provider to pool :

    1. Dans Select a provider, sélectionnez OpenID Connect (OIDC)

    2. Entrez n’importe quelle valeur pour le nom du fournisseur.

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

    4. Dans la section Audiences

      1. Sélectionnez Allowed audiences

      2. Entrez l’audience qu’OpenAI doit indiquer lorsque nous vous transmettons un jeton.

        1. Pour ChatGPT ou API : vous pouvez inscrire l’ID d’organisation de l’API OpenAI (org-xxx)

        2. Pour l’API : vous pouvez inscrire un ID de projet API précis pour plus de granularité.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. Dans la section Attribute mapping

      1. pour google.subject, entrez assertion.sub

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

      1. inscrivez assertion.sub == "105900137572174660365"

  4. 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

    1. ID du workload identity pool

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. ID du workload identity provider

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

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

  1. Allez à Security -> Data Protection > Key Management

  2. Sous l’onglet Overview, cliquez sur Create key ring

    1. Choisissez n’importe quel nom pour votre trousseau de clés

    2. Pour Purpose and algorithm, sélectionnez Symmetric encrypt/decrypt

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. Une fois le trousseau de clés créé, il devrait apparaître dans l’onglet Key Rings. Cliquez sur le trousseau de clés.

    4. Dans les détails du trousseau de clés, cliquez sur Create Key

      1. 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

  1. Allez à IAM & Admin -> Roles -> Create role

  2. Entrez n’importe quelle valeur pour le titre et l’ID du rôle

  3. Cliquez sur Add Permissions, puis ajoutez ce qui suit

    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/déchiffrement

  1. Allez à Security -> Data Protection > Key Management

  2. 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é.

    1. Si vous n’avez pas cela, revenez à la section Create a KMS

  3. Cliquez sur l’onglet Permissions, puis sur le bouton Grant Access

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

    1. 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

      1. 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.

      2. 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

    2. 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"

}'

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