အနှစ်ချုပ်
Enterprise Key Management (EKM) သည် သင်ထိန်းချုပ်သည့် master key ကို အသုံးပြု၍ ဒေတာကို OpenAI က ကုဒ်ဝှက်နိုင်စေပါသည်။ ဤစာတမ်းတွင် သင့် KMS ပေါ်၌ OpenAI အား ကန့်သတ်ခွင့်ပြုချက်များ ပေးရန် သင့် GCP အကောင့်ကို မည်သို့ စီစဉ်သတ်မှတ်ရမည်ကို ပြထားသည်။

အဆင့်များ
1. OpenAI အတွက် federated identity တစ်ခု ဖန်တီးပါ
OpenAI သည် OpenAI ပိုင် GCP အကောင့်တစ်ခုမှ အောက်ပါပုံစံနှင့် ဆင်တူသည့် identity token တစ်ခုကို ထုတ်ပေးပါမည်။
azp နှင့် sub တို့သည် GCP ရှိ OpenAI's service account ID ဖြစ်သည်
aud သည် သင့် OpenAI အဖွဲ့အစည်း ID ဖြစ်သည်။ သင့် OpenAI ပရောဂျက် ID ကဲ့သို့သော အခြား audience ကိုလည်း ရွေးနိုင်သည် - အောက်ပါညွှန်ကြားချက်များကို ကြည့်ပါ
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}ဤအဆင့်သည် ထို identity token မှ ပြုလုပ်သည့် claims များကို အသိအမှတ်ပြုပြီး၊ ထို identity token ကို ပေးပို့သည့်အခါ သင့် GCP STS က access token တစ်ခု ထုတ်ပေးနိုင်စေပါသည်။
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 ကို ရွေးပါ
ကျွန်ုပ်တို့က သင့်ထံ token ပေးပို့သည့်အခါ OpenAI ဖော်ပြသင့်သည့် audience ကို ထည့်ပါ။
ChatGPT သို့မဟုတ် API အတွက်: OpenAI API organization ID (org-xxx) ကို ထည့်နိုင်သည်
API အတွက်: ပိုမိုအသေးစိတ်ခွဲခြားနိုင်ရန် သီးခြား API project id တစ်ခုကို ထည့်နိုင်သည်။

Attribute mapping ကဏ္ဍတွင်
google.subject အတွက် assertion.sub ကို ထည့်ပါ

Attribute conditions ကဏ္ဍတွင်
ယခု https://console.cloud.google.com/iam-admin/workload-identity-pools စာမျက်နှာတွင် သင့် workload identity pool နှင့် workload identity provider ကို စာရင်းပြထားသည်ကို မြင်ရပါမည်
Workload identity pool id

Workload identity provider ID

2. KMS ကို ဖွင့်ထားကြောင်း သေချာစေပါ
KMS ကို ဖွင့်ရန် https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview သို့ သွားပါ။ OpenAI's federated identity ကို သင်အသိအမှတ်ပြုခဲ့သည့် GCP ပရောဂျက်တူထဲတွင် သင့် KMS ကို ဖန်တီးရန် မလိုအပ်ပါ။ သို့သော် ပရောဂျက်များ ကွဲပြားပါက KMS ထုတ်ကုန်ကို ပရောဂျက်နှစ်ခုစလုံးတွင် အနည်းဆုံး ဖွင့်ထား ရပါမည်။
3. KMS Key အသစ်တစ်ခု ဖန်တီးပါ
Security -> Data Protection > Key Management သို့ သွားပါ
Overview tab အောက်တွင် Create key ring ကို နှိပ်ပါ
သင့် key ring အတွက် မည်သည့်အမည်မဆို ရွေးပါ
Purpose နှင့် algorithm အတွက် Symmetric encrypt/decrypt ကို ရွေးပါ

key ring တစ်ခု ဖန်တီးပြီးသည်နှင့် ၎င်းကို Key Rings tab တွင် စာရင်းပြထားသင့်သည်။ key ring ကို နှိပ်ပါ။
key ring အသေးစိတ်တွင် Create Key ကို နှိပ်ပါ
သင့် key အတွက် မည်သည့်အမည်မဆို ရွေးပါ
4. KMS ပေါ်ရှိ encrypt/decrypt လုပ်ဆောင်ချက်များအတွက် ကန့်သတ် role တစ်ခု ဖန်တီးပါ
IAM & Admin -> Roles -> Create role သို့ သွားပါ
role title နှင့် ID အတွက် မည်သည့်အရာမဆို ထည့်ပါ
Add Permissions ကို နှိပ်ပြီးနောက် အောက်ပါအရာများကို ထည့်ပါ
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. OpenAI ၏ federated identity ကို encrypt/decrypt လုပ်ဆောင်ချက်များအတွက် ကန့်သတ် KMS role သို့ သတ်မှတ်ပါ
Security -> Data Protection > Key Management သို့ သွားပါ
သင့် key ring အမည်ကို နှိပ်ပြီး သင့် key အသေးစိတ် စာမျက်နှာသို့ ရောက်ရန် သင့် key name ကို နှိပ်ပါ။
Permissions tab ကို နှိပ်ပြီးနောက် Grant Access ခလုတ်ကို နှိပ်ပါ

OpenAI federated identity ကို သင်ယခင်က ဖန်တီးထားသည့် custom role သို့ သတ်မှတ်ပါ
Add principals ကဏ္ဍတွင် principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365 ကို ထည့်ပါ
Assign roles ကဏ္ဍတွင် ကန့်သတ် EKM ခွင့်ပြုချက်များအတွက် ယခင်အဆင့်တွင် သင်ဖန်တီးထားသည့် custom role ကို ရွေးပါ
6. သင့်ကိုယ်ပိုင် လုံခြုံရေးလုပ်ထုံးလုပ်နည်းများနှင့် ကိုက်ညီသည့် ထပ်ဆောင်းကန့်သတ်ချက်များကို အသုံးပြုပါ
အထက်ပါသည် EKM ကို စီစဉ်သတ်မှတ်ရန် OpenAI လိုအပ်သည့် အနည်းဆုံး လိုအပ်သော အချက်အလက် ဖြစ်သည်။ OpenAI က သင့် KMS ပေါ်ရှိ encrypt နှင့် decrypt လုပ်ဆောင်ချက်များကို ခေါ်ဆိုနိုင်သရွေ့၊ သင့်အတွင်းပိုင်း လုံခြုံရေးလုပ်ထုံးလုပ်နည်းများနှင့် ကိုက်ညီသည့် ထပ်ဆောင်း key policies သို့မဟုတ် ကန့်သတ်ချက်များကို သင် လွတ်လပ်စွာ အသုံးပြုနိုင်သည်။ အောက်တွင် ဖော်ပြထားသည့် OpenAI နှင့် key registration endpoint ကို သင်ခေါ်ဆိုသောအခါ၊ ကျွန်ုပ်တို့က သင့် setup ကို အတည်ပြုပါမည်။
အထက်ပါအဆင့်များ ပြီးစီးပြီးနောက်
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 master key တည်ရှိရာ ဒေသ
သင့် ChatGPT အဖွဲ့အစည်း/အလုပ်နေရာအတွက် EKM ကို ကျွန်ုပ်တို့ ဖွင့်ပေးပါမည်။
API
သင့်ပြင်ပကီးကို OpenAI တွင် စာရင်းသွင်းပါ
ဤ API ကိုးကားချက် Management API ရှိ ပြင်ပကီးများ တွင် ပါရှိသော ညွှန်ကြားချက်များကို လိုက်နာပါ
ပထမဦးစွာ သင့်ပြင်ပကီးကို OpenAI အဖွဲ့အစည်းအဆင့်တွင် စာရင်းသွင်းပါ၊ ၎င်းက external key id တစ်ခုကို ထုတ်ပေးပါမည်။
ဤအဆင့်တွင် သင့် KMS သို့ ကျွန်ုပ်တို့ auth လုပ်နိုင်ကြောင်း စစ်ဆေးခြင်းဖြင့် GCP ပေါ်ရှိ သင့် setup ကို အတည်ပြုပါမည်။
၎င်းက သင့် OpenAI ပရောဂျက်သို့ EKM ကို မထည့်သေးပါ။
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": <သင့် org id သို့မဟုတ် 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"
}'ထို့နောက် ပြင်ပကီးနှင့် ဆက်စပ်ထားသည့် OpenAI ပရောဂျက်တစ်ခု ဖန်တီးပါ။ ထို့နောက် သင့်ပရောဂျက်တွင် EKM ကို အသက်သွင်းပြီး ဖြစ်ပါမည်။
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"
}'