Panoramica
Enterprise Key Management (EKM) consente a OpenAI di crittografare i dati utilizzando una chiave principale controllata da te. Questo documento mostra come configurare il tuo account GCP per concedere a OpenAI autorizzazioni limitate sul tuo KMS.

Passaggi
1. Crea un'identità federata per OpenAI
OpenAI emetterà un token di identità da un account GCP di proprietà di OpenAI, simile al seguente.
Gli azp e sub sono gli ID dell'account di servizio di OpenAI in GCP
L'aud è il tuo ID organizzazione OpenAI. Puoi anche scegliere un altro destinatario, come l'ID progetto OpenAI: consulta le istruzioni riportate di seguito
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Questo passaggio riconosce le attestazioni fornite da quel token di identità e consente al GCP STS di emettere un token di accesso quando quel token di identità viene fornito.
Vai su IAM e Amministrazione -> Federazione delle identità dei carichi di lavoro e fai clic su Crea pool

Nel passaggio Crea un pool di identità, inserisci un nome qualsiasi per il nome del pool.
Ricordalo per dopo: dovrai registrarlo su OpenAI
Nella fase Aggiungi un provider al pool:
In Seleziona un provider, seleziona OpenID Connect (OIDC)
Inserisci qualsiasi valore per il nome del provider.
Nella sezione Emittente (URL), inserisci l'indirizzo https://accounts.google.com
Nella sezione Pubblico
Seleziona Destinatari consentiti
Inserisci il pubblico che OpenAI deve indicare quando ti forniamo un token.
Per ChatGPT o API: puoi inserire l'ID organizzazione API OpenAI (org-xxx)
Per l'API: puoi inserire un ID progetto API specifico per maggiore granularità.

Nella sezione Mappatura degli attributi
per google.subject, inserisci assertion.sub

Nella sezione Condizioni attributi
imposta
assertion.sub == "105900137572174660365"
Ora dovresti vedere il tuo pool di identità del carico di lavoro e il tuo provider di identità del carico di lavoro elencati nella pagina https://console.cloud.google.com/iam-admin/workload-identity-pools
ID del pool di identità del carico di lavoro

ID del provider di identità del carico di lavoro

2. Assicurati che KMS sia abilitato
Vai su https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview per abilitare KMS. Non è necessario creare il KMS nello stesso progetto GCP in cui si è riconosciuta l'identità federata di OpenAI; tuttavia, se i progetti sono diversi, il prodotto KMS deve essere abilitato almeno in entrambi i progetti.
3. Crea una nuova chiave KMS
Vai su Sicurezza -> Protezione dei dati > Gestione delle chiavi
Nella scheda Panoramica, fai clic su Crea keyring
Scegli un nome qualsiasi per il tuo keyring
Per scopo e algoritmo, seleziona Crittografia/decrittografia simmetrica

Una volta creato un keyring, dovrebbe essere elencato nella scheda Keyring. Fai clic sul keyring.
Nei dettagli del keyring, fai clic su Crea chiave
Scegli un nome qualsiasi per la tua chiave
4. Crea un ruolo limitato per le operazioni di crittografia/decrittografia nel KMS
Vai su IAM e Amministrazione -> Ruoli -> Crea ruolo
Inserisci un valore qualsiasi per il titolo del ruolo e l'ID
Fai clic su Aggiungi autorizzazioni, quindi aggiungi i seguenti elementi
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Assegna l'identità federata di OpenAI al ruolo KMS con privilegi limitati per le operazioni di crittografia/decrittografia
Vai su Sicurezza -> Protezione dei dati > Gestione delle chiavi
Fai clic sul nome del tuo keyring, quindi fai clic sul nome della chiave per accedere alla pagina dei dettagli della chiave.
Se non è presente, torna alla sezione Crea un KMS
Fai clic sulla scheda Autorizzazioni, quindi fai clic sul pulsante Concedi accesso

Assegna l'identità federata OpenAI al ruolo personalizzato creato in precedenza
Nella sezione Aggiungi principal, inserisci principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
YOUR_GCP_PROJECT_NUMBER è il progetto in cui hai riconosciuto l'identità federata di OpenAI creando un YOUR_GCP_WORKLOAD_IDENTITY_POOL. Può essere, ma non è obbligatorio, nello stesso progetto dove vive il tuo KMS.
Se i progetti sono diversi, assicurati che KMS sia almeno abilitato nell'altro progetto accedendo a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview
Nella sezione Assegna ruoli, seleziona il ruolo personalizzato creato nel passaggio precedente per autorizzazioni EKM limitate
6. Applica eventuali ulteriori restrizioni in linea con le tue pratiche di sicurezza.
Di seguito trovi le informazioni minime richieste di cui OpenAI ha bisogno per configurare EKM. Puoi applicare ulteriori policy o restrizioni relative alle chiavi in linea con le tue pratiche di sicurezza interne, purché OpenAI sia in grado di chiamare le operazioni di crittografia e decrittografia sul tuo KMS. Quando chiami, con OpenAI, l'endpoint di registrazione della chiave descritto di seguito, verificheremo la tua configurazione.
Dopo aver completato i passaggi sopra indicati
ChatGPT Enterprise
Contatta il tuo referente OpenAI e condividi le seguenti informazioni:
"workload_identity_project_number": "123456789012",
Il numero di progetto GCP a 12 cifre dove hai registrato l'identità del carico di lavoro di OpenAI
"workload_identity_pool_id": "openai-azure",
Il pool contenente il provider di identità del carico di lavoro che hai registrato per OpenAI
"workload_identity_provider_id": "openai-ekm-service-role",
Il provider di identità del carico di lavoro che hai registrato per OpenAI
"kms_project_id": "adjective-noun-12345",
Il nome del progetto GCP in cui si trova il tuo KMS
"kms_key_name": "openai-kms-key",
Il nome della chiave principale del sistema di gestione delle chiavi
"kms_key_ring_name": "openai-kms-key-ring",
Il keyring del sistema di gestione delle chiavi contenente la chiave principale che gestisci
"kms_key_location": "us-east1"
L'area geografica in cui si trova la chiave principale del tuo sistema di gestione delle chiavi
Attiveremo EKM per la tua organizzazione o area di lavoro ChatGPT.
API
Registra la tua chiave esterna con OpenAI
Segui le istruzioni in questa guida API Chiavi esterne nell'API di gestione
Per prima cosa, registra la tua chiave esterna a livello di organizzazione OpenAI, che genererà un ID chiave esterna.
In questo passaggio, convalideremo la configurazione su GCP verificando che sia possibile autenticarsi al KMS.
Questo non aggiungerà ancora EKM al tuo progetto 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_project_number": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <your org id or 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"
}'Quindi, crea un progetto OpenAI associato alla chiave esterna. Dopo questa operazione, EKM viene attivato sul tuo progetto.
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"
}'