Огляд
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
Перейдіть до Subscriptions -> Access Control (IAM)
У розкривному меню + Add виберіть Add custom role
Перейдіть на вкладку JSON, натисніть Edit і додайте таке:
Будь-яка назва ролі — запам’ятайте вибрану назву
Такі дозволи в 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 -> Objects -> Keys, а потім натисніть Generate/Import
У розділі Options виберіть Generate

Виберіть RSA як алгоритм шифрування.
Можна вибрати будь-який розмір ключа RSA
Укажіть ім’я ключа в такому форматі:
<org-xxx>--<any_name>, деorg-xxx— ідентифікатор вашої організації OpenAI, який можна знайти на https://platform.openai.com/settings/organization/general

Якщо ви не можете переглянути або створити ключ, переконайтеся, що маєте роль Key Vault Administrator. Це потрібно, навіть якщо у вас є роль Owner. Щоб призначити роль:
Перейдіть до Key Vault -> Access Control (IAM)
Натисніть Add -> Add role assignment

4. Створіть призначення ролі для суб’єкта-служби OpenAI + нового користувацького KMS + нового ключа
Перейдіть до Key Vault -> Objects -> Keys, а потім натисніть рядок ключа, який ви створили
Перейдіть до Access control (IAM) для ключа, який ви щойно натиснули (не для сховища ключів).
У розкривному меню + Add виберіть Add role assignment

На вкладці Role виберіть назву щойно створеної користувацької ролі.

На вкладці Members:
Натисніть «+ Select members»
Введіть «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"
}'