Omówienie
Enterprise Key Management (EKM) umożliwia OpenAI szyfrowanie danych za pomocą klucza głównego, który kontrolujesz. Ten dokument pokazuje, jak skonfigurować konto GCP, aby nadać OpenAI ograniczone uprawnienia do Twojego KMS.

Kroki
1. Utwórz federacyjną tożsamość dla OpenAI
OpenAI będzie wystawiać token tożsamości z konta GCP należącego do OpenAI, który wygląda mniej więcej tak.
azp i sub to identyfikator konta usługi OpenAI w GCP
aud to identyfikator Twojej organizacji OpenAI. Możesz też wybrać inną grupę odbiorców, na przykład identyfikator projektu OpenAI — zobacz instrukcje poniżej
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Ten krok rozpoznaje deklaracje przekazywane przez ten token tożsamości i umożliwia Twojemu GCP STS wystawienie tokenu dostępu po dostarczeniu tego tokenu tożsamości.
Przejdź do IAM & Admin -> Workload Identity Federation i kliknij Create Pool

W kroku Create an identity pool, wpisz dowolną wartość w polu pool name.
W kroku Add a provider to pool:
W polu Select a provider wybierz OpenID Connect (OIDC)
Wpisz dowolną wartość w polu provider name.
W sekcji Issuer (URL) wpisz https://accounts.google.com
W sekcji Audiences
Wybierz Allowed audiences
Wpisz odbiorcę, którego OpenAI powinno wskazać, gdy przekażemy Ci token.
Dla ChatGPT lub API: możesz podać identyfikator organizacji OpenAI API (org-xxx)
Dla API: możesz podać konkretny identyfikator projektu API, aby uzyskać większą szczegółowość.

W sekcji Attribute mapping
dla google.subject wpisz assertion.sub

W sekcji Attribute conditions
Teraz na stronie https://console.cloud.google.com/iam-admin/workload-identity-pools powinny być widoczne Twoje workload identity pool i workload identity provider
Identyfikator puli tożsamości obciążenia

Identyfikator dostawcy tożsamości obciążenia

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 federacyjną tożsamość OpenAI; jeśli jednak projekty się różnią, usługa KMS musi być co najmniej włączona w obu projektach.
3. Utwórz nowy klucz KMS
Przejdź do Security -> Data Protection > Key Management
Na karcie Overview kliknij Create key ring
Wybierz dowolną nazwę dla swojego pęku kluczy
Dla opcji Purpose i algorithm wybierz Symmetric encrypt/decrypt

Po utworzeniu pęku kluczy powinien on być widoczny na karcie Key Rings. Kliknij pęk kluczy.
W szczegółach pęku kluczy kliknij Create Key
Wybierz dowolną nazwę dla swojego klucza
4. Utwórz ograniczoną rolę do operacji szyfrowania/odszyfrowywania w KMS
Przejdź do IAM & Admin -> Roles -> Create role
Wpisz dowolną nazwę roli i identyfikator
Kliknij Add Permissions, a następnie dodaj następujące uprawnienia
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Przypisz federacyjną tożsamość OpenAI do ograniczonej roli KMS na potrzeby operacji szyfrowania/odszyfrowywania
Przejdź do Security -> Data Protection > Key Management
Kliknij nazwę swojego pęku kluczy, a następnie kliknij nazwę klucza, aby przejść do strony szczegółów klucza.
Kliknij kartę Permissions, a następnie przycisk Grant Access

Przypisz federacyjną tożsamość OpenAI do utworzonej wcześniej roli niestandardowej
W sekcji Add principals wpisz principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
W sekcji Assign roles wybierz rolę niestandardową utworzoną w poprzednim kroku dla ograniczonych uprawnień EKM
6. Zastosuj wszelkie dodatkowe ograniczenia zgodne z własnymi praktykami bezpieczeństwa
Powyżej podano minimalne wymagane informacje, których OpenAI potrzebuje do skonfigurowania EKM. Możesz zastosować dodatkowe zasady kluczy lub ograniczenia zgodnie z własnymi wewnętrznymi praktykami bezpieczeństwa, o ile OpenAI może wywoływać operacje szyfrowania i odszyfrowywania 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 swoim przedstawicielem OpenAI i udostępnij następujące informacje:
"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"
Region, w którym znajduje się klucz główny Twojego systemu zarządzania kluczami
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: Klucze zewnętrzne w 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.
Nie spowoduje to jeszcze dodania 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 EKM zostanie aktywowane 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"
}'