Áttekintés
Az Enterprise Key Management (EKM) lehetővé teszi, hogy az OpenAI egy általad kezelt főkulccsal titkosítsa az adatokat. Ez a dokumentum bemutatja, hogyan állítsd be a GCP-fiókodat úgy, hogy az OpenAI korlátozott jogosultságokat kapjon a KMS-edhez.

Lépések
1. Hozz létre egy federált identitást az OpenAI számára
Az OpenAI egy OpenAI tulajdonában lévő GCP-fiókból fog kiállítani egy identitástokent, amely nagyjából így néz ki.
Az azp és a sub az OpenAI szolgáltatásfiók-azonosítója a GCP-ben
Az aud a te OpenAI-szervezetazonosítód. Más közönséget is megadhatsz, például az OpenAI-projektazonosítódat – lásd az alábbi utasításokat
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Ez a lépés felismeri az identitástoken által tett állításokat, és lehetővé teszi, hogy a GCP STS hozzáférési tokent bocsásson ki, amikor ezt az identitástokent megadják.
Lépj az IAM & Admin -> Workload Identity Federation menübe, majd kattints a Create Pool
lehetőségre
A Create an identity pool lépésben adj meg bármit a pool name mezőben.
Ezt jegyezd meg későbbre – regisztrálnod kell majd az OpenAI-nál
A Add a provider to pool lépésben:
A Select a provider résznél válaszd az OpenID Connect (OIDC) lehetőséget
Adj meg bármit a provider name mezőben.
A Issuer (URL) részben add meg ezt: https://accounts.google.com
Az Audiences részben
Válaszd az Allowed audiences lehetőséget
Add meg azt az audience értéket, amelyet az OpenAI-nak jeleznie kell, amikor tokent adunk át neked.
ChatGPT vagy API esetén: megadhatod az OpenAI API organization ID-t (org-xxx)
API esetén: a részletesebb szabályozhatóság érdekében megadhatsz egy konkrét API project id-t.

Az Attribute mapping részben
a google.subject mezőhöz add meg ezt: assertion.sub

Az Attribute conditions részben
add meg ezt:
assertion.sub == "105900137572174660365"
Ekkor a https://console.cloud.google.com/iam-admin/workload-identity-pools oldalon már látnod kell a workload identity pool és a workload identity provider elemeidet
Workload identity pool id

Workload identity provider ID

2. Győződj meg róla, hogy a KMS engedélyezve van
Lépj a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview oldalra a KMS engedélyezéséhez. Nem kötelező ugyanabban a GCP-projektben létrehoznod a KMS-edet, ahol felismerted az OpenAI federált identitását; ha azonban a projektek eltérnek, akkor a KMS terméknek legalább mindkét projektben engedélyezve kell lennie.
3. Hozz létre egy új KMS-kulcsot
Lépj a Security -> Data Protection > Key Management menübe
Az Overview fülön kattints a Create key ring lehetőségre
Válassz tetszőleges nevet a kulcsgyűrűnek
A Purpose és algorithm résznél válaszd a Symmetric encrypt/decrypt
lehetőséget
Miután létrehoztál egy kulcsgyűrűt, annak meg kell jelennie a Key Rings fülön. Kattints a kulcsgyűrűre.
A kulcsgyűrű részleteinél kattints a Create Key lehetőségre
Válassz tetszőleges nevet a kulcsodnak
4. Hozz létre egy korlátozott szerepkört a KMS-en végzett titkosítási/visszafejtési műveletekhez
Lépj az IAM & Admin -> Roles -> Create role menübe
Adj meg bármit a szerepkör címéhez és azonosítójához
Kattints az Add Permissions lehetőségre, majd add hozzá a következőket
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Rendeld hozzá az OpenAI federált identitását a korlátozott KMS-szerepkörhöz a titkosítási/visszafejtési műveletekhez
Lépj a Security -> Data Protection > Key Management menübe
Kattints a key ring nevére, majd a key name elemre, hogy eljuss a kulcs részleteit tartalmazó oldalra.
Ha ez nincs meg, menj vissza a Create a KMS szakaszhoz
Kattints a Permissions fülre, majd a Grant Access
gombra
Rendeld hozzá az OpenAI federált identitását az előzőleg létrehozott egyéni szerepkörhöz
Az Add principals részben add meg ezt: principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
A YOUR_GCP_PROJECT_NUMBER itt az a projekt, amelyben felismerted az OpenAI federált identitását egy YOUR_GCP_WORKLOAD_IDENTITY_POOL létrehozásával. Lehet ugyanaz a projekt, amelyben a KMS-ed található, de nem kötelező annak lennie.
Ha a projektek eltérnek, győződj meg róla, hogy a KMS legalább engedélyezve van a másik projektben is, ehhez lépj a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview oldalra
Az Assign roles részben válaszd ki az előző lépésben létrehozott egyéni szerepkört a korlátozott EKM-jogosultságokhoz
6. Alkalmazz minden további korlátozást a saját biztonsági gyakorlataidnak megfelelően
A fentiek az OpenAI számára szükséges minimális információk az EKM beállításához. Szabadon alkalmazhatsz további kulcsszabályzatokat vagy korlátozásokat a saját belső biztonsági gyakorlataid szerint, amennyiben az OpenAI képes meghívni a titkosítási és visszafejtési műveleteket a KMS-eden. Amikor meghívod az OpenAI-nál az alább ismertetett kulcsregisztrációs végpontot, ellenőrizni fogjuk a beállításodat.
A fenti lépések elvégzése után
ChatGPT Enterprise
Kérjük, vedd fel a kapcsolatot az OpenAI-kapcsolattartóddal, és oszd meg a következőket:
"workload_identity_project_number": "123456789012",
Az a 12 számjegyű GCP-projektszám, ahol regisztráltad az OpenAI workload identityját
"workload_identity_pool_id": "openai-azure",
Az a pool, amely az OpenAI számára regisztrált Workload Identity providert tartalmazza
"workload_identity_provider_id": "openai-ekm-service-role",
Az OpenAI számára regisztrált Workload Identity provider
"kms_project_id": "adjective-noun-12345",
Annak a GCP-projektnek a neve, ahol a KMS-ed található
"kms_key_name": "openai-kms-key",
A Key Management System főkulcsának neve
"kms_key_ring_name": "openai-kms-key-ring",
Az a Key Management System kulcsgyűrű, amely az általad kezelt főkulcsot tartalmazza
"kms_key_location": "us-east1"
Az a régió, ahol a Key Management System főkulcsa található
Engedélyezzük az EKM-et a ChatGPT-szervezetedhez/munkaterületedhez.
API
Regisztráld a külső kulcsodat az OpenAI-nál
Kövesd az ebben az API-referenciában található utasításokat: External Keys in the Management API
Először regisztráld a külső kulcsodat az OpenAI-szervezet szintjén, ami létrehoz egy external key id-t.
Ebben a lépésben a GCP-n végzett beállításodat úgy ellenőrizzük, hogy megvizsgáljuk, tudunk-e hitelesíteni a KMS-edhez.
Ez még nem adja hozzá az EKM-et az OpenAI-projektedhez.
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": <az orgazonosítód vagy projektazonosítód>,
"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"
}'Ezután hozz létre egy, a külső kulcshoz társított OpenAI-projektet. Ezt követően az EKM aktiválódik a projekteden.
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"
}'