OpenAI

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

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

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

Обзор

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

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

Инструкции

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 разрешается выдавать токен доступа, когда предоставляется этот токен удостоверения личности.

  1. Перейдите в раздел «IAM и администрирование -> Федеративное удостоверение рабочих нагрузок» и нажмите «Создать пул»

GCP IAM & Admin with Workload Identity Federation selected
  1. На этапе создания пула удостоверений введите любое значение в поле имени пула.

  1. На этапе добавления провайдера в пул:

  1. В поле «Выберите провайдера» выберите OpenID Connect (OIDC)

  2. Введите любое значение для имени провайдера.

  3. В разделе «Издатель (URL)» введите https://accounts.google.com

  4. В разделе «Аудитории»

  1. Выберите «Разрешенные аудитории»

  2. Укажите целевую аудиторию, которую OpenAI должна указывать при передаче вам токена.

  1. Для ChatGPT или API: можно указать ID организации API OpenAI (org-xxx)

  2. Для API: можно указать конкретный ID проекта API для большей детализации.

GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
  1. В разделе «Сопоставление атрибутов»

  1. для google.subject укажите assertion.sub

Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
  1. В разделе «Условия атрибута»

  1. Теперь вы должны увидеть, что ваши пул удостоверений рабочих нагрузок и поставщик удостоверений рабочих нагрузок отображаются на странице https://console.cloud.google.com/iam-admin/workload-identity-pools .

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

GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
  1. ID поставщика удостоверений для рабочей нагрузки

GCP Workload Identity Provider edit page with the provider ID field highlighted

2 Убедитесь, что KMS включена

Перейдите по адресу https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview, чтобы включить KMS. Вы не обязаны создавать KMS в том же проекте GCP, в котором вы подтвердили федеративное удостоверение OpenAI; однако, если проекты различаются, продукт KMS должен быть как минимум включен в обоих проектах.

3. Создайте новый ключ KMS

  1. Перейдите в раздел «Безопасность -> Защита данных > Управление ключами»

  2. На вкладке «Обзор» нажмите «Создать связку ключей»

  1. Выберите любое название для своего набора ключей

  2. Для параметра «Назначение и алгоритм» укажите «Симметричное шифрование/дешифрование»

GCP Key Management Overview page with the Create Key Ring button highlighted
  1. Созданная связка ключей должна отобразиться на вкладке «Связки ключей». Нажмите на связку ключей.

  2. В сведениях о связке ключей нажмите «Создать ключ»

  1. Выберите любое имя для своего ключа

4. Создайте ограниченную роль для операций шифрования/дешифрования в KMS

  1. Перейдите в раздел «IAM и администрирование» → «Роли» → «Создать роль»

  2. Введите любое значение для названия роли и ID

  3. Нажмите «Добавить разрешения», затем добавьте следующее

  1. cloudkms.cryptoKeyVersions.useToDecrypt

  2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Назначьте федеративное удостоверение OpenAI на ограниченную роль KMS для операций шифрования/дешифрования

  1. Перейдите в раздел «Безопасность -> Защита данных > Управление ключами»

  2. Нажмите на имя своей связки ключей, затем нажмите на имя ключа, чтобы перейти на страницу сведений о ключе.

  1. Перейдите на вкладку «Разрешения», затем нажмите «Предоставить доступ»

Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  1. Назначьте федеративное удостоверение OpenAI на пользовательскую роль, которую вы ранее создали

  1. В разделе «Добавить субъекты» введите principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

  1. В разделе «Назначение ролей» выберите пользовательскую роль, которую вы создали на предыдущем шаге, для ограниченных разрешений 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 «Внешние ключи в 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 Config",
   "workload_identity_project_number": "123456789012",
   "workload_identity_pool_id": "openai-azure",
   "workload_identity_provider_id": "openai-ekm-service-role",
   "audience": <your org id or project id>,
   "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": "Some Project",

   "external_key_id": "extkey_xxxx"

}'

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