OpenAI

Обзор корпоративного управления ключами (EKM) OpenAI

Узнайте, как работает EKM, какие провайдеры поддерживаются и с чего начать

Обновлено: 2 hours ago

Обзор

Корпоративное управление ключами (EKM) позволяет шифровать контент клиентов в OpenAI с помощью ключей, управляемых вашей собственной внешней системой управления ключами (KMS). Эта функция доступна для ChatGPT Enterprise и API.

OpenAI поддерживает шифрование Bring Your Own Key (BYOK) с внешними учетными записями в AWS KMS, Google Cloud (GCP) и Azure Key Vault.

В настоящее время внедрение EKM доступно только для рабочих областей Enterprise и Edu с назначенным представителем OpenAI по работе с клиентами.

Как работает шифрование OpenAI EKM

Поток верхнего уровня

  1. Мы создаем ключ шифрования данных (DEK) для вашего облачного провайдера.

  2. Ваша облачная KMS управляет главным ключом шифрования ключей (KEK), который хранится либо в вашем облаке, либо вне его. Реализация остается на ваше усмотрение.

  3. Мы запрашиваем шифрование DEK из вашего облака, чтобы получить зашифрованный DEK (eDEK). Если ваш KEK хранится во внешнем хранилище, ваше облако просто выполняет дополнительный переход к вашему внешнему хранилищу на этапе, который не виден OpenAI.

Шифрование

При шифровании ваши данные шифруются с помощью DEK, а eDEK сохраняется в метаданных файла.

EKM encryption flow where OpenAI requests a DEK from your KMS, encrypts data, and stores encrypted data with eDEK

Дешифрование

При дешифровании мы запрашиваем у вашей облачной KMS расшифровку eDEK в DEK, а затем расшифровываем данные с помощью DEK.

EKM decryption flow where OpenAI requests a DEK from your KMS to decrypt encrypted data for download

Ключевые термины

  • Ключ шифрования данных (DEK) — ключ, который шифрует ваши данные. 

  • Зашифрованный ключ шифрования данных (eDEK) — зашифрованный DEK, созданный вашей KMS

  • Ключ шифрования ключей (KEK) — главный ключ, которым вы управляете и который шифрует DEK в eDEK и дешифрует eDEK в DEK. Этот ключ всегда остается вне систем OpenAI.

Высокоуровневые требования к реализации

Для вашего облачного провайдера

  1. Создайте новый ключ в облачной KMS (Azure, AWS или GCP)

  2. Создайте пользовательскую ограниченную политику с разрешениями на шифрование и дешифрование в KMS

  3. Создайте политику доверия (AWS), учетную запись рабочей нагрузки (GCP) или субъект-службу (для Azure) для OpenAI

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

На платформах OpenAI

ChatGPT Enterprise

Создавать рабочую область ChatGPT для тестирования.

API

На панели управления OpenAI создайте новый проект, в котором будет применяться шифрование.

Функции, специфичные для провайдера

Для AWS, OpenAI будет:

  • Вызывать AssumeRole с ExternalID

Для GCP OpenAI будет:

  • Вызывать вашу конечную точку STS из учетной записи OpenAI GCP

  • Использовать токен доступа GCP, чтобы вызвать функции шифрования/дешифрования для вашей KMS.

Для платформы Azure OpenAI будет:

  • Запрашивать токен доступа для хранилища вашего клиента Azure

  • Использовать этот токен доступа, чтобы вызвать шифрование и дешифрование для вашего хранилища ключей.

Информация, необходимая от OpenAI

Аутентификация

Для AWS и GCP вам потребуется распознать токен федеративной идентификации OpenAI. Для Azure вам потребуется распознать ID приложения OpenAI для его регистрации.

Сводка параметров аутентификации

Основной объект OpenAI AWSarn:aws:iam::790389265272:role/EnterpriseKeyManagement
Идентификатор сервисного учетной записи OpenAI GCP105900137572174660365
Идентификатор приложения OpenAI Azure20a14814-5ab7-4612-a671-1382b412bf93

Требуемая информация при внедрении в зависимости от вашего облачного провайдера

  • Для AWS необходимо настроить политику доверия, которая распознает:

    • Основного пользователя OpenAI (номер учетной записи + роль)

    • ExternalID, который является идентификатором вашего проекта OpenAI

  • Для GCP необходимо настроить идентификацию рабочих нагрузок, которая распознает:

    • ID сервисной учетной записи OpenAI

    • Целевую аудиторию, связанную с идентификатором вашего проекта OpenAI

  • Для Azure необходимо создать служебную учетную запись в клиенте Azure для регистрации приложения OpenAI

    • Создайте запись для идентификатора клиента приложения OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9

    • Это можно сделать, отправив запрос на https://graph.microsoft.com/v1.0/servicePrincipals (конечную точку).

Авторизация

Вам потребуется создать политику, которая позволит удостоверению OpenAI получить ограниченный доступ к вашей KMS. 

AWSGCPAzure
kms:Decryptkms:Encryptcloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncryptMicrosoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action

Другое

В Azure для типа ключа (алгоритма шифрования ключа) выберите RSA, а не EC.

Информация, необходимая OpenAI от вас

Следуйте инструкциям в этом документе, чтобы зарегистрировать ваш KMS в OpenAI. Ниже приведена сводка параметров, которые вам потребуется указать.

  1. Связанные с аутентификацией

    1. AWS

      1. IAM Role ARN — роль, которую OpenAI может принять (пример: arn:aws:iam::123456789:role/role-name)

      2. ExternalID — ваш ID организации OpenAI

    2. GCP

      1. Номер проекта идентификации рабочих процессов (пример: 123456789)

      2. ID пула удостоверений для рабочих нагрузок

      3. ID поставщика удостоверений для рабочих нагрузок

      4. Разрешенная аудитория: ваш ID организации OpenAI

    3. Azure

      1. ID клиента

AWSGCPAzure
Связано с аутентификацией ID клиента
Связано с KMSKMS ARN — (пример: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID)ID проекта KMS (пример: adjective-noun-12345)Имя связки ключей KMSИмя ключа KMSМестоположение ключа KMS (пример: us-east1)URI хранилища (пример: https://your-vault-name.vault.azure.net/)Имя ключа

После того как вы зарегистрируете свой KMS в OpenAI, продолжайте следовать инструкциям в документации, чтобы активировать конфигурацию EKM в API-проекте. Создайте новый проект API OpenAI для тестирования.

Руководства по реализации для конкретных провайдеров

Пошаговое руководство см. по соответствующим ссылкам ниже. Обратите внимание: руководства посвящены требованиям к интеграции с OpenAI и не предназначены для использования в качестве полного руководства по всей вашей среде

Неподдерживаемые функции при включенном EKM

В первом релизе при включении EKM недоступны следующие функции:

  • Приложения с синхронизацией

  • Функции, которые не являются общедоступными (т. е. всё, что ещё находится в стадии бета/альфа-тестирования)

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