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

Стъпки
1. Създайте принципал на услуга за OpenAI във вашия акаунт
Получете токен за достъп
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDСъздайте принципала на услуга — appId в заявката по-долу е клиентският идентификатор на приложението на OpenAI. Това ще създаде принципал с показвано име „EKM - OpenAI Azure“ — запомнете го за следващите стъпки.
Инструкции за интеграция на OpenAI / Azure EKM — създаване на принципал на услуга
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
Отидете на Абонаменти -> Контрол на достъпа (IAM)
От падащото меню + Добавяне изберете Добавяне на персонализирана роля
Отидете в раздела JSON, щракнете върху Редактиране и добавете следното:
Произволно име на роля — запомнете избраното име
Следните разрешения в dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

3. Създайте Key Vault + ключ
Ако все още нямате такъв, създайте нов Key Vault в същия абонамент, в който току-що създадохте персонализираната си роля.
В този Key Vault създайте нов ключ:
Отидете на Key Vault -> Обекти -> Ключове, след което щракнете върху Генериране/Импортиране
Под Опции изберете Генериране

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

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

4. Създайте назначаване на роля за принципала на услуга на OpenAI + нов персонализиран KMS + нов ключ
Отидете на Key Vault -> Обекти -> Ключове, след което щракнете върху реда за ключа, който създадохте
Отидете на Контрол на достъпа (IAM) за ключа, върху който току-що щракнахте (не за вашия Key Vault).
От падащото меню + Добавяне изберете Добавяне на назначаване на роля

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

В раздела Членове:
Щракнете върху „+ Избор на членове“
Въведете „ekm -“ в лентата за търсене, след което трябва да се зареди принципалът на услуга на OpenAI, който създадохте в стъпка 1

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