Oversikt
Enterprise Key Management (EKM) lar OpenAI kryptere data ved hjelp av en hovednøkkel som du kontrollerer. Dette dokumentet viser hvordan du setter opp GCP-kontoen din for å gi OpenAI begrensede tillatelser på KMS-et ditt.

Trinn
1. Opprett en federert identitet for OpenAI
OpenAI vil utstede et identitetstoken fra en GCP-konto som eies av OpenAI, som ser omtrent slik ut.
azp og sub er OpenAIs tjenestekonto-ID i GCP
aud er OpenAI-organisasjons-ID-en din. Du kan også velge et annet publikum, for eksempel OpenAI-prosjekt-ID-en din – se instruksjonene nedenfor
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Dette trinnet gjenkjenner påstandene i det identitetstokenet og gjør at GCP STS kan utstede et tilgangstoken når identitetstokenet oppgis.
Gå til IAM & Admin -> Workload Identity Federation og klikk på Create Pool

I trinnet Create an identity pool, skriv inn hva som helst for pool name.
Husk dette til senere – du må registrere det hos OpenAI
I trinnet Add a provider to pool:
I Select a provider velger du OpenID Connect (OIDC)
Skriv inn hva som helst for provider name.
I delen Issuer (URL) skriver du inn https://accounts.google.com
I delen Audiences
Velg Allowed audiences
Skriv inn målgruppen som OpenAI skal angi når vi sender deg et token.
For ChatGPT eller API: Du kan bruke OpenAI API organization ID (org-xxx)
For API: du kan bruke en spesifikk API project id for mer granularitet.

I delen Attribute mapping
for google.subject skriver du inn assertion.sub

I delen Attribute conditions
skriv inn
assertion.sub == "105900137572174660365"
Nå skal du se workload identity pool og workload identity provider oppført på siden https://console.cloud.google.com/iam-admin/workload-identity-pools
Workload identity pool id

Workload identity provider ID

2. Sørg for at KMS er aktivert
Gå til https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview for å aktivere KMS. Du trenger ikke å opprette KMS-et ditt i det samme GCP-prosjektet der du gjenkjente OpenAIs fødererte identitet. Hvis prosjektene er forskjellige, må KMS-produktet imidlertid være aktivert i begge prosjektene.
3. Opprett en ny KMS-nøkkel
Gå til Security -> Data Protection > Key Management
Under fanen Overview klikker du på Create key ring
Velg et valgfritt navn for nøkkelringen din
For Purpose and algorithm velger du Symmetric encrypt/decrypt

Når du har opprettet en nøkkelring, skal den være oppført i fanen Key Rings. Klikk på nøkkelringen.
I detaljene for nøkkelringen klikker du på Create Key
Velg et valgfritt navn for nøkkelen din
4. Opprett en begrenset rolle for krypterings-/dekrypteringsoperasjoner på KMS
Gå til IAM & Admin -> Roles -> Create role
Skriv inn hva som helst for rolletittel og ID
Klikk på Add Permissions, og legg deretter til følgende
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Tildel OpenAIs fødererte identitet til den begrensede KMS-rollen for krypterings-/dekrypteringsoperasjoner
Gå til Security -> Data Protection > Key Management
Klikk på navnet på key ring, og klikk deretter på key name for å komme til siden med nøkkeldetaljer.
Hvis du ikke har dette, går du tilbake til delen Create a KMS
Klikk på fanen Permissions, og klikk deretter på knappen Grant Access

Tildel OpenAIs fødererte identitet til den egendefinerte rollen du opprettet tidligere
I delen Add principals skriver du inn principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
YOUR_GCP_PROJECT_NUMBER her er prosjektet der du gjenkjente OpenAIs fødererte identitet ved å opprette en YOUR_GCP_WORKLOAD_IDENTITY_POOL. Det kan være i det samme prosjektet som KMS-et ditt ligger i, men det er ikke påkrevd.
Hvis prosjektene er forskjellige, må du sørge for at KMS i det minste er aktivert i det andre prosjektet ved å gå til https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview
I delen Assign roles velger du den egendefinerte rollen du opprettet i forrige trinn for begrensede EKM-tillatelser
6. Bruk eventuelle ekstra begrensninger i tråd med egne sikkerhetsrutiner
Ovenfor er minimumsinformasjonen som kreves for at OpenAI skal kunne sette opp EKM. Du står fritt til å bruke ekstra nøkkelpolicyer eller begrensninger i tråd med dine egne interne sikkerhetsrutiner, så lenge OpenAI kan utføre krypterings- og dekrypteringsoperasjoner på KMS-et ditt. Når du kaller endepunktet for nøkkelregistrering hos OpenAI som er beskrevet nedenfor, validerer vi oppsettet ditt.
Etter at du har fullført trinnene ovenfor
ChatGPT Enterprise
Ta kontakt med OpenAI-kontakten din og del følgende:
"workload_identity_project_number": "123456789012",
Det 12-sifrede GCP-prosjektnummeret der du registrerte OpenAIs workload identity
"workload_identity_pool_id": "openai-azure",
Poolen som inneholder Workload Identity-leverandøren du registrerte for OpenAI
"workload_identity_provider_id": "openai-ekm-service-role",
Workload Identity-leverandøren du registrerte for OpenAI
"kms_project_id": "adjective-noun-12345",
Navnet på GCP-prosjektet der KMS-et ditt ligger
"kms_key_name": "openai-kms-key",
Navnet på hovednøkkelen i Key Management System
"kms_key_ring_name": "openai-kms-key-ring",
Key Management System-nøkkelringen som inneholder hovednøkkelen du administrerer
"kms_key_location": "us-east1"
Regionen der hovednøkkelen i Key Management System ligger
Vi vil aktivere EKM for ChatGPT-organisasjonen/arbeidsområdet ditt.
API
Registrer den eksterne nøkkelen din hos OpenAI
Følg instruksjonene i denne API-referansen External Keys in the Management API
Først registrerer du den eksterne nøkkelen din på OpenAI-organisasjonsnivå, noe som vil generere en ekstern nøkkel-ID.
I dette trinnet validerer vi oppsettet ditt på GCP ved å kontrollere at vi kan autentisere oss mot KMS-et ditt.
Dette vil ikke legge til EKM i OpenAI-prosjektet ditt ennå.
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-konfigurasjon",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <din org-ID eller prosjekt-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"
}'Deretter oppretter du et OpenAI-prosjekt som er knyttet til den eksterne nøkkelen. Etter dette aktiveres EKM på prosjektet ditt.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Et prosjekt",
"external_key_id": "extkey_xxxx"
}'