Přehled
Enterprise Key Management (EKM) umožňuje OpenAI šifrovat data pomocí hlavního klíče, který ovládáte vy. Tento dokument ukazuje, jak nastavit účet GCP tak, aby OpenAI získala omezená oprávnění k vašemu KMS.

Kroky
1. Vytvořte federovanou identitu pro OpenAI
OpenAI bude vydávat token identity z účtu GCP vlastněného OpenAI, který vypadá přibližně takto.
Hodnoty azp a sub jsou ID servisního účtu OpenAI v GCP
Hodnota aud je ID vaší organizace OpenAI. Můžete také zvolit jiné publikum, například ID svého projektu OpenAI – viz pokyny níže
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Tento krok rozpozná deklarace provedené tímto tokenem identity a umožní vaší službě GCP STS vydat přístupový token, když je tento token identity poskytnut.
Přejděte na IAM & Admin -> Workload Identity Federation a klikněte na Create Pool

V kroku Create an identity pool, zadejte cokoli jako název fondu.
V kroku Add a provider to pool:
V části Select a provider vyberte OpenID Connect (OIDC)
Zadejte cokoli jako název poskytovatele.
V části Issuer (URL) zadejte https://accounts.google.com
V části Audiences
Vyberte Allowed audiences
Zadejte publikum, které má OpenAI uvádět, když vám předáme token.
Pro ChatGPT nebo API: Můžete zadat ID organizace OpenAI API (org-xxx)
Pro API: pro větší granularitu můžete zadat konkrétní ID projektu API.

V části Attribute mapping
pro google.subject zadejte assertion.sub

V části Attribute conditions
Nyní byste měli na stránce https://console.cloud.google.com/iam-admin/workload-identity-pools vidět uvedené svůj fond identit pracovních zátěží a poskytovatele identit pracovních zátěží
ID fondu identit pracovních zátěží

ID poskytovatele identit pracovních zátěží

2. Ujistěte se, že je KMS povolené
KMS povolíte tak, že přejdete na https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview. KMS nemusíte vytvářet ve stejném projektu GCP, ve kterém jste rozpoznali federovanou identitu OpenAI; pokud se však projekty liší, produkt KMS musí být alespoň povolený v obou projektech.
3. Vytvořte nový klíč KMS
Přejděte na Security -> Data Protection > Key Management
Na kartě Overview klikněte na Create key ring
Zvolte libovolný název pro svůj svazek klíčů
U položek Purpose a algorithm vyberte Symmetric encrypt/decrypt

Po vytvoření svazku klíčů by se měl zobrazit na kartě Key Rings. Klikněte na svazek klíčů.
V podrobnostech svazku klíčů klikněte na Create Key
Zvolte libovolný název pro svůj klíč
4. Vytvořte omezenou roli pro operace šifrování/dešifrování v KMS
Přejděte na IAM & Admin -> Roles -> Create role
Jako název a ID role zadejte cokoli
Klikněte na Add Permissions a potom přidejte následující
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Přiřaďte federovanou identitu OpenAI k omezené roli KMS pro operace šifrování/dešifrování
Přejděte na Security -> Data Protection > Key Management
Klikněte na název svého svazku klíčů a potom na název klíče, abyste se dostali na stránku s podrobnostmi klíče.
Klikněte na kartu Permissions a potom na tlačítko Grant Access

Přiřaďte federovanou identitu OpenAI k vlastní roli, kterou jste dříve vytvořili
V části Add principals zadejte principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
V části Assign roles vyberte vlastní roli, kterou jste vytvořili v předchozím kroku pro omezená oprávnění EKM
6. Použijte jakákoli další omezení v souladu se svými vlastními bezpečnostními postupy
Výše jsou uvedeny minimální požadované informace, které OpenAI potřebuje k nastavení EKM. Můžete použít další zásady nebo omezení klíčů v souladu se svými interními bezpečnostními postupy, pokud OpenAI může volat operace šifrování a dešifrování ve vašem KMS. Když zavoláte koncový bod pro registraci klíče u OpenAI, který je popsán níže, ověříme vaše nastavení.
Po dokončení výše uvedených kroků
ChatGPT Enterprise
Obraťte se prosím na svůj kontakt v OpenAI a sdílejte následující:
"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"
Oblast, ve které se nachází hlavní klíč vašeho systému správy klíčů
EKM povolíme pro vaši organizaci/pracovní prostor ChatGPT.
API
Zaregistrujte svůj externí klíč u OpenAI
Postupujte podle pokynů v této referenci API Externí klíče v rozhraní Management API
Nejprve zaregistrujte svůj externí klíč na úrovni organizace OpenAI, čímž se vygeneruje ID externího klíče.
V tomto kroku ověříme vaše nastavení v GCP kontrolou, že se můžeme ověřit vůči vašemu KMS.
Tím se EKM do vašeho projektu OpenAI zatím nepřidá.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "gcp",
"name": "Konfigurace GCP EKM",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <ID vaší organizace nebo ID projektu>,
"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"
}'Poté vytvořte projekt OpenAI přidružený k externímu klíči. Poté se pro váš projekt aktivuje EKM.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Nějaký projekt",
"external_key_id": "extkey_xxxx"
}'