Prezentare generală
Enterprise Key Management (EKM) permite OpenAI să cripteze datele folosind o cheie principală pe care o controlați. Acest document arată cum să configurați contul GCP pentru a acorda OpenAI permisiuni limitate în KMS-ul dvs.

Pași
1. Creați o identitate federată pentru OpenAI
OpenAI va emite un token de identitate dintr-un cont GCP deținut de OpenAI, care arată aproximativ astfel.
azp și sub reprezintă ID-ul contului de serviciu OpenAI în GCP
aud este ID-ul organizației dvs. OpenAI. Puteți alege și o altă audiență, cum ar fi ID-ul proiectului dvs. OpenAI; consultați instrucțiunile de mai jos
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Acest pas recunoaște declarațiile făcute de acel token de identitate și permite GCP STS să emită un token de acces atunci când este furnizat acel token de identitate.
Accesați IAM & Admin -> Federația identității sarcinilor de lucru și faceți clic pe Creați pool

La pasul Creați un pool de identități, introduceți orice pentru numele poolului.
La pasul Adăugați un furnizor în pool:
În Selectați un furnizor, selectați OpenID Connect (OIDC)
Introduceți orice pentru numele furnizorului.
În secțiunea Emitent (URL), introduceți https://accounts.google.com
În secțiunea Audiențe
Selectați Audiențe permise
Introduceți audiența pe care OpenAI ar trebui să o indice atunci când vă transmitem un token.
Pentru ChatGPT sau API: puteți introduce ID-ul organizației OpenAI API (org-xxx)
Pentru API: puteți introduce un anumit ID de proiect API pentru mai multă granularitate.

În secțiunea Maparea atributelor
pentru google.subject, introduceți assertion.sub

În secțiunea Condiții pentru atribute
Acum ar trebui să vedeți poolul de identități de workload și furnizorul de identitate de workload listate în pagina https://console.cloud.google.com/iam-admin/workload-identity-pools
ID pool de identități de workload

ID furnizor de identitate de workload

2. Asigurați-vă că KMS este activat
Accesați https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview pentru a activa KMS. Nu este obligatoriu să creați KMS-ul în același proiect GCP în care ați recunoscut identitatea federată OpenAI; totuși, dacă proiectele diferă, produsul KMS trebuie cel puțin să fie activat în ambele proiecte.
3. Creați o cheie KMS nouă
Accesați Securitate -> Protecția datelor > Gestionarea cheilor
În fila Prezentare generală, faceți clic pe Creați inel de chei
Alegeți orice nume pentru inelul de chei
Pentru Scop și algoritm, selectați Criptare/decriptare simetrică

După ce ați creat un inel de chei, acesta ar trebui să fie listat în fila Inele de chei. Faceți clic pe inelul de chei.
În detaliile inelului de chei, faceți clic pe Creați cheie
Alegeți orice nume pentru cheia dvs.
4. Creați un rol limitat pentru operațiuni de criptare/decriptare în KMS
Accesați IAM & Admin -> Roluri -> Creați rol
Introduceți orice pentru titlul rolului și ID
Faceți clic pe Adăugați permisiuni, apoi adăugați următoarele
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Atribuiți identitatea federată OpenAI rolului KMS limitat pentru operațiuni de criptare/decriptare
Accesați Securitate -> Protecția datelor > Gestionarea cheilor
Faceți clic pe numele inelului de chei, apoi pe numele cheii pentru a ajunge la pagina cu detaliile cheii.
Faceți clic pe fila Permisiuni, apoi pe butonul Acordați acces

Atribuiți identitatea federată OpenAI rolului personalizat pe care l-ați creat anterior
Pentru secțiunea Adăugați principali, introduceți principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
În secțiunea Atribuiți roluri, selectați rolul personalizat creat la pasul anterior pentru permisiuni EKM limitate
6. Aplicați orice restricții suplimentare în conformitate cu propriile practici de securitate
Cele de mai sus sunt informațiile minime necesare de care OpenAI are nevoie pentru a configura EKM. Puteți aplica politici sau restricții suplimentare pentru chei, în conformitate cu propriile practici interne de securitate, atât timp cât OpenAI poate apela operațiunile de criptare și decriptare în KMS-ul dvs. Când apelați punctul final de înregistrare a cheii la OpenAI, descris mai jos, vă vom valida configurarea.
După finalizarea pașilor de mai sus
ChatGPT Enterprise
Contactați persoana dvs. de contact de la OpenAI și partajați următoarele:
"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"
Regiunea în care se află cheia principală a sistemului dvs. de gestionare a cheilor
Vom activa EKM pentru organizația/spațiul de lucru ChatGPT.
API
Înregistrați cheia externă la OpenAI
Urmați instrucțiunile din această referință API Chei externe în API-ul de management
Mai întâi, înregistrați cheia externă la nivelul organizației OpenAI, ceea ce va genera un ID de cheie externă.
În acest pas, vă vom valida configurarea pe GCP verificând că ne putem autentifica la KMS-ul dvs.
Acest lucru nu va adăuga încă EKM la proiectul dvs. 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": <ID-ul organizației sau ID-ul proiectului dvs.>,
"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"
}'Apoi, creați un proiect OpenAI asociat cu cheia externă. După aceasta, EKM este activat pentru proiectul dvs.
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"
}'