Огляд
Enterprise Key Management (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
Загальний процес
Ми генеруємо Data Encryption Key (DEK) для вашого хмарного провайдера.
Ваш хмарний KMS керує головним Key Encryption Key (KEK), який зберігається або у вашій хмарі, або зовнішньо. Реалізація залежить від вас.
Ми запитуємо шифрування DEK у вашій хмарі, щоб отримати зашифрований DEK (eDEK). Якщо ваш KEK зберігається зовнішньо, ваша хмара просто виконує додатковий перехід до вашого зовнішнього сховища на кроці, який є непрозорим для OpenAI.
Шифрування
Під час шифрування ваші дані шифруються за допомогою DEK, а eDEK зберігається як метадані файлу.

Розшифрування
Під час розшифрування ми запитуємо розшифрування eDEK вашим хмарним KMS у DEK, а потім розшифровуємо дані за допомогою DEK.

Ключові терміни
Data Encryption Key (DEK) — ключ, який шифрує ваші дані.
Encrypted Data Encryption Key (eDEK) — зашифрований DEK, згенерований вашим KMS
Key Encryption Key (KEK) — головний ключ, яким ви керуєте, який шифрує DEK -> eDEK і розшифровує eDEK -> DEK. Цей ключ завжди залишається поза системами OpenAI.
Загальні вимоги до впровадження
У вашого хмарного провайдера
Створіть новий ключ у вашому хмарному KMS (Azure, AWS або GCP)
Створіть спеціальну обмежену політику з дозволами Encrypt/Decrypt для KMS
Створіть політику довіри (AWS), ідентичність робочого навантаження (GCP) або суб’єкт-службу (для Azure) для OpenAI
Призначте OpenAI роль з обмеженою політикою для доступу до вашого KMS
На платформах OpenAI
ChatGPT Enterprise
Для тестування створіть ізольований робочий простір ChatGPT.
API
На панелі OpenAI створіть новий проєкт, до якого буде застосовано шифрування.
Функції, специфічні для провайдера
Для AWS OpenAI:
викликатиме AssumeRole з ExternalID
Для GCP OpenAI:
викликатиме вашу кінцеву точку STS з облікового запису GCP OpenAI
використовуватиме токен доступу GCP для виклику encrypt/decrypt у вашому KMS.
Для Azure OpenAI:
запитуватиме токен доступу для сховища у вашому орендарі Azure
використовуватиме цей токен доступу для виклику encrypt/decrypt у вашому Key Vault.
Інформація, яку вам потрібно отримати від OpenAI
Автентифікація
Вам потрібно буде розпізнавати токени федеративної ідентичності OpenAI для AWS і GCP. Для Azure потрібно буде розпізнавати ідентифікатор застосунку OpenAI для його реєстрації застосунку.
Підсумок параметрів автентифікації
| AWS-суб’єкт OpenAI | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| Ідентифікатор сервісного облікового запису GCP OpenAI | 105900137572174660365 |
| Ідентифікатор застосунку Azure OpenAI | 20a14814-5ab7-4612-a671-1382b412bf93 |
Обов’язкова інформація під час впровадження залежно від вашого хмарного провайдера
Для AWS потрібно налаштувати політику довіри, яка розпізнає:
принципал OpenAI (номер облікового запису + роль)
ExternalID, який є ідентифікатором вашого проєкту OpenAI
Для GCP потрібно налаштувати ідентифікацію робочого навантаження, яка розпізнає:
ідентифікатор сервісного облікового запису OpenAI
аудиторію, яка є ідентифікатором вашого проєкту OpenAI
Для Azure потрібно створити суб’єкт-службу у вашому тенанті Azure для реєстрації застосунку OpenAI
Створіть його для ідентифікатора клієнта застосунку OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9
Це можна зробити, надіславши POST-запит до кінцевої точки https://graph.microsoft.com/v1.0/servicePrincipals.
Авторизація
Вам потрібно буде створити політику, яка надає ідентичності OpenAI обмежений доступ до вашого KMS.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
Інше
В Azure для типу ключа (алгоритму шифрування ключа) виберіть RSA, а не EC.
Інформація, яку OpenAI потрібно отримати від вас
Дотримуйтесь інструкцій у цьому документі, щоб зареєструвати вашу службу KMS в OpenAI. Ось короткий огляд параметрів, які вам потрібно буде надати.
Пов’язане з автентифікацією
AWS
IAM Role ARN — роль, яку OpenAI має взяти на себе (приклад: arn:aws:iam::123456789:role/role-name)
ExternalID — ідентифікатор вашої організації OpenAI
GCP
Номер проєкту Workload Identity (приклад: 123456789)
Ідентифікатор пулу Workload Identity
Ідентифікатор постачальника Workload Identity
Дозволена аудиторія: ідентифікатор вашої організації OpenAI
Azure
Ідентифікатор тенанта
| AWS | GCP | Azure | |
| Пов’язане з автентифікацією | Ідентифікатор тенанта | ||
| Пов’язане з KMS | KMS ARN — (приклад: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | Ідентифікатор проєкту 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 увімкнено:
Програми із синхронізацією
Функції, які ще не є загальнодоступними (тобто все, що досі в бета/альфа-версії)
