Aperçu
La gestion des clés d’entreprise (Enterprise Key Management, EKM) permet à OpenAI de chiffrer les données à l’aide d’une clé principale que vous contrôlez. Pour qu’OpenAI puisse appeler les opérations de chiffrement et de déchiffrement sur votre Key Vault, nous devrons obtenir l’accès. Ce document explique comment configurer votre compte Azure afin qu’OpenAI puisse assumer un rôle doté d’autorisations Key Vault.

Étapes
1. Créez un principal de service pour OpenAI dans votre compte
Obtenir un token d’accès
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDCréez le principal de service - le appId dans la requête ci-dessous est l’ID client de l’application d’OpenAI. Cela créera un principal avec le nom d’affichage « EKM - OpenAI Azure » - souvenez-vous-en pour les étapes suivantes.
Instructions d’intégration EKM OpenAI / Azure - Créer le principal de service
curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'2. Créez un rôle personnalisé pour un accès KMS limité
Accédez à Abonnements -> Contrôle d’accès (IAM)
Dans le menu déroulant + Ajouter, sélectionnez Ajouter un rôle personnalisé
Accédez à l’onglet JSON, cliquez sur Modifier, puis ajoutez ce qui suit :
N’importe quel nom de rôle - souvenez-vous du nom que vous avez sélectionné
Les autorisations suivantes dans dataActions :
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

3. Créez un coffre de clés + une clé
Si vous n’en avez pas déjà un, créez un nouveau coffre de clés dans le même abonnement que celui où vous venez de créer votre rôle personnalisé.
Dans ce coffre de clés, créez une nouvelle clé :
Accédez à Coffre de clés -> Objets -> Clés, puis cliquez sur Générer/Importer
Sous Options, sélectionnez Générer

Sélectionnez RSA comme algorithme de chiffrement.
Vous pouvez sélectionner n’importe quelle taille de clé RSA
Fournissez un nom de clé au format suivant :
<org-xxx>--<any_name>, oùorg-xxxest l’ID de votre organisation OpenAI, que vous trouverez à https://platform.openai.com/settings/organization/general

Si vous ne pouvez pas afficher ou créer une clé, assurez-vous d’avoir le rôle Administrateur Key Vault. Cela est nécessaire même si vous avez le rôle Propriétaire. Pour vous faire attribuer le rôle :
Accédez à Coffre de clés -> Contrôle d’accès (IAM)
Cliquez sur Ajouter -> Ajouter une attribution de rôle

4. Créez une attribution de rôle pour le principal de service OpenAI + le nouveau KMS personnalisé + la nouvelle clé
Accédez à Coffre de clés -> Objets -> Clés, puis cliquez sur la ligne de la clé que vous avez créée
Accédez au Contrôle d’accès (IAM) pour la clé sur laquelle vous venez de cliquer (pas votre coffre de clés).
Dans le menu déroulant + Ajouter, sélectionnez Ajouter une attribution de rôle

Dans l’onglet Rôle, sélectionnez le nom du rôle personnalisé que vous venez de créer.

Dans l’onglet Membres :
Cliquez sur « + Sélectionner des membres »
Tapez « ekm - » dans la barre de recherche; le principal de service OpenAI que vous avez créé à l’étape 1 devrait alors s’afficher

5. Appliquez toute restriction supplémentaire conforme à vos propres pratiques de sécurité
Ci-dessus se trouvent les renseignements minimaux 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, 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 lui transmettre ce qui suit :
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
"key_name": "<YOUR_KEY_NAME>"
Le nom de la clé principale Azure Key Vault que vous gérez
Le nom de la clé doit avoir le format <org-xxx>--<any_name>, où org-xxx est l’ID de votre organisation OpenAI, que vous trouverez à https://platform.openai.com/settings/organization/general
Nous activerons EKM pour votre organisation/espace de travail ChatGPT.
API
Enregistrer 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
Commencez par enregistrer votre clé externe au niveau de l’organisation OpenAI; cela générera un ID de clé externe au format extkey_xxx
À cette étape, nous validerons que votre entrée est valide et que nous pouvons nous authentifier auprès de votre KMS.
Cela n’ajoutera pas encore EKM à votre projet OpenAI.
# This generates an external key ID of the form extkey_xxx
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "<ANY_FRIENDLY_NAME>",
"tenant_id": "<YOUR_AZURE_TENANT_UUID>",
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
"key_name": "<YOUR_KEY_NAME>"
}'Créez ensuite un projet OpenAI associé à la clé externe. Après cela, EKM est activé sur votre projet.
Le corps de la réponse de cet appel d’API vous donnera l’ID de projet (proj_xxx)
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"
}'