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

Инструкции
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. Создайте хранилище ключей + ключ
Если у вас его еще нет, создайте новое хранилище ключей в той же подписке, в которой вы только что создали пользовательскую роль.
В этом хранилище ключей создайте новый ключ:
Перейдите в «Хранилище ключей -> Объекты -> Ключи», затем нажмите «Создать/Импортировать»
В разделе «Параметры» выберите «Создать»

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

Если вы не можете просмотреть или создать ключ, убедитесь, что у вас есть роль администратора хранилища ключей. Это необходимо, даже если у вас есть роль владельца. Чтобы назначить роль:
Перейдите в «Хранилище ключей — Управление доступом (IAM)»
Нажмите «Добавить -> Добавить назначение роли»

4. Создайте назначение роли для сервисного субъекта OpenAI и новой пользовательской KMS и нового ключа
Перейдите в «Хранилище ключей -> Объекты -> Ключи», затем щелкните строку ключа, который вы создали
Перейдите в раздел «Контроль доступа (IAM)», чтобы просмотреть ключ, который вы только что выбрали (не хранилище ключей).
В раскрывающемся списке «+ Добавить» выберите «Добавить назначение роли»

На вкладке «Роль» выберите имя только что созданной вами пользовательской роли.

На вкладке «Участники»:
Нажмите на «+ Выбрать участников»
Введите “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 — это ваш 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"
}'