Aperçu
Enterprise Key Management (EKM) permet à OpenAI de chiffrer les données au moyen d’une clé maîtresse que vous contrôlez. Pour qu’OpenAI puisse appeler les opérations de chiffrement/déchiffrement sur votre Key Vault, nous devons obtenir l’accès requis. Ce document explique comment configurer votre compte Azure afin qu’OpenAI puisse assumer un rôle disposant d’autorisations sur Key Vault.

Étapes
1. Créez un principal de service pour OpenAI dans votre compte
Obtenez un jeton d’accès
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID2. Créez le principal de service – le appId dans la requête ci-dessous est l’ID client d’application d’OpenAI. Cela créera un principal portant le nom d’affichage « EKM - OpenAI Azure » – retenez-le pour les étapes suivantes.
Instructions d’intégration OpenAI / Azure EKM - Créer un 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é
Allez à Subscriptions -> Access Control (IAM)
Dans le menu déroulant + Add , sélectionnez Add custom role
Allez à l’onglet JSON, cliquez sur Edit, puis ajoutez ce qui suit
N’importe quel nom de rôle – retenez le nom choisi
Les autorisations suivantes dans dataActions
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
Microsoft.KeyVault/vaults/keys/read

3. Créez un Key Vault + Key
Si vous n’en avez pas déjà un, créez un nouveau Key Vault dans le même abonnement où vous venez de créer votre rôle personnalisé
Dans ce Key Vault, créez une nouvelle clé :
Allez à Key Vault -> Objects -> Keys, puis cliquez sur Generate/Import
Sous Options, sélectionnez Generate

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-xxx est l’ID de votre organisation OpenAI, que vous pouvez trouver à l’adresse 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 Key Vault Administrator. Cela est nécessaire même si vous avez le rôle Owner. Pour vous faire attribuer le rôle :
Allez à Key Vault->Access Control (IAM)
Cliquez sur Add-> Add role assignment

4. Créez une attribution de rôle pour le principal de service OpenAI + le nouveau KMS personnalisé + la nouvelle clé
Allez à Key Vault -> Objects -> Keys , puis cliquez sur la ligne correspondant à la clé que vous avez créée
Allez à Access control (IAM) pour votre clé sur laquelle vous venez de cliquer (et non votre Key Vault).
Dans le menu déroulant + Add, sélectionnez Add role assignment

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

Dans l’onglet Members :
Cliquez sur « + Select members »
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é
Ce qui précède correspond au minimum d’information requis par OpenAI pour configurer EKM. Vous pouvez appliquer des politiques de clé 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 lui transmettre ce qui suit :
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
Votre UUID de locataire Azure
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
L’URI du coffre Azure contenant la clé maîtresse que vous gérez
"key_name": "<YOUR_KEY_NAME>"
Le nom de la clé maîtresse Azure Key Vault que vous gérez
Le nom de clé doit avoir la forme <org-xxx>--<any_name>, où org-xxx est l’ID de votre organisation OpenAI, que vous pouvez trouver à l’adresse https://platform.openai.com/settings/organization/general
Nous activerons EKM pour votre organisation/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 ID de clé externe de la forme extkey_xxx
À cette étape, nous validerons que vos données d’entrée sont valides et que nous pouvons nous authentifier auprès de votre KMS.
Cela n’ajoutera pas encore EKM à votre projet OpenAI.
# Ceci génère un ID de clé externe de la forme 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>"
}'Ensuite, créez un projet OpenAI associé à la clé externe. Après cela, EKM est activé sur votre projet.
Le corps de réponse de cet appel d’API vous donnera l’ID du projet (proj_xxx)
Instructions d’intégration OpenAI / Azure EKM - Créer un 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"
}'