Pangkalahatang-ideya
Nagbibigay-daan ang Enterprise Key Management (EKM) sa OpenAI na i-encrypt ang data gamit ang master key na kontrolado mo. Ipinapakita ng dokumentong ito kung paano i-set up ang iyong GCP account para bigyan ang OpenAI ng limitadong pahintulot sa iyong KMS.

Mga hakbang
1. Gumawa ng federated identity para sa OpenAI
Mag-iisyu ang OpenAI ng identity token mula sa GCP account na pag-aari ng OpenAI na mukhang ganito.
Ang azp at sub ay ang service account ID ng OpenAI sa GCP
Ang aud ay ang iyong OpenAI organization ID. Maaari ka ring pumili ng ibang audience gaya ng iyong OpenAI project ID - tingnan ang mga tagubilin sa ibaba
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Kinikilala ng hakbang na ito ang mga claim na ginawa ng identity token na iyon at nagbibigay-daan sa iyong GCP STS na mag-isyu ng access token kapag ibinigay ang identity token na iyon.
Pumunta sa IAM & Admin -> Workload Identity Federation at i-click ang Gumawa ng Pool

Sa hakbang na Gumawa ng identity pool, maglagay ng kahit ano para sa pangalan ng pool.
Sa hakbang na Magdagdag ng provider sa pool:
Sa Piliin ang provider, piliin ang OpenID Connect (OIDC)
Maglagay ng kahit ano para sa pangalan ng provider.
Sa seksyong Issuer (URL), ilagay ang https://accounts.google.com
Sa seksyong Mga Audience
Piliin ang Mga pinapayagang audience
Ilagay ang audience na dapat tukuyin ng OpenAI kapag nagpasa kami sa iyo ng token.
Para sa ChatGPT o API: Maaari mong ilagay ang OpenAI API organization ID (org-xxx)
Para sa API: maaari kang maglagay ng partikular na API project ID para sa mas detalyadong kontrol.

Sa seksyong Pagmamapa ng attribute
para sa google.subject, ilagay ang assertion.sub

Sa seksyong Mga kondisyon ng attribute
Ngayon, dapat mong makita ang iyong workload identity pool at workload identity provider na nakalista sa page na https://console.cloud.google.com/iam-admin/workload-identity-pools
Workload identity pool ID

Workload identity provider ID

2. Tiyaking naka-enable ang KMS
Pumunta sa https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview para i-enable ang KMS. Hindi kinakailangang gawin ang iyong KMS sa parehong proyekto sa GCP kung saan mo kinilala ang federated identity ng OpenAI; gayunpaman, kung magkaiba ang mga proyekto, dapat man lang na naka-enable ang produktong KMS sa parehong proyekto.
3. Gumawa ng bagong KMS Key
Pumunta sa Seguridad -> Proteksyon ng Data > Pamamahala ng Key
Sa ilalim ng tab na Pangkalahatang-ideya, i-click ang Gumawa ng key ring
Pumili ng anumang pangalan para sa iyong key ring
Para sa Layunin at algorithm, piliin ang Simetrikong pag-encrypt/decrypt

Kapag nakagawa ka na ng key ring, dapat itong nakalista sa tab na Mga Key Ring. I-click ang key ring.
Sa mga detalye ng key ring, i-click ang Gumawa ng Key
Pumili ng anumang pangalan para sa iyong key
4. Gumawa ng limitadong role para sa mga operasyong pag-encrypt/decrypt sa KMS
Pumunta sa IAM & Admin -> Mga Role -> Gumawa ng role
Maglagay ng kahit ano para sa pamagat at ID ng role
I-click ang Magdagdag ng Mga Pahintulot, pagkatapos ay idagdag ang sumusunod
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. I-assign ang federated identity ng OpenAI sa limitadong KMS role para sa mga operasyong pag-encrypt/decrypt
Pumunta sa Seguridad -> Proteksyon ng Data > Pamamahala ng Key
I-click ang pangalan ng iyong key ring, pagkatapos ay i-click ang iyong pangalan ng key para makapunta sa page ng mga detalye ng iyong key.
I-click ang tab na Mga Pahintulot, pagkatapos ay i-click ang button na Magbigay ng Access

I-assign ang OpenAI federated identity sa custom role na ginawa mo dati
Para sa seksyong Magdagdag ng mga principal, ilagay ang principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
Sa seksyong Magtalaga ng mga role, piliin ang custom role na ginawa mo sa nakaraang hakbang para sa limitadong pahintulot sa EKM
6. Ilapat ang anumang karagdagang paghihigpit alinsunod sa sarili mong mga kasanayan sa seguridad
Nasa itaas ang minimum na kinakailangang impormasyon na kailangan ng OpenAI para i-set up ang EKM. Malaya kang maglapat ng karagdagang mga patakaran o paghihigpit sa key alinsunod sa sarili mong mga internal na kasanayan sa seguridad, hangga’t nagagawa ng OpenAI na tawagin ang mga operasyong encrypt at decrypt sa iyong KMS. Kapag tinawag mo ang key registration endpoint sa OpenAI na inilalarawan sa ibaba, iva-validate namin ang iyong setup.
Matapos kumpletuhin ang mga hakbang sa itaas
ChatGPT Enterprise
Makipag-ugnayan sa iyong contact sa OpenAI at ibahagi ang sumusunod:
"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"
Ang rehiyon kung saan matatagpuan ang master key ng iyong Key Management System
Ie-enable namin ang EKM para sa iyong organisasyon/workspace sa ChatGPT.
API
Irehistro ang iyong external key sa OpenAI
Sundin ang mga tagubilin sa API reference na ito Mga External Key sa Management API
Una, irehistro ang iyong external key sa antas ng organisasyon ng OpenAI, na lilikha ng external key ID.
Sa hakbang na ito, iva-validate namin ang iyong setup sa GCP sa pamamagitan ng pagsuri kung makakapag-authenticate kami sa iyong KMS.
Hindi pa nito idaragdag ang EKM sa iyong proyekto sa 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": <iyong org id o 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"
}'Pagkatapos, gumawa ng proyekto sa OpenAI na nauugnay sa external key. Pagkatapos nito, maa-activate ang EKM sa iyong proyekto.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Ilang Proyekto",
"external_key_id": "extkey_xxxx"
}'