OpenAI
Для перекладу цієї сторінки виконано машинний переклад. Ви можете переглянути оригінальну статтю англійською.

Інструкції з інтеграції EKM OpenAI / Azure

Покрокові інструкції з налаштування Azure та активації EKM

Оновлено: 2 days ago

Огляд

Enterprise Key Management (EKM) дає змогу OpenAI шифрувати дані за допомогою головного ключа, який ви контролюєте. Щоб OpenAI могла викликати операції шифрування/дешифрування у вашому Key Vault, нам потрібно надати доступ. У цьому документі показано, як налаштувати обліковий запис Azure, щоб OpenAI могла прийняти роль із дозволами Key Vault.

Azure EKM flow where OpenAI EKM uses Microsoft Entra ID to access your Key Vault and master KEK

Кроки

1. Створіть суб’єкт-службу для OpenAI у своєму обліковому записі

  1. Отримайте токен доступу

az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID
  1. Створіть суб’єкт-службу — 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

  1. Перейдіть до Subscriptions -> Access Control (IAM)

  2. У розкривному меню + Add виберіть Add custom role

  3. Перейдіть на вкладку JSON, натисніть Edit і додайте таке:

    1. Будь-яка назва ролі — запам’ятайте вибрану назву

    2. Такі дозволи в dataActions:

      1. Microsoft.KeyVault/vaults/keys/encrypt/action

      2. Microsoft.KeyVault/vaults/keys/decrypt/action

      3. Microsoft.KeyVault/vaults/keys/read

OpenAI / Azure EKM Integration Instructions Custom Role

3. Створіть Key Vault + ключ

Якщо у вас його ще немає, створіть новий Key Vault у тій самій підписці, де ви щойно створили користувацьку роль.

У цьому Key Vault створіть новий ключ:

  1. Перейдіть до Key Vault -> Objects -> Keys, а потім натисніть Generate/Import

  2. У розділі Options виберіть Generate

Azure Key Vault Keys page with Generate/Import highlighted to add a key
  1. Виберіть RSA як алгоритм шифрування.

  2. Можна вибрати будь-який розмір ключа RSA

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

Azure Key Vault key generation form with RSA selected and key name org-abcdefg--test-keyvault-key

Якщо ви не можете переглянути або створити ключ, переконайтеся, що маєте роль Key Vault Administrator. Це потрібно, навіть якщо у вас є роль Owner. Щоб призначити роль:

  1. Перейдіть до Key Vault -> Access Control (IAM)

  2. Натисніть Add -> Add role assignment

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment

4. Створіть призначення ролі для суб’єкта-служби OpenAI + нового користувацького KMS + нового ключа

  1. Перейдіть до Key Vault -> Objects -> Keys, а потім натисніть рядок ключа, який ви створили

  2. Перейдіть до Access control (IAM) для ключа, який ви щойно натиснули (не для сховища ключів).

  3. У розкривному меню + Add виберіть Add role assignment

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  1. На вкладці Role виберіть назву щойно створеної користувацької ролі.

Azure role list filtered for openai- with the openai-azure-kms-role entry
  1. На вкладці Members:

    1. Натисніть «+ Select members»

    2. Введіть «ekm -» у рядку пошуку, після чого має завантажитися суб’єкт-служба OpenAI, який ви створили на кроці 1

Azure role assignment Members step with EKM - OpenAI Azure Application selected as a member

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"
}'

Чи була ця стаття корисною?