Présentation
La gestion des clés d'entreprise (EKM) permet à OpenAI de chiffrer les données à l'aide d'une clé maître que vous contrôlez. Pour qu'OpenAI puisse effectuer des opérations de chiffrement et de déchiffrement sur votre Key Vault, il faudra nous accorder l'accès. Ce document explique comment configurer votre compte Azure afin qu'OpenAI puisse assumer un rôle avec des autorisations Key Vault.

Étapes
1. Créez un principal de service pour OpenAI dans votre compte
Obtenez un token d'accès
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID2. Créez le principal de service : l' appId dans la requête ci-dessous correspond à l'identifiant client de l'application OpenAI. Cela créera un principal avec 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éer un rôle personnalisé pour un accès limité à KMS
Allez sur Abonnements -> Contrôle d'accès (IAM)
Dans le menu déroulant + Add , sélectionnez Ajouter un rôle personnalisé
Allez sur l'onglet JSON, cliquez sur Modifier et 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/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 encore, créez un nouveau Key Vault dans le même abonnement dans lequel vous venez de créer votre rôle personnalisé
Dans ce Key Vault, créez une nouvelle clé :
Go à 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 choisir n'importe quelle taille de clé RSA
Fournissez un nom de clé au format suivant : <org-xxx>--<any_name>, où org-xxx correspond à votre identifiant d'organisation OpenAI que vous pouvez trouver à l'adresse https://platform.openai.com/settings/organization/general

Si vous ne parvenez pas à afficher ou à créer une clé, assurez-vous de disposer du rôle Key Vault Administrator. Cela est nécessaire même si vous avez le rôle de Propriétaire. Pour se voir attribuer le rôle :
Go Key Vault->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, un nouveau KMS personnalisé et une nouvelle clé
Go à Key Vault -> Objects -> Keys , puis cliquez sur la ligne correspondant à la clé que vous avez créée
Go à Contrôle d'accès (IAM) pour la clé sur laquelle vous venez de cliquer (et non à 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 »
Saisissez « 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 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 :
"tenant_id" : "<YOUR_AZURE_TENANT_UUID>"
UUID de votre client Azure
"vault_uri" : "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
L'URI du coffre Azure contenant la clé principale que vous gérez
"key_name" : "<YOUR_KEY_NAME>"
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'identifiant de votre organisation OpenAI, que vous pouvez trouver à l'adresse https://platform.openai.com/settings/organization/general.
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 au format extkey_xxx
À cette étape, nous allons vérifier que votre entrée est valide et que nous pouvons nous authentifier auprès de votre KMS.
Ceci n'ajoutera pas encore EKM à votre projet OpenAI.
# Cela 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 la réponse de cet appel d'API vous fournira l'identifiant du projet (proj_xxx)
Instructions d'intégration OpenAI / Azure EKM - création de 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"
}'