OpenAI

OpenAI / Azure EKM: инструкции по интеграции

Пошаговые инструкции по подготовке Azure и активации EKM

Обновлено: 14 days ago

Обзор

Корпоративное управление ключами (EKM) позволяет OpenAI шифровать данные с помощью мастер-ключа, который контролируете вы. Чтобы OpenAI могла выполнять операции шифрования/дешифрования с вашим хранилищем ключей, нам необходимо, чтобы вы предоставили нам доступ. В этом документе показано, как настроить вашу учетную запись Azure, чтобы OpenAI могла брать на себя роль с разрешениями доступа к хранилищу ключей.

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. Перейдите в раздел «Подписки → Управление доступом (IAM)»

  2. В выпадающем меню «+ Добавить» выберите пункт «Добавить пользовательскую роль»

  3. Перейдите на вкладку JSON, нажмите «Редактировать» и добавьте следующее:

    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. Создайте хранилище ключей + ключ

Если у вас его еще нет, создайте новое хранилище ключей в той же подписке, в которой вы только что создали пользовательскую роль.

В этом хранилище ключей создайте новый ключ:

  1. Перейдите в «Хранилище ключей -> Объекты -> Ключи», затем нажмите «Создать/Импортировать»

  2. В разделе «Параметры» выберите «Создать»

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

  2. Вы можете выбрать любой размер ключа RSA

  3. Укажите имя ключа в следующем формате: <org-xxx>--<any_name>, где org-xxx — это ID вашей организации 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

Если вы не можете просмотреть или создать ключ, убедитесь, что у вас есть роль администратора хранилища ключей. Это необходимо, даже если у вас есть роль владельца. Чтобы назначить роль:

  1. Перейдите в «Хранилище ключей — Управление доступом (IAM)»

  2. Нажмите «Добавить -> Добавить назначение роли»

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

4. Создайте назначение роли для сервисного субъекта OpenAI и новой пользовательской KMS и нового ключа

  1. Перейдите в «Хранилище ключей -> Объекты -> Ключи», затем щелкните строку ключа, который вы создали

  2. Перейдите в раздел «Контроль доступа (IAM)», чтобы просмотреть ключ, который вы только что выбрали (не хранилище ключей).

  3. В раскрывающемся списке «+ Добавить» выберите «Добавить назначение роли»

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  1. На вкладке «Роль» выберите имя только что созданной вами пользовательской роли.

Azure role list filtered for openai- with the openai-azure-kms-role entry
  1. На вкладке «Участники»:

    1. Нажмите на «+ Выбрать участников»

    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 — это ваш ID организации OpenAI, который можно найти на странице https://platform.openai.com/settings/organization/general

Мы включим EKM для вашей организации/рабочей области ChatGPT.

API

Регистрация собственного внешнего ключа в OpenAI

Следуйте инструкциям в этом руководстве по API «Внешние ключи в API управления»

  • Сначала зарегистрируйте внешний ключ на уровне организации OpenAI, после чего будет сгенерирован ID внешнего ключа в формате extkey_xxx

  • На этом этапе мы проверим, что введенные вами данные корректны и что мы сможем пройти аутентификацию в вашей KMS.

  • Пока что система EKM еще не будет добавлена в ваш проект OpenAI.

# Это создаст 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, связанный с внешним ключом. После этого система EKM будет активирована в вашем проекте.

  • Тело ответа этого API-запроса будет содержать ID проекта (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"
}'

Была ли эта статья полезной?