Общ преглед
Enterprise Key Management (EKM) позволява на OpenAI да криптира данни с помощта на главен ключ, който вие контролирате. За да може OpenAI да извиква операции за криптиране/декриптиране във вашия Key Vault, трябва да ни бъде предоставен достъп. Този документ показва как да настроите своя Azure акаунт, така че OpenAI да може да поеме роля с разрешения за Key Vault.

Стъпки
1. Създайте service principal за OpenAI във вашия акаунт
Вземете токен за достъп
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID2. Създайте service principal - appId в заявката по-долу е идентификаторът на клиента на приложението на OpenAI. Това ще създаде principal с показваното име „EKM - OpenAI Azure“ - запомнете това за следващите стъпки.
Инструкции за интеграция на OpenAI / Azure EKM - Създаване на service principal
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. Създайте персонализирана роля за ограничен достъп до KMS
Отидете на Subscriptions -> Access Control (IAM)
Под падащото меню + Add изберете Add custom role
Отидете в раздела JSON, щракнете върху Edit и добавете следното
Произволно име на роля - запомнете името, което сте избрали
Следните разрешения в dataActions
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
Microsoft.KeyVault/vaults/keys/read

3. Създайте Key Vault + Key
Ако все още нямате такъв, създайте нов Key Vault в същия абонамент , в който току-що създадохте своята персонализирана роля
В този Key Vault създайте нов Key:
Отидете на Key Vault -> Objects -> Keys, след което щракнете върху Generate/Import
Под Options изберете Generate

Изберете RSA за алгоритъм за криптиране.
Можете да изберете произволен размер на RSA ключа
Посочете име на ключ в следния формат: <org-xxx>--<any_name>, където org-xxx е вашият OpenAI organization ID, който можете да намерите на https://platform.openai.com/settings/organization/general

Ако не можете да преглеждате или създавате ключ, уверете се, че имате ролята Key Vault Administrator. Тя е необходима, дори ако имате ролята Owner. За да ви бъде присвоена ролята:
Отидете на Key Vault->Access Control (IAM)
Щракнете върху Add-> Add role assignment

4. Създайте присвояване на роля за service principal на OpenAI + нова персонализирана KMS + нов ключ
Отидете на Key Vault -> Objects -> Keys , след което щракнете върху реда за ключа, който създадохте
Отидете на Access control (IAM) за своя ключ, върху който току-що щракнахте (не за вашия key vault).
Под падащото меню + Add изберете Add role assignment

В раздела Role изберете името на персонализираната роля, която току-що създадохте.

В раздела Members:
Щракнете върху „+ Select members“
Въведете „ekm -“ в лентата за търсене, след което service principal на OpenAI, който създадохте в Стъпка 1, трябва да се зареди

5. Приложете допълнителни ограничения в съответствие със собствените си практики за сигурност
По-горе е минималната необходима информация, от която OpenAI се нуждае, за да настрои EKM. Можете свободно да приложите допълнителни политики за ключове или ограничения в съответствие със собствените си вътрешни практики за сигурност, стига OpenAI да може да извиква операции за криптиране и декриптиране на вашата KMS. Когато извикате крайната точка за регистриране на ключ с OpenAI, описана по-долу, ние ще валидираме вашата конфигурация.
След изпълнение на горните стъпки
ChatGPT Enterprise
Моля, свържете се с вашето лице за контакт в OpenAI и споделете следното:
"tenant_id": "<YOUR_AZURE_TENANT_UUID>"
Вашият Azure tenant UUID
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
URI адресът на Azure хранилището, съдържащо главния ключ, който управлявате
"key_name": "<YOUR_KEY_NAME>"
Името на главния ключ в Azure Key Vault, който управлявате
Името на ключа трябва да е във формата <org-xxx>--<any_name>, където org-xxx е вашият OpenAI organization ID, който можете да намерите на https://platform.openai.com/settings/organization/general
Ще активираме EKM за вашата организация/работно пространство в ChatGPT.
API
Регистрирайте външния си ключ в OpenAI
Следвайте инструкциите в тази API справка External Keys in the Management API
Първо регистрирайте външния си ключ на ниво OpenAI organization, което ще генерира идентификатор на външен ключ във формата extkey_xxx
В тази стъпка ще валидираме, че въведените от вас данни са валидни и че можем да се удостоверим пред вашата KMS.
Това все още няма да добави EKM към вашия OpenAI project.
# Това генерира ID на външен ключ във формата 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>"
}'След това създайте OpenAI project, свързан с външния ключ. След това EKM се активира за вашия project.
Тялото на отговора от това API извикване ще ви даде ID на project (proj_xxx)
Инструкции за интеграция на OpenAI / Azure EKM - Създаване на проект
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"
}'