Pregled
Enterprise Key Management (EKM) omogućava OpenAI-ju da šifrira podatke pomoću glavnog ključa kojim vi upravljate. Ovaj dokument pokazuje kako postaviti GCP račun da biste OpenAI-ju dali ograničene dozvole na vašem KMS-u.

Koraci
1. Kreirajte federirani identitet za OpenAI
OpenAI će izdavati token identiteta s GCP računa u vlasništvu OpenAI-ja koji izgleda otprilike ovako.
azp i sub su ID OpenAI-jevog servisnog računa u GCP-u
aud je ID vaše OpenAI organizacije. Možete odabrati i drugu publiku, kao što je ID vašeg OpenAI projekta — pogledajte uputstva u nastavku
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Ovaj korak prepoznaje tvrdnje koje navodi taj token identiteta i omogućava vašem GCP STS-u da izda pristupni token kada se taj token identiteta dostavi.
Idite na IAM & Admin -> Workload Identity Federation i kliknite Create Pool

U koraku Create an identity pool, unesite bilo šta za naziv skupa.
U koraku Add a provider to pool:
U Select a provider odaberite OpenID Connect (OIDC)
Unesite bilo šta za naziv pružatelja.
U odjeljku Issuer (URL) unesite https://accounts.google.com
U odjeljku Audiences
Odaberite Allowed audiences
Unesite publiku koju OpenAI treba navesti kada vam proslijedimo token.
Za ChatGPT ili API: možete unijeti ID OpenAI API organizacije (org-xxx)
Za API: možete unijeti određeni ID API projekta radi veće preciznosti.

U odjeljku Attribute mapping
za google.subject unesite assertion.sub

U odjeljku Attribute conditions
Sada biste trebali vidjeti svoj skup identiteta radnog opterećenja i pružatelja identiteta radnog opterećenja navedene na stranici https://console.cloud.google.com/iam-admin/workload-identity-pools
ID skupa identiteta radnog opterećenja

ID pružatelja identiteta radnog opterećenja

2. Provjerite je li KMS omogućen
Idite na https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview da omogućite KMS. Ne morate kreirati KMS u istom GCP projektu u kojem ste prepoznali OpenAI-jev federirani identitet; međutim, ako se projekti razlikuju, KMS proizvod mora biti barem omogućen u oba projekta.
3. Kreirajte novi KMS ključ
Idite na Security -> Data Protection > Key Management
Na kartici Overview kliknite Create key ring
Odaberite bilo koji naziv za svoj skup ključeva
Za Purpose and algorithm odaberite Symmetric encrypt/decrypt

Nakon što kreirate skup ključeva, trebao bi biti naveden na kartici Key Rings. Kliknite skup ključeva.
U detaljima skupa ključeva kliknite Create Key
Odaberite bilo koji naziv za svoj ključ
4. Kreirajte ograničenu ulogu za operacije šifriranja/dešifriranja na KMS-u
Idite na IAM & Admin -> Roles -> Create role
Unesite bilo šta za naslov uloge i ID
Kliknite Add Permissions, zatim dodajte sljedeće
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Dodijelite OpenAI-jev federirani identitet ograničenoj KMS ulozi za operacije šifriranja/dešifriranja
Idite na Security -> Data Protection > Key Management
Kliknite naziv vašeg skupa ključeva, zatim kliknite naziv ključa da biste otvorili stranicu s detaljima ključa.
Kliknite karticu Permissions, zatim kliknite dugme Grant Access

Dodijelite OpenAI federirani identitet prilagođenoj ulozi koju ste prethodno kreirali
U odjeljku Add principals unesite principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
U odjeljku Assign roles odaberite prilagođenu ulogu koju ste kreirali u prethodnom koraku za ograničene EKM dozvole
6. Primijenite dodatna ograničenja u skladu s vlastitim sigurnosnim praksama
Iznad su navedene minimalno potrebne informacije koje OpenAI treba za postavljanje EKM-a. Možete primijeniti dodatne politike ključeva ili ograničenja u skladu s vlastitim internim sigurnosnim praksama, sve dok OpenAI može pozivati operacije šifriranja i dešifriranja na vašem KMS-u. Kada pozovete krajnju tačku za registraciju ključa s OpenAI-jem opisanu u nastavku, potvrdit ćemo vaše postavljanje.
Nakon dovršetka gore navedenih koraka
ChatGPT Enterprise
Obratite se svom OpenAI kontaktu i podijelite sljedeće:
"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"
Regija u kojoj se nalazi glavni ključ vašeg sistema za upravljanje ključevima
Omogućit ćemo EKM za vašu ChatGPT organizaciju/radni prostor.
API
Registrirajte svoj vanjski ključ kod OpenAI-ja
Slijedite uputstva u ovoj API referenci Vanjski ključevi u Management API-ju
Prvo registrirajte svoj vanjski ključ na nivou OpenAI organizacije, što će generirati ID vanjskog ključa.
U ovom koraku ćemo potvrditi vaše postavljanje na GCP-u provjerom da se možemo autentificirati prema vašem KMS-u.
Ovo još neće dodati EKM u vaš OpenAI projekt.
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 konfiguracija",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <vaš org id ili 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"
}'Zatim kreirajte OpenAI projekt povezan s vanjskim ključem. Nakon toga, EKM je aktiviran na vašem projektu.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Neki projekt",
"external_key_id": "extkey_xxxx"
}'