Overzicht
Met Enterprise Key Management (EKM) kan OpenAI gegevens versleutelen met een hoofdsleutel die jij beheert. Dit document laat zien hoe je je GCP-account instelt om OpenAI beperkte machtigingen te geven voor je KMS.

Stappen
1. Maak een gefedereerde identiteit voor OpenAI
OpenAI geeft een identiteitstoken uit vanuit een GCP-account dat eigendom is van OpenAI en er ongeveer zo uitziet.
De azp en sub zijn de serviceaccount-ID van OpenAI in GCP
De aud is je OpenAI-organisatie-ID. Je kunt ook een andere audience kiezen, zoals je OpenAI-project-ID; zie de instructies hieronder
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Deze stap herkent de claims die door dat identiteitstoken worden gedaan en stelt je GCP STS in staat een toegangstoken uit te geven wanneer dat identiteitstoken wordt verstrekt.
Ga naar IAM & Beheer -> Workload Identity Federation en klik op Pool maken

Voer in de stap Een identiteitspool maken iets willekeurigs in voor de poolnaam.
In de stap Een provider aan pool toevoegen:
Selecteer bij Selecteer een provider OpenID Connect (OIDC)
Voer een willekeurige providernaam in.
Voer in het gedeelte Uitgever (URL) https://accounts.google.com in
In het gedeelte Audiences
Selecteer Toegestane audiences
Voer de audience in die OpenAI moet aangeven wanneer we je een token doorgeven.
Voor ChatGPT of API: je kunt de OpenAI API-organisatie-ID (org-xxx) invullen
Voor API: je kunt een specifieke API-project-ID invullen voor meer granulariteit.

In het gedeelte Attribuuttoewijzing
voer voor google.subject assertion.sub in

In het gedeelte Attribuutvoorwaarden
Je zou nu je workload identity-pool en workload identity-provider moeten zien staan op de pagina https://console.cloud.google.com/iam-admin/workload-identity-pools
Workload identity-pool-ID

Workload identity-provider-ID

2. Zorg dat KMS is ingeschakeld
Ga naar https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview om KMS in te schakelen. Je hoeft je KMS niet te maken in hetzelfde GCP-project waar je de gefedereerde identiteit van OpenAI hebt erkend; als de projecten echter verschillen, moet het KMS-product ten minste in beide projecten ingeschakeld zijn.
3. Maak een nieuwe KMS-sleutel
Ga naar Beveiliging -> Gegevensbescherming > Sleutelbeheer
Klik op het tabblad Overzicht op Sleutelring maken
Kies een willekeurige naam voor je sleutelring
Selecteer voor Doel en algoritme Symmetrisch versleutelen/ontsleutelen

Zodra je een sleutelring hebt gemaakt, moet deze worden weergegeven op het tabblad Sleutelringen. Klik op de sleutelring.
Klik in de details van de sleutelring op Sleutel maken
Kies een willekeurige naam voor je sleutel
4. Maak een beperkte rol voor versleutel-/ontsleutelbewerkingen op de KMS
Ga naar IAM & Beheer -> Rollen -> Rol maken
Voer een willekeurige roltitel en ID in
Klik op Machtigingen toevoegen en voeg vervolgens het volgende toe
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Wijs de gefedereerde identiteit van OpenAI toe aan de beperkte KMS-rol voor versleutel-/ontsleutelbewerkingen
Ga naar Beveiliging -> Gegevensbescherming > Sleutelbeheer
Klik op de naam van je sleutelring en klik vervolgens op de naam van je sleutel om naar de detailpagina van je sleutel te gaan.
Klik op het tabblad Machtigingen en klik vervolgens op de knop Toegang verlenen

Wijs de gefedereerde identiteit van OpenAI toe aan de aangepaste rol die je eerder hebt gemaakt
Voer in het gedeelte Principals toevoegen principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365 in
Selecteer in het gedeelte Rollen toewijzen de aangepaste rol die je in de vorige stap hebt gemaakt voor beperkte EKM-machtigingen
6. Pas eventuele aanvullende beperkingen toe in lijn met je eigen beveiligingspraktijken
Hierboven staat de minimaal vereiste informatie die OpenAI nodig heeft om EKM in te stellen. Je bent vrij om aanvullende sleutelbeleidsregels of beperkingen toe te passen in lijn met je eigen interne beveiligingspraktijken, zolang OpenAI versleutel- en ontsleutelbewerkingen op je KMS kan aanroepen. Wanneer je het hieronder beschreven endpoint voor sleutelregistratie bij OpenAI aanroept, valideren we je configuratie.
Na het voltooien van de bovenstaande stappen
ChatGPT Enterprise
Neem contact op met je OpenAI-contactpersoon en deel het volgende:
"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"
De regio waar de hoofdsleutel van je Key Management System zich bevindt
We schakelen EKM in voor je ChatGPT-organisatie/werkruimte.
API
Registreer je externe sleutel bij OpenAI
Volg de instructies in deze API-referentie Externe sleutels in de Management API
Registreer eerst je externe sleutel op OpenAI-organisatieniveau, waardoor een externe sleutel-ID wordt gegenereerd.
In deze stap valideren we je configuratie op GCP door te controleren of we ons bij je KMS kunnen authenticeren.
Hiermee wordt EKM nog niet aan je OpenAI-project toegevoegd.
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-configuratie",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <uw org-id of 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"
}'Maak vervolgens een OpenAI-project dat aan de externe sleutel is gekoppeld. Hierna is EKM geactiveerd voor je project.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Een project",
"external_key_id": "extkey_xxxx"
}'