အနှစ်ချုပ်
အသုံးပြုခွင့်
EKM endpoints ကို Management API တွင် Admin API Key ဖြင့် အသုံးပြုနိုင်သည်။ https://platform.openai.com/settings/organization/admin-keys (ပုံမှန် API key ကို မသုံးပါနှင့်)။ Admin API keys ကို အဖွဲ့အစည်း ပိုင်ရှင်များ အသုံးပြုနိုင်သည်။
ပြင်ပကီးများကို ဖန်တီးရန် သို့မဟုတ် ဖျက်ရန်
api.external_keys.writeကို အသုံးပြုပြီး၊ ပြင်ပကီးများကို စာရင်းပြရန် သို့မဟုတ် အတည်ပြုရန်api.external_keys.readကို အသုံးပြုပါ။ ကီးတစ်ခုသည် ဖတ်ခြင်းနှင့် ရေးခြင်း လုပ်ဆောင်ချက်နှစ်မျိုးလုံး လုပ်ဆောင်ရန်လိုမှသာ scope နှစ်ခုလုံး လိုအပ်သည်။လောလောဆယ် သင့်အဖွဲ့အစည်းကို ဤ endpoints အတွက် feature flag ဖွင့်ပေးရန် လိုအပ်သည်။ ရှိပြီးသား List Projects endpoint မှ external_key_id ပြန်လာသည်ကို မြင်ပါက သင့်တွင် feature flag ရှိပြီးဖြစ်သည်- https://api.openai.com/v1/organization/projects
အသုံးပြုပုံ
သင့် EKM config ကို endpoint အသစ် https://api.openai.com/v1/organization/external_keys မှတစ်ဆင့် organization အဆင့်တွင် မှတ်ပုံတင် ထားသည်
သင့် EKM config ကို မှတ်ပုံတင်သောအခါ extkey_xxxx ပုံစံရှိ external_key_id ကို ပြန်ပေးသည်
ရှိပြီးသား Create Project https://api.openai.com/v1/organization/projects endpoint ၏ body ထဲတွင် external_key_id ထည့်ပေးခြင်းဖြင့် EKM configs ကို project အဆင့်တွင် အသက်သွင်းသည်
ကန့်သတ်ချက်များ
Management API မှတစ်ဆင့် project အသစ် တစ်ခုတွင် EKM ကို ဦးစွာ စမ်းသပ်ရမည်။
သင့် EKM workloads အတွက် projects အသစ်များ ဖန်တီးအသုံးပြုရန် အကြံပြုပါသည်။ သို့သော် ရှိပြီးသား project တစ်ခုတွင် EKM အသုံးပြုလိုပါက သင့်ကို feature flag ထဲသို့ ထည့်ပေးနိုင်ပါသည်။ EKM ကို သင့်ရှိပြီးသား production projects များသို့ rollout မလုပ်မီ အောက်ပါ best practices များကို မှတ်သားပါ။
production တွင် သင်အသုံးပြုသော API features အားလုံးကို သင့် test EKM API project တွင် ဦးစွာ စမ်းသပ်ပါ
production API projects အားလုံးတွင် EKM ကို တစ်ပြိုင်နက် ထည့်သွင်းမည့်အစား တဖြည်းဖြည်း rollout လုပ်ပါ
Organization အဆင့် endpoints
သင့်အဖွဲ့အစည်းတွင် ပြင်ပကီးတစ်ခု မှတ်ပုံတင်ရန်
AWS
နမူနာ တောင်းဆိုချက်
type: string - အမြဲတမ်း “aws”
name: string - သင့် config အတွက် မှတ်မိလွယ်သော အမည်
role_arn: string - သင့် cloud ထဲတွင် OpenAI မှ assume လုပ်မည့် Role ARN
kms_arn: string - သင်စီမံသော master key အတွက် Key Management System ARN
external_id: string - သင့်အဖွဲ့အစည်း id သို့မဟုတ် API project id
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "aws",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<12_DIGIT_ACCOUNT_NUMBER>:role/<ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"external_id": <your org id or project id>
}'နမူနာ တုံ့ပြန်ချက်
{
"id": "extkey_xxxx",
"object": "organization.external_key",
"created_at": 1746175499,
"api_project_ids": [],
"type": "aws",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<ACCOUNT_NUMBER>:role/<ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"external_id": <your org id or project id>
} GCP
နမူနာ တောင်းဆိုချက်
type: string - အမြဲတမ်း "gcp",
name: string - သင့် config အတွက် မှတ်မိလွယ်သော အမည်
workload_identity_project_number: string - OpenAI ၏ workload identity ကို သင်မှတ်ပုံတင်ထားသော 12-digit GCP project number
workload_identity_pool_id: string - OpenAI အတွက် သင်မှတ်ပုံတင်ထားသော Workload Identity provider ပါဝင်သည့် pool
workload_identity_provider_id: string - OpenAI အတွက် သင်မှတ်ပုံတင်ထားသော Workload Identity provider
audience: string - သင့် GCP STS မှတစ်ဆင့် role တစ်ခုကို ကျွန်ုပ်တို့ assume လုပ်သည့်အခါ OpenAI က တိုကင်ထဲတွင် ပေးပို့ရမည့် audience
kms_project_id: string - သင့် KMS ရှိသော GCP project ၏ အမည်
kms_key_ring_name: string - သင်စီမံသော master key ပါဝင်သည့် Key Management System key ring
kms_key_name: string - Key Management System master key ၏ အမည်
kms_key_location: string - သင့် Key Management System master key တည်ရှိသည့် region
သင့် KMS သည် OpenAI ၏ Workload Identity ကို သင်မှတ်ပုံတင်ထားသော GCP project နှင့် မတူသော project ထဲတွင် ရှိနေပါက၊ အနည်းဆုံး OpenAI ၏ Workload Identity ပါဝင်သော project တွင် KMS enabled ဖြစ်နေကြောင်း https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview သို့ သွား၍ သေချာစစ်ဆေးပါ
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": <your org id or 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"
}'နမူနာ တုံ့ပြန်ချက်
{
"id": "extkey_xxxxxx",
"object": "organization.external_key",
"created_at": 1746174349,
"api_project_ids": [],
"type": "gcp",
"name": "GCP EKM Config",
"workload_identity_project_number": "123456789012",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_name": "openai-kms-key",
"kms_key_location": "us-east1",
"audience": <your org id or project id>,
"kms_project_id": "adjective-noun-12345",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role"
}Azure
နမူနာ တောင်းဆိုချက်
type: string - အမြဲတမ်း "azure",
name: string - သင့် config အတွက် မှတ်မိလွယ်သော အမည်
tenant_id: string - သင့် Azure tenant UUID
vault_uri: string - သင်စီမံသော master key ပါဝင်သည့် Azure vault ၏ URI
key_name: string - သင်စီမံသော Azure Key Vault master key ၏ အမည်။
၎င်းသည် <org-xxx>--<any_name> ပုံစံ ရှိရမည်
ဤနေရာတွင် org-xxx သည် https://platform.openai.com/settings/organization/general တွင် ရှာတွေ့နိုင်သော သင့် OpenAI organization ID ဖြစ်သည်
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "Azure EKM Config",
"tenant_id": "<UUID>",
"vault_uri": "https://<VAULT_NAME>.vault.azure.net/",
"key_name": "org-xxx--some-key"
}'နမူနာ တုံ့ပြန်ချက်
{
"id": "extkey_xxxx",
"object": "organization.external_key",
"created_at": 1746174377,
"api_project_ids": [],
"type": "azure",
"name": "Azure EKM Config",
"tenant_id": "<UUID>",
"vault_uri": "https://<VAULT_NAME>.vault.azure.net/",
"key_name": "org-xxx--some-key"
}သင့်အဖွဲ့အစည်းတွင် မှတ်ပုံတင်ထားသော ပြင်ပကီးကို ဖျက်ရန်
မှတ်ချက်- active API projects သို့မဟုတ် အလုပ်နေရာ တစ်ခုခုနှင့် ဆက်နွှယ်မထားမှသာ ပြင်ပကီးကို ဖျက်နိုင်သည်။ active API project တစ်ခုနှင့် ဆက်နွှယ်နေပါက ထို project ကို ဦးစွာ archive လုပ်ပါ။ အလုပ်နေရာနှင့် ဆက်နွှယ်နေပါက ထိုကီးကို ဖျက်၍မရပါ။
နမူနာ တောင်းဆိုချက်
curl -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxxx"နမူနာ တုံ့ပြန်ချက်
{
"id": "extkey_xxxxx",
"object": "organization.external_key.deleted",
"created_at": 1746127808,
"api_project_ids": [],
"type": "aws",
"account_number": "123456789012",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<ACCOUNT_NUMBER>:role/<ROLE>"
}သင့်အဖွဲ့အစည်းတွင် မှတ်ပုံတင်ထားသော ပြင်ပကီးများကို ရယူရန်
နမူနာ တောင်းဆိုချက်
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys"နမူနာ တုံ့ပြန်ချက်
{
"object": "list",
"data": [
{
"id": "extkey_xxxx",
"object": "organization.external_key",
"created_at": 1746127808,
"api_project_ids": [],
"type": "aws",
"name": "AWS EKM Config",
"account_number": "123456789012",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
role_arn": "arn:aws:iam::<ACCOUNT_NUMBER>:role/<ROLE>"
}
],
"first_id": "extkey_xxxx",
"has_more": false,
"last_id": "extkey_xxxx"
}ပြင်ပကီးတစ်ခုကို အတည်ပြုရန်
ဤ endpoint ကို အသုံးပြု၍ အချက်အချို့ကို စစ်ဆေးနိုင်သည်
သင် ပြောင်းလဲမှုများ ပြုလုပ်ပြီးနောက် သင့် external cloud configuration သည် OpenAI နှင့် ဆက်လက် valid ဖြစ်နေမှု (success response ကို မြင်ရမည်)
သင့် key revocation ကို မှန်ကန်စွာ ပြုလုပ်ပြီးဖြစ်မှု၊ OpenAI က လုပ်ဆောင်နေမှု၊ နှင့် ၁ နာရီ cache TTLs သက်တမ်းကုန်ပြီးနောက် အကျိုးသက်ရောက်မည့်မှု (error response ကို မြင်ရမည်)
နမူနာ တောင်းဆိုချက်
curl -X POST -H "Authorization: Bearer $TOKEN"
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"နမူနာ တုံ့ပြန်ချက်
{
"status": "success"
}သို့မဟုတ် cloud provider မှ error တစ်ခု ပြန်လာသည်။
Project အဆင့် endpoints
external key ID ဖြင့် project အသစ်တစ်ခု ဖန်တီးရန်
၎င်းသည် ရှိပြီးသား Create Project endpoint နှင့် တူညီပြီး request နှင့် response တွင် external_key_id parameter ထည့်သွင်းထားသည်။
နမူနာ တောင်းဆိုချက်
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"
}'နမူနာ တုံ့ပြန်ချက်
{
"object": "project",
"id": "proj_xxxxx",
"title": "Some Project",
"external_key_id": "extkey_xxxxx",
"created": 1740012721,
"organization_id": "org-xxxxx",
"is_initial": false,
"geography": null,
"scale_tier_enabled": false,
"disable_user_api_keys": false,
"zdr_type": null,
}[ကန့်သတ်ထားသည်] ရှိပြီးသား project တစ်ခုကို external key ID ဖြင့် အပ်ဒိတ်လုပ်ရန်
၎င်းသည် ရှိပြီးသား Update Project endpoint နှင့် တူညီပြီး request နှင့် response တွင် external_key_id parameter ထည့်သွင်းထားသည်။
သင့် EKM workloads အတွက် API projects အသစ်များ ဖန်တီးအသုံးပြုရန် အကြံပြုပါသည်။ သင့်ရှိပြီးသား API projects အားလုံးတွင် EKM အသုံးပြုလိုပါက သင့် account director ကို မေးမြန်းပါ၊ ထို့နောက် ကျွန်ုပ်တို့က သင့်ကို feature flag ထဲသို့ ထည့်ပေးပါမည်။ EKM ကို သင့်ရှိပြီးသား production projects များသို့ rollout မလုပ်မီ အောက်ပါ best practices များကို မှတ်သားပါ။
production တွင် သင်အသုံးပြုသော API features အားလုံးကို သင့် test EKM API project တွင် ဦးစွာ စမ်းသပ်ပါ
production API projects အားလုံးတွင် EKM ကို တစ်ပြိုင်နက် ထည့်သွင်းမည့်အစား တဖြည်းဖြည်း rollout လုပ်ပါ
နမူနာ တောင်းဆိုချက်
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects/proj_xxx" \
-d '{
"external_key_id": "extkey_xxxx"
}'သင့်အဖွဲ့အစည်းရှိ project အားလုံးကို စာရင်းပြရန်
၎င်းသည် ရှိပြီးသား endpoint နှင့် တူညီသော်လည်း API response တွင် external_key_id ထည့်သွင်းထားသည်
နမူနာ တောင်းဆိုချက်
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects"နမူနာ တုံ့ပြန်ချက်
{
"object": "list",
"data": [
{
"object": "organization.project",
"id": "proj_xxxx",
"name": "Project Name",
"external_key_id": "extkey_xxxx",
"created_at": 1717798982,
"archived_at": null,
"status": "active"
}
],
"first_id": "proj_xxxx",
"last_id": "proj_xxxx",
"has_more": true
}