OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Instrukcje integracji OpenAI / GCP EKM

Instrukcje krok po kroku dotyczące konfigurowania GCP i aktywacji EKM

Zaktualizowano: 13 days ago

Omówienie

Enterprise Key Management (EKM) umożliwia OpenAI szyfrowanie danych przy użyciu klucza głównego, który kontrolujesz. Ten dokument pokazuje, jak skonfigurować konto GCP, aby przyznać OpenAI ograniczone uprawnienia do Twojego KMS.

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

Kroki

1. Utwórz tożsamość federacyjną dla OpenAI

OpenAI będzie wystawiać token tożsamości z należącego do OpenAI konta GCP, który będzie wyglądać mniej więcej tak.

  • Pola azp i sub to identyfikator konta usługi OpenAI w GCP

  • Pole aud to identyfikator organizacji OpenAI. Możesz też wybrać inne grono odbiorców, na przykład identyfikator projektu OpenAI — zobacz poniższe instrukcje

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

Ten krok rozpoznaje oświadczenia zawarte w tym tokenie tożsamości i umożliwia GCP STS wystawienie tokena dostępu po dostarczeniu tego tokena tożsamości.

  1. Przejdź do IAM & Admin -> Workload Identity Federation i kliknij Create Pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. W kroku Create an identity pool wpisz dowolną wartość w polu pool name.

    1. Zapamiętaj to na później — będzie trzeba zarejestrować to w OpenAI

  3. W kroku Add a provider to pool:

    1. W sekcji Select a provider wybierz OpenID Connect (OIDC)

    2. Wpisz dowolną wartość w polu provider name.

    3. W sekcji Issuer (URL) wpisz https://accounts.google.com

    4. W sekcji Audiences

      1. Wybierz Allowed audiences

      2. Wpisz odbiorcę, którego OpenAI ma wskazywać, gdy przekażemy Ci token.

        1. Dla ChatGPT lub API: możesz podać identyfikator organizacji OpenAI API (org-xxx)

        2. Dla API: możesz podać konkretny identyfikator projektu API, aby uzyskać większą szczegółowość.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. W sekcji Attribute mapping

      1. dla google.subject wpisz assertion.sub

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. W sekcji Attribute conditions

      1. wpisz assertion.sub == "105900137572174660365"

  4. Teraz na stronie https://console.cloud.google.com/iam-admin/workload-identity-pools powinny być widoczne Twoje workload identity pool i workload identity provider

    1. Workload identity pool id

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. Workload identity provider ID

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

2. Upewnij się, że KMS jest włączony

Przejdź do https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview, aby włączyć KMS. Nie musisz tworzyć KMS w tym samym projekcie GCP, w którym rozpoznano tożsamość federacyjną OpenAI; jeśli jednak projekty są różne, usługa KMS musi być przynajmniej włączona w obu projektach.

3. Utwórz nowy klucz KMS

  1. Przejdź do Security -> Data Protection > Key Management

  2. Na karcie Overview kliknij Create key ring

    1. Wybierz dowolną nazwę dla key ring

    2. W sekcji Purpose and algorithm wybierz Symmetric encrypt/decrypt

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. Po utworzeniu key ring powinien on być widoczny na karcie Key Rings. Kliknij key ring.

    4. W szczegółach key ring kliknij Create Key

      1. Wybierz dowolną nazwę dla klucza

4. Utwórz ograniczoną rolę do operacji szyfrowania/deszyfrowania w KMS

  1. Przejdź do IAM & Admin -> Roles -> Create role

  2. Wpisz dowolną wartość dla tytułu i identyfikatora roli

  3. Kliknij Add Permissions, a następnie dodaj następujące uprawnienia

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Przypisz tożsamość federacyjną OpenAI do ograniczonej roli KMS na potrzeby operacji szyfrowania/deszyfrowania

  1. Przejdź do Security -> Data Protection > Key Management

  2. Kliknij nazwę swojego key ring, a następnie nazwę swojego key name, aby przejść do strony szczegółów klucza.

    1. Jeśli tego nie masz, wróć do sekcji Utwórz KMS

  3. Kliknij kartę Permissions, a następnie przycisk Grant Access

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. Przypisz tożsamość federacyjną OpenAI do niestandardowej roli utworzonej wcześniej

    1. W sekcji Add principals wpisz principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. YOUR_GCP_PROJECT_NUMBER to projekt, w którym rozpoznano tożsamość federacyjną OpenAI przez utworzenie YOUR_GCP_WORKLOAD_IDENTITY_POOL. Może to być ten sam projekt, w którym znajduje się Twój KMS, ale nie jest to wymagane.

      2. Jeśli projekty są różne, upewnij się, że KMS jest przynajmniej włączony w drugim projekcie, przechodząc do https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview

    2. W sekcji Assign roles wybierz niestandardową rolę utworzoną w poprzednim kroku dla ograniczonych uprawnień EKM

6. Zastosuj wszelkie dodatkowe ograniczenia zgodnie z własnymi praktykami bezpieczeństwa

Powyżej podano minimalny wymagany zakres informacji, którego OpenAI potrzebuje do skonfigurowania EKM. Możesz zastosować dodatkowe zasady dotyczące kluczy lub ograniczenia zgodne z własnymi wewnętrznymi praktykami bezpieczeństwa, o ile OpenAI będzie w stanie wywoływać operacje szyfrowania i deszyfrowania w Twoim KMS. Gdy wywołasz opisany poniżej punkt końcowy rejestracji klucza w OpenAI, zweryfikujemy Twoją konfigurację.

Po wykonaniu powyższych kroków

ChatGPT Enterprise

Skontaktuj się ze swoją osobą kontaktową w OpenAI i udostępnij następujące informacje:

  • "workload_identity_project_number": "123456789012",

    • 12-cyfrowy numer projektu GCP, w którym zarejestrowano workload identity OpenAI

  • "workload_identity_pool_id": "openai-azure",

    • Pula zawierająca dostawcę Workload Identity zarejestrowanego dla OpenAI

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

    • Dostawca Workload Identity zarejestrowany dla OpenAI

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

    • Nazwa projektu GCP, w którym znajduje się Twój KMS

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

    • Nazwa klucza głównego Key Management System

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

    • Key ring w Key Management System zawierający zarządzany przez Ciebie klucz główny

  • "kms_key_location": "us-east1"

    • Region, w którym znajduje się klucz główny Key Management System

Włączymy EKM dla Twojej organizacji/przestrzeni roboczej ChatGPT.

API

Zarejestruj swój klucz zewnętrzny w OpenAI

Postępuj zgodnie z instrukcjami w tej dokumentacji API: External Keys in the Management API

  • Najpierw zarejestruj swój klucz zewnętrzny na poziomie organizacji OpenAI, co spowoduje wygenerowanie identyfikatora klucza zewnętrznego.

  • W tym kroku zweryfikujemy Twoją konfigurację w GCP, sprawdzając, czy możemy uwierzytelnić się w Twoim KMS.

  • To jeszcze nie doda EKM do Twojego projektu 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": <identyfikator Twojej organizacji lub projektu>,
   "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"
}'

Następnie utwórz projekt OpenAI powiązany z kluczem zewnętrznym. Po tym kroku EKM zostanie aktywowany w Twoim projekcie.

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"

}'

Czy ten artykuł był pomocny?