Muhtasari
Ufikiaji
endpoints za EKM zinapatikana katika API ya Usimamizi kupitia Ufunguo wa API wa Msimamizi. https://platform.openai.com/settings/organization/admin-keys (usitumie ufunguo wa kawaida wa API). Funguo za API za Msimamizi zinapatikana kwa wamiliki wa shirika.
Tumia
api.external_keys.writekuunda au kufuta funguo za nje, naapi.external_keys.readkuorodhesha au kuthibitisha funguo za nje. Ufunguo mmoja unahitaji scopes zote mbili tu ikiwa lazima ufanye shughuli za kusoma na kuandika.Kwa sasa tunahitaji kuwezesha feature flag kwa shirika lako ili kutumia endpoints hizi. Utajua una feature flag ikiwa utaona external_key_id ikirudishwa kutoka endpoint iliyopo ya List Projects: https://api.openai.com/v1/organization/projects
Matumizi
Config yako ya EKM imesajiliwa katika kiwango cha shirika kupitia endpoint mpya https://api.openai.com/v1/organization/external_keys
Kusajili config yako ya EKM hurudisha external_key_id katika muundo wa extkey_xxxx
Config za EKM huwezeshwa katika kiwango cha mradi kwa kupitisha external_key_id kwenye body ya endpoint iliyopo ya Create Project https://api.openai.com/v1/organization/projects
Vikwazo
Lazima kwanza ujaribu EKM kwenye mradi mpya kupitia API ya Usimamizi.
Tunapendekeza uanzishe miradi mipya kwa ajili ya workloads zako za EKM. Hata hivyo, ikiwa unataka EKM kwenye mradi uliopo, tunaweza kukuongeza kwenye feature flag. Tafadhali zingatia mbinu bora zifuatazo kabla ya kusambaza EKM kwenye miradi yako iliyopo ya production.
Kwanza jaribu vipengele vyote vya API unavyotumia kwenye production katika mradi wako wa majaribio wa EKM API
Tekeleza usambazaji wa hatua kwa hatua badala ya kuweka EKM kwenye miradi yote ya production ya API kwa wakati mmoja
endpoints za kiwango cha shirika
Sajili ufunguo wa nje kwenye shirika lako
AWS
Mfano wa Ombi
type: string - daima “aws”
name: string - Jina rahisi kutambua la config yako
role_arn: string - Role ARN ambayo OpenAI itatumia katika cloud yako
kms_arn: string - ARN ya Key Management System kwa ufunguo mkuu unaosimamia
external_id: string - ID ya shirika lako au ID ya mradi wa API
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>
}'Mfano wa Jibu
{
"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
Mfano wa Ombi
type: string - daima "gcp",
name: string - Jina rahisi kutambua la config yako
workload_identity_project_number: string - Nambari ya mradi wa GCP yenye tarakimu 12 ambapo ulisajili workload identity ya OpenAI
workload_identity_pool_id: string - Pool yenye mtoa huduma wa Workload Identity uliyemsajili kwa OpenAI
workload_identity_provider_id: string - Mtoa huduma wa Workload Identity uliyemsajili kwa OpenAI
audience: string - Audience ambayo OpenAI inapaswa kupitisha katika tokeni tunapochukua role kupitia GCP STS yako
kms_project_id: string - Jina la mradi wa GCP ambapo KMS yako ipo
kms_key_ring_name: string - Key ring ya Key Management System iliyo na ufunguo mkuu unaosimamia
kms_key_name: string - Jina la ufunguo mkuu wa Key Management System
kms_key_location: string - Eneo ambapo ufunguo mkuu wa Key Management System upo
Ikiwa KMS yako iko katika mradi tofauti wa GCP na ule ambapo ulisajili Workload Identity ya OpenAI, hakikisha angalau mradi ulio na Workload Identity ya OpenAI umewasha KMS kwa kwenda kwenye 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"
}'Mfano wa Jibu
{
"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
Mfano wa Ombi
type: string - daima "azure",
name: string - Jina rahisi kutambua la config yako
tenant_id: string - UUID ya tenant yako ya Azure
vault_uri: string - URI ya vault ya Azure iliyo na ufunguo mkuu unaosimamia
key_name: string - Jina la ufunguo mkuu wa Azure Key Vault unaosimamia.
Lazima uwe katika muundo wa <org-xxx>--<any_name>
ambapo org-xxx ni ID ya shirika lako la OpenAI unayoweza kupata kwenye https://platform.openai.com/settings/organization/general
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"
}'Mfano wa Jibu
{
"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"
}Futa ufunguo wa nje uliosajiliwa kwenye shirika lako
Kumbuka: Unaweza kufuta ufunguo wa nje tu ikiwa haujaunganishwa na miradi yoyote amilifu ya API au eneokazi. Ikiwa umeunganishwa na mradi amilifu wa API, weka mradi huo kwenye kumbukumbu kwanza. Ikiwa umeunganishwa na eneokazi, ufunguo hauwezi kufutwa.
Mfano wa Ombi
curl -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxxx"Mfano wa Jibu
{
"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>"
}Pata funguo za nje zilizosajiliwa kwenye shirika lako
Mfano wa Ombi
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys"Mfano wa Jibu
{
"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"
}Thibitisha ufunguo wa nje
Unaweza kutumia endpoint hii kukagua mambo kadhaa
Config yako ya nje ya cloud inaendelea kuwa halali na OpenAI baada ya kufanya mabadiliko (utaona jibu la mafanikio)
Ubatilishaji wa ufunguo wako umefanywa kwa usahihi, unachakatwa na OpenAI, na utaanza kutumika baada ya cache TTL za saa 1 kuisha (utaona jibu la hitilafu)
Mfano wa Ombi
curl -X POST -H "Authorization: Bearer $TOKEN"
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"Mfano wa Jibu
{
"status": "success"
}Au, hitilafu iliyotolewa na mtoa huduma wa cloud.
endpoints za kiwango cha mradi
Unda mradi mpya wenye ID ya ufunguo wa nje
Hii ni sawa na endpoint iliyopo ya Create Project, lakini imeongezewa kigezo cha external_key_id katika ombi na jibu.
Mfano wa Ombi
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"
}'Mfano wa Jibu
{
"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,
}[Restricted] Sasisha mradi uliopo kwa ID ya ufunguo wa nje
Hii ni sawa na endpoint iliyopo ya Update Project, lakini imeongezewa kigezo cha external_key_id katika ombi na jibu.
Tunapendekeza uanzishe miradi mipya ya API kwa ajili ya workloads zako za EKM. Ikiwa unataka EKM kwenye miradi yako yote iliyopo ya API, muulize account director wako nasi tutakuongeza kwenye feature flag. Tafadhali zingatia mbinu bora zifuatazo kabla ya kusambaza EKM kwenye miradi yako iliyopo ya production.
Kwanza jaribu vipengele vyote vya API unavyotumia kwenye production katika mradi wako wa majaribio wa EKM API
Tekeleza usambazaji wa hatua kwa hatua badala ya kuweka EKM kwenye miradi yote ya production ya API kwa wakati mmoja
Mfano wa Ombi
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"
}'Orodhesha miradi yote kwenye shirika lako
Hii ni sawa na endpoint iliyopo, lakini imeongezewa external_key_id katika jibu la API
Mfano wa Ombi
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects"Mfano wa Jibu
{
"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
}