OpenAI
Тази страница е машинно преведена. Вижте оригиналната статия на английски език.

Инструкции за интеграция на OpenAI / GCP EKM

Инструкции стъпка по стъпка за настройване на GCP и активиране на EKM

Актуализирано: 8 hours ago

Общ преглед

Enterprise Key Management (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 са идентификаторът на сервизния акаунт на OpenAI в GCP

  • aud е идентификаторът на вашата организация в OpenAI. Можете също да изберете друга audience стойност, например идентификатора на вашия OpenAI проект — вижте инструкциите по-долу

{
  "aud": "org-xxxx",
  "azp": "105900137572174660365",
  "exp": 1747876928,
  "iat": 1747873328,
  "iss": "https://accounts.google.com",
  "sub": "105900137572174660365"
}

Тази стъпка разпознава claims, направени от този токен за идентичност, и позволява на вашия GCP STS да издаде токен за достъп, когато бъде предоставен този токен за идентичност.

  1. Отидете на IAM & Admin -> Workload Identity Federation и щракнете върху Create Pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. В стъпката Create an identity pool, въведете каквото и да е за името на пула.

    1. Запомнете това за по-късно — ще трябва да го регистрирате в OpenAI

  3. В стъпката Add a provider to pool:

    1. В Select a provider изберете OpenID Connect (OIDC)

    2. Въведете каквото и да е за името на доставчика.

    3. В раздела Issuer (URL) въведете https://accounts.google.com

    4. В раздела Audiences

      1. Изберете Allowed audiences

      2. Въведете audience стойността, която OpenAI трябва да посочва, когато ви подаваме токен.

        1. За ChatGPT или API: Можете да въведете идентификатора на организацията в OpenAI API (org-xxx)

        2. За API: можете да въведете конкретен идентификатор на API project за по-голяма детайлност.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. В раздела Attribute mapping

      1. за google.subject въведете assertion.sub

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. В раздела Attribute conditions

      1. въведете assertion.sub == "105900137572174660365"

  4. Сега трябва да виждате своя workload identity pool и workload identity provider изброени на страницата https://console.cloud.google.com/iam-admin/workload-identity-pools

    1. Идентификатор на workload identity pool

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. Идентификатор на workload identity provider

      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. Отидете на Security -> Data Protection > Key Management

  2. Под раздела Overview щракнете върху Create key ring

    1. Изберете произволно име за своя key ring

    2. За Purpose and algorithm изберете Symmetric encrypt/decrypt

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. След като създадете key ring, той трябва да се появи в раздела Key Rings. Щракнете върху key ring.

    4. В детайлите на key ring щракнете върху Create Key

      1. Изберете произволно име за своя ключ

4. Създайте ограничена роля за операции по криптиране/декриптиране в KMS

  1. Отидете на IAM & Admin -> Roles -> Create role

  2. Въведете каквото и да е за заглавието и ID на ролята

  3. Щракнете върху Add Permissions, след което добавете следното

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Присвоете федерираната идентичност на OpenAI към ограничената KMS роля за операции по криптиране/декриптиране

  1. Отидете на Security -> Data Protection > Key Management

  2. Щракнете върху името на своя key ring, след това щракнете върху името на своя ключ, за да отидете на страницата с детайли за ключа.

    1. Ако нямате това, върнете се към раздела Create a KMS

  3. Щракнете върху раздела Permissions, след това щракнете върху бутона Grant Access

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. Присвоете федерираната идентичност на OpenAI към персонализираната роля, която създадохте по-рано

    1. В раздела Add principals въведете principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. YOUR_GCP_PROJECT_NUMBER тук е проектът, в който разпознахте федерираната идентичност на OpenAI, като създадохте YOUR_GCP_WORKLOAD_IDENTITY_POOL. Той може да бъде, но не е задължително да бъде, същият проект, в който се намира вашият KMS.

      2. Ако проектите са различни, уверете се, че KMS е поне активиран и в другия проект, като отидете на https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview

    2. В раздела Assign roles изберете персонализираната роля, която създадохте в предишната стъпка, за ограничени EKM разрешения

6. Приложете всички допълнителни ограничения в съответствие със собствените си практики за сигурност

По-горе е минималната необходима информация, от която OpenAI се нуждае, за да настрои EKM. Можете да приложите допълнителни политики за ключове или ограничения в съответствие със собствените си вътрешни практики за сигурност, стига OpenAI да може да извиква операции за криптиране и декриптиране на вашия KMS. Когато извикате крайната точка за регистриране на ключ в OpenAI, описана по-долу, ние ще валидираме вашата настройка.

След изпълнение на горните стъпки

ChatGPT Enterprise

Моля, свържете се със своя контакт в OpenAI и споделете следното:

  • "workload_identity_project_number": "123456789012",

    • 12-цифреният номер на GCP проекта, в който сте регистрирали workload identity на OpenAI

  • "workload_identity_pool_id": "openai-azure",

    • Пулът, съдържащ Workload Identity доставчика, който сте регистрирали за OpenAI

  • "workload_identity_provider_id": "openai-ekm-service-role",

    • Workload Identity доставчикът, който сте регистрирали за OpenAI

  • "kms_project_id": "adjective-noun-12345",

    • Името на GCP проекта, в който се намира вашият KMS

  • "kms_key_name": "openai-kms-key",

    • Името на главния ключ на Key Management System

  • "kms_key_ring_name": "openai-kms-key-ring",

    • Key Management System key ring, съдържащ главния ключ, който управлявате

  • "kms_key_location": "us-east1"

    • Регионът, в който се намира главният ключ на вашия Key Management System

Ще активираме EKM за вашата ChatGPT организация/работно пространство.

API

Регистрирайте своя външен ключ в OpenAI

Следвайте инструкциите в тази API справка External Keys in the Management API

  • Първо регистрирайте своя външен ключ на ниво организация в OpenAI, което ще генерира идентификатор на външен ключ.

  • В тази стъпка ще валидираме настройката ви в 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": <вашият org id или 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": "Някакъв проект",

   "external_key_id": "extkey_xxxx"

}'

Беше ли Ви полезна тази статия?