OpenAI

Istruzioni per l'integrazione OpenAI / GCP EKM

Istruzioni passo dopo passo per il provisioning di GCP e l'attivazione di EKM

Aggiornato: 13 days ago

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.

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

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.

  1. Vai su IAM e Amministrazione -> Federazione delle identità dei carichi di lavoro e fai clic su Crea pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. Nel passaggio Crea un pool di identità, inserisci un nome qualsiasi per il nome del pool.

    1. Ricordalo per dopo: dovrai registrarlo su OpenAI

  3. Nella fase Aggiungi un provider al pool:

    1. In Seleziona un provider, seleziona OpenID Connect (OIDC)

    2. Inserisci qualsiasi valore per il nome del provider.

    3. Nella sezione Emittente (URL), inserisci l'indirizzo https://accounts.google.com

    4. Nella sezione Pubblico

      1. Seleziona Destinatari consentiti

      2. Inserisci il pubblico che OpenAI deve indicare quando ti forniamo un token.

        1. Per ChatGPT o API: puoi inserire l'ID organizzazione API OpenAI (org-xxx)

        2. Per l'API: puoi inserire un ID progetto API specifico per maggiore granularità.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. Nella sezione Mappatura degli attributi

      1. per google.subject, inserisci assertion.sub

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. Nella sezione Condizioni attributi

      1. imposta assertion.sub == "105900137572174660365"

  4. 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

    1. ID del pool di identità del carico di lavoro

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. ID del provider di identità del carico di lavoro

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

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

  1. Vai su Sicurezza -> Protezione dei dati > Gestione delle chiavi

  2. Nella scheda Panoramica, fai clic su Crea keyring

    1. Scegli un nome qualsiasi per il tuo keyring

    2. Per scopo e algoritmo, seleziona Crittografia/decrittografia simmetrica

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. Una volta creato un keyring, dovrebbe essere elencato nella scheda Keyring. Fai clic sul keyring.

    4. Nei dettagli del keyring, fai clic su Crea chiave

      1. Scegli un nome qualsiasi per la tua chiave

4. Crea un ruolo limitato per le operazioni di crittografia/decrittografia nel KMS

  1. Vai su IAM e Amministrazione -> Ruoli -> Crea ruolo

  2. Inserisci un valore qualsiasi per il titolo del ruolo e l'ID

  3. Fai clic su Aggiungi autorizzazioni, quindi aggiungi i seguenti elementi

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Assegna l'identità federata di OpenAI al ruolo KMS con privilegi limitati per le operazioni di crittografia/decrittografia

  1. Vai su Sicurezza -> Protezione dei dati > Gestione delle chiavi

  2. Fai clic sul nome del tuo keyring, quindi fai clic sul nome della chiave per accedere alla pagina dei dettagli della chiave.

    1. Se non è presente, torna alla sezione Crea un KMS

  3. Fai clic sulla scheda Autorizzazioni, quindi fai clic sul pulsante Concedi accesso

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. Assegna l'identità federata OpenAI al ruolo personalizzato creato in precedenza

    1. Nella sezione Aggiungi principal, inserisci principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. 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.

      2. 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

    2. 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"

}'

Questo articolo è stato utile?