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

Кроки
1. Створіть федеративну ідентичність для OpenAI
OpenAI видаватиме токен ідентичності з облікового запису GCP, що належить OpenAI, який виглядає приблизно так.
azp і sub — це ID сервісного облікового запису OpenAI у GCP
aud — це ID вашої організації OpenAI. Ви також можете вибрати іншу аудиторію, наприклад ID вашого проєкту OpenAI — див. інструкції нижче
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Цей крок розпізнає твердження, зроблені цим токеном ідентичності, і дає вашому GCP STS змогу видавати токен доступу, коли цей токен ідентичності надано.
Перейдіть до IAM і адміністрування -> Федерація ідентичності робочого навантаження та натисніть Створити пул

На кроці Створити пул ідентичностей введіть будь-що для назви пулу.
На кроці Додати постачальника до пулу:
У полі «Виберіть постачальника» виберіть OpenID Connect (OIDC)
Введіть будь-яку назву постачальника.
У розділі Емітент (URL) введіть https://accounts.google.com
У розділі Аудиторії
Виберіть Дозволені аудиторії
Введіть аудиторію, яку OpenAI має вказувати, коли ми передаємо вам токен.
Для ChatGPT або API: можна вказати ID організації OpenAI API (org-xxx)
Для API: можна вказати конкретний ID проєкту API для більшої деталізації.

У розділі Зіставлення атрибутів
для google.subject введіть assertion.sub

У розділі Умови атрибутів
Тепер ви маєте побачити свій пул ідентичностей робочого навантаження та постачальника ідентичності робочого навантаження на сторінці https://console.cloud.google.com/iam-admin/workload-identity-pools
ID пулу ідентичностей робочого навантаження

ID постачальника ідентичності робочого навантаження

2. Переконайтеся, що KMS увімкнено
Перейдіть на https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview, щоб увімкнути KMS. Вам не потрібно створювати KMS у тому самому проєкті GCP, де ви розпізнали федеративну ідентичність OpenAI; однак, якщо проєкти відрізняються, продукт KMS має бути принаймні увімкнений в обох проєктах.
3. Створіть новий ключ KMS
Перейдіть до Безпека -> Захист даних > Керування ключами
На вкладці Огляд натисніть Створити кільце ключів
Виберіть будь-яку назву для свого кільця ключів
Для параметра «Призначення та алгоритм» виберіть Симетричне шифрування/дешифрування

Після створення кільця ключів воно має з’явитися на вкладці Кільця ключів. Натисніть кільце ключів.
У відомостях про кільце ключів натисніть Створити ключ
Виберіть будь-яку назву для свого ключа
4. Створіть обмежену роль для операцій шифрування/дешифрування в KMS
Перейдіть до IAM і адміністрування -> Ролі -> Створити роль
Введіть будь-яку назву та ID ролі
Натисніть Додати дозволи, а потім додайте наведене нижче
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Призначте федеративну ідентичність OpenAI обмеженій ролі KMS для операцій шифрування/дешифрування
Перейдіть до Безпека -> Захист даних > Керування ключами
Натисніть назву свого кільця ключів, а потім назву свого ключа, щоб перейти на сторінку відомостей про ключ.
Перейдіть на вкладку Дозволи, а потім натисніть кнопку Надати доступ

Призначте федеративну ідентичність OpenAI спеціальній ролі, яку ви створили раніше
У розділі Додати суб’єктів введіть principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
У розділі Призначити ролі виберіть спеціальну роль, створену на попередньому кроці для обмежених дозволів EKM
6. Застосуйте будь-які додаткові обмеження відповідно до власних практик безпеки
Вище наведено мінімально необхідну інформацію, яка потрібна OpenAI для налаштування EKM. Ви можете застосовувати додаткові політики ключів або обмеження відповідно до власних внутрішніх практик безпеки, якщо OpenAI може викликати операції шифрування та дешифрування у вашому KMS. Коли ви викличете кінцеву точку реєстрації ключа в OpenAI, описану нижче, ми перевіримо ваше налаштування.
Після виконання наведених вище кроків
ChatGPT Enterprise
Зверніться до свого контактного представника OpenAI і надайте таку інформацію:
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
Регіон, у якому розташований головний ключ вашої системи керування ключами
Ми ввімкнемо EKM для вашої організації/робочого простору ChatGPT.
API
Зареєструйте свій зовнішній ключ в OpenAI
Дотримуйтесь інструкцій у цьому довіднику API Зовнішні ключі в Management API
Спочатку зареєструйте свій зовнішній ключ на рівні організації OpenAI, що згенерує ID зовнішнього ключа.
На цьому кроці ми перевіримо ваше налаштування в GCP, переконавшись, що можемо автентифікуватися у вашому KMS.
Це ще не додасть EKM до вашого проєкту OpenAI.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "gcp",
"name": "Конфігурація GCP EKM",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <ідентифікатор вашої організації або проєкту>,
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
}'Потім створіть проєкт OpenAI, пов’язаний із зовнішнім ключем. Після цього EKM буде активовано у вашому проєкті.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Деякий проєкт",
"external_key_id": "extkey_xxxx"
}'