Ընդհանուր ակնարկ
Enterprise Key Management-ը (EKM) թույլ է տալիս OpenAI-ին կոդավորել տվյալները՝ օգտագործելով ձեր կողմից վերահսկվող հիմնական բանալի։ Այս փաստաթուղթը ցույց է տալիս, թե ինչպես կարգավորել ձեր GCP հաշիվը՝ OpenAI-ին ձեր KMS-ում սահմանափակ թույլտվություններ տրամադրելու համար։

Քայլեր
1. Ստեղծեք ֆեդերացված ինքնություն OpenAI-ի համար
OpenAI-ը կթողարկի ինքնության թոքեն OpenAI-ին պատկանող GCP հաշվից, որը մոտավորապես այսպիսի տեսք ունի։
azp-ն և sub-ը OpenAI-ի ծառայության հաշվի ID-ն են GCP-ում
aud-ը ձեր OpenAI կազմակերպության ID-ն է։ Կարող եք նաև ընտրել այլ լսարան, օրինակ՝ ձեր OpenAI նախագծի ID-ն. տե՛ս ստորև նշված հրահանգները
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Այս քայլը ճանաչում է այդ ինքնության թոքենի պնդումները և թույլ է տալիս ձեր GCP STS-ին թողարկել մուտքի թոքեն, երբ այդ ինքնության թոքենը տրամադրվում է։
Գնացեք IAM & Admin -> Workload Identity Federation և սեղմեք Create Pool

Create an identity pool, քայլում pool name.-ի համար մուտքագրեք ցանկացած բան։
Add a provider to pool քայլում՝
Select a provider-ում ընտրեք OpenID Connect (OIDC)
provider name-ի համար մուտքագրեք ցանկացած բան։
Issuer (URL) բաժնում մուտքագրեք https://accounts.google.com
Audiences բաժնում
Ընտրեք Allowed audiences
Մուտքագրեք այն լսարանը, որը OpenAI-ը պետք է նշի, երբ մենք ձեզ թոքեն ենք փոխանցում։
ChatGPT-ի կամ API-ի համար՝ կարող եք նշել OpenAI API-ի կազմակերպության ID-ն (org-xxx)
API-ի համար՝ ավելի մանրամասն վերահսկման նպատակով կարող եք նշել կոնկրետ API project id։

Attribute mapping բաժնում
google.subject-ի համար մուտքագրեք assertion.sub

Attribute conditions բաժնում
Այժմ դուք պետք է տեսնեք ձեր workload identity pool -ը և workload identity provider -ը https://console.cloud.google.com/iam-admin/workload-identity-pools էջում
Workload identity pool id

Workload identity provider ID

2. Համոզվեք, որ KMS-ը միացված է
KMS-ը միացնելու համար գնացեք https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview։ Պարտադիր չէ ստեղծել ձեր KMS-ը նույն GCP նախագծում, որտեղ ճանաչել եք OpenAI-ի ֆեդերացված ինքնությունը, սակայն եթե նախագծերը տարբեր են, KMS արտադրանքը պետք է առնվազն միացված լինի երկու նախագծերում էլ։
3. Ստեղծեք նոր KMS բանալի
Գնացեք Security -> Data Protection > Key Management
Overview ներդիրում սեղմեք Create key ring
Ընտրեք ցանկացած անուն ձեր key ring-ի համար
Purpose և algorithm-ի համար ընտրեք Symmetric encrypt/decrypt

Key ring ստեղծելուց հետո այն պետք է ցուցադրվի Key Rings ներդիրում։ Սեղմեք key ring-ի վրա։
Key ring-ի մանրամասներում սեղմեք Create Key
Ընտրեք ցանկացած անուն ձեր բանալու համար
4. Ստեղծեք սահմանափակ դեր KMS-ում կոդավորման/վերծանման գործողությունների համար
Գնացեք IAM & Admin -> Roles -> Create role
Դերի վերնագրի և ID-ի համար մուտքագրեք ցանկացած բան
Սեղմեք Add Permissions, ապա ավելացրեք հետևյալը
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Նշանակեք OpenAI-ի ֆեդերացված ինքնությունը սահմանափակ KMS դերին՝ կոդավորման/վերծանման գործողությունների համար
Գնացեք Security -> Data Protection > Key Management
Սեղմեք ձեր key ring-ի անվան վրա, ապա սեղմեք ձեր key name-ի վրա՝ ձեր բանալու մանրամասների էջ անցնելու համար։
Սեղմեք Permissions ներդիրը, ապա սեղմեք Grant Access կոճակը

Նշանակեք OpenAI-ի ֆեդերացված ինքնությունը նախկինում ստեղծած ձեր հատուկ դերին
Add principals բաժնում մուտքագրեք principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
Assign roles բաժնում ընտրեք նախորդ քայլում ստեղծած հատուկ դերը՝ սահմանափակ EKM թույլտվությունների համար
6. Կիրառեք ցանկացած լրացուցիչ սահմանափակում՝ ձեր անվտանգության գործելակերպերին համապատասխան
Վերևում ներկայացված է նվազագույն պահանջվող տեղեկատվությունը, որն OpenAI-ին անհրաժեշտ է EKM կարգավորելու համար։ Կարող եք կիրառել լրացուցիչ բանալու քաղաքականություններ կամ սահմանափակումներ՝ ձեր ներքին անվտանգության գործելակերպերին համապատասխան, քանի դեռ OpenAI-ը կարող է ձեր KMS-ում կանչել կոդավորման և վերծանման գործողությունները։ Երբ կանչեք ստորև նկարագրված բանալու գրանցման վերջնակետը OpenAI-ի միջոցով, մենք կվավերացնենք ձեր կարգավորումը։
Վերոնշյալ քայլերն ավարտելուց հետո
ChatGPT Enterprise
Խնդրում ենք կապ հաստատել OpenAI-ում ձեր կոնտակտի հետ և կիսվել հետևյալով՝
"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"
Այն տարածաշրջանը, որտեղ գտնվում է ձեր Key Management System-ի հիմնական բանալին
Մենք կմիացնենք EKM-ը ձեր ChatGPT կազմակերպության/աշխատատարածքի համար։
API
Գրանցեք ձեր արտաքին բանալին OpenAI-ում
Հետևեք այս API տեղեկատուի հրահանգներին՝ External Keys in the Management API
Նախ գրանցեք ձեր արտաքին բանալին OpenAI կազմակերպության մակարդակում, ինչի արդյունքում կստեղծվի արտաքին բանալու ID։
Այս քայլում մենք կվավերացնենք ձեր կարգավորումը GCP-ում՝ ստուգելով, որ կարող ենք նույնականացվել ձեր KMS-ում։
Սա դեռ չի ավելացնի EKM-ը ձեր 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_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <ձեր կազմակերպության id-ն կամ նախագծի 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"
}'Այնուհետև ստեղծեք OpenAI նախագիծ՝ կապված արտաքին բանալու հետ։ Դրանից հետո EKM-ը ակտիվացվում է ձեր նախագծում։
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Ինչ‑որ նախագիծ",
"external_key_id": "extkey_xxxx"
}'