Ringkesan
Akses
Endpoints EKM bisa diakses ing Management API nganggo Kunci API Admin. https://platform.openai.com/settings/organization/admin-keys (aja nganggo kunci API biasa). Kunci API Admin kasedhiya kanggo pamilik organisasi.
Gunakake
api.external_keys.writekanggo nggawe utawa mbusak kunci eksternal, lanapi.external_keys.readkanggo nampilake dhaptar utawa validasi kunci eksternal. Siji kunci mung mbutuhake loro scope yen kudu nindakake operasi maca lan nulis.Saiki kita kudu ngaktifake feature flag kanggo organisasi sampeyan supaya bisa nggunakake endpoints iki. Sampeyan ngerti yen feature flag wis aktif yen weruh external_key_id dibalekake saka endpoint List Projects sing wis ana: https://api.openai.com/v1/organization/projects
Panggunaan
Konfigurasi EKM sampeyan didaftarake ing level organisasi liwat endpoint anyar https://api.openai.com/v1/organization/external_keys
Ndaftarake konfigurasi EKM sampeyan bakal mbalekake external_key_id kanthi format extkey_xxxx
Konfigurasi EKM diaktifake ing level proyek kanthi ngirim external_key_id ing body endpoint Create Project https://api.openai.com/v1/organization/projects sing wis ana
Watesan
Sampeyan kudu ngetes EKM dhisik ing proyek anyar liwat Management API.
Disaranake sampeyan nggawe proyek anyar kanggo workload EKM sampeyan. Nanging, yen sampeyan pengin EKM ing proyek sing wis ana, kita bisa nambahake sampeyan menyang feature flag. Gatekna praktik paling apik ing ngisor iki sadurunge sampeyan ngetrapake EKM menyang proyek produksi sing wis ana.
Tes dhisik kabeh fitur API sing sampeyan gunakake ing produksi ing proyek API EKM test sampeyan
Terapake rollout bertahap, aja ngisi EKM ing kabeh proyek API produksi sekaligus
Endpoints level organisasi
Daftarake kunci eksternal ing organisasi sampeyan
AWS
Tuladha Panjaluk
type: string - tansah “aws”
name: string - Jeneng sing gampang dikenali kanggo konfigurasi sampeyan
role_arn: string - Role ARN sing bakal di-assume OpenAI ing cloud sampeyan
kms_arn: string - ARN Sistem Manajemen Kunci kanggo kunci master sing sampeyan kelola
external_id: string - ID organisasi utawa ID proyek API sampeyan
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>
}'Tuladha Respons
{
"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
Tuladha Panjaluk
type: string - tansah "gcp",
name: string - Jeneng sing gampang dikenali kanggo konfigurasi sampeyan
workload_identity_project_number: string - Nomer proyek GCP 12 digit ing ngendi sampeyan ndaftarake workload identity OpenAI
workload_identity_pool_id: string - Pool sing ngemot panyedhiya Workload Identity sing sampeyan daftarake kanggo OpenAI
workload_identity_provider_id: string - Panyedhiya Workload Identity sing sampeyan daftarake kanggo OpenAI
audience: string - Audience sing kudu diterusake OpenAI ing token nalika kita assume role liwat GCP STS sampeyan
kms_project_id: string - Jeneng proyek GCP panggonan KMS sampeyan ana
kms_key_ring_name: string - Key ring Sistem Manajemen Kunci sing ngemot kunci master sing sampeyan kelola
kms_key_name: string - Jeneng kunci master Sistem Manajemen Kunci
kms_key_location: string - Region panggonan kunci master Sistem Manajemen Kunci sampeyan ana
Yen KMS sampeyan ana ing proyek GCP sing beda saka proyek panggonan sampeyan ndaftarake Workload Identity OpenAI, priksa manawa proyek sing ngemot Workload Identity OpenAI paling ora wis ngaktifake KMS kanthi mbukak 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"
}'Tuladha Respons
{
"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
Tuladha Panjaluk
type: string - tansah "azure",
name: string - Jeneng sing gampang dikenali kanggo konfigurasi sampeyan
tenant_id: string - UUID tenant Azure sampeyan
vault_uri: string - URI vault Azure sing ngemot kunci master sing sampeyan kelola
key_name: string - Jeneng kunci master Azure Key Vault sing sampeyan kelola.
Kudu nganggo format <org-xxx>--<any_name>
ing ngendi org-xxx yaiku ID organisasi OpenAI sampeyan sing bisa ditemokake ing 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"
}'Tuladha Respons
{
"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"
}Busak kunci eksternal sing didaftarake ing organisasi sampeyan
Cathetan: Sampeyan mung bisa mbusak kunci eksternal yen ora digandhengake karo proyek API aktif utawa papan kerja apa wae. Yen digandhengake karo proyek API aktif, arsipna proyek kuwi dhisik. Yen digandhengake karo papan kerja, kunci kasebut ora bisa dibusak.
Tuladha Panjaluk
curl -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxxx"Tuladha Respons
{
"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>"
}Entuk kunci eksternal sing didaftarake ing organisasi sampeyan
Tuladha Panjaluk
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys"Tuladha Respons
{
"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"
}Validasi kunci eksternal
Sampeyan bisa nggunakake endpoint iki kanggo mriksa sawetara perkara
Konfigurasi cloud eksternal sampeyan tetep valid karo OpenAI sawise sampeyan nggawe owah-owahan (sampeyan bakal weruh respons sukses)
Pencabutan kunci sampeyan wis rampung kanthi bener, lagi diproses dening OpenAI, lan bakal efektif sawise TTL cache 1 jam kadaluwarsa (sampeyan bakal weruh respons error)
Tuladha Panjaluk
curl -X POST -H "Authorization: Bearer $TOKEN"
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"Tuladha Respons
{
"status": "success"
}Utawa, ana error sing ditampilake saka panyedhiya cloud.
Endpoints level proyek
Gawe proyek anyar nganggo ID kunci eksternal
Iki padha karo endpoint Create Project sing wis ana, nanging ditambah parameter external_key_id ing panjaluk lan respons.
Tuladha Panjaluk
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"
}'Tuladha Respons
{
"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] Nganyari proyek sing wis ana nganggo ID kunci eksternal
Iki padha karo endpoint Update Project sing wis ana, nanging ditambah parameter external_key_id ing panjaluk lan respons.
Disaranake sampeyan nggawe proyek API anyar kanggo workload EKM sampeyan. Yen sampeyan pengin EKM ing kabeh proyek API sing wis ana, takona direktur akun sampeyan lan kita bakal nambahake sampeyan menyang feature flag. Gatekna praktik paling apik ing ngisor iki sadurunge sampeyan ngetrapake EKM menyang proyek produksi sing wis ana.
Tes dhisik kabeh fitur API sing sampeyan gunakake ing produksi ing proyek API EKM test sampeyan
Terapake rollout bertahap, aja ngisi EKM ing kabeh proyek API produksi sekaligus
Tuladha Panjaluk
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"
}'Tampilake dhaptar kabeh proyek ing organisasi sampeyan
Iki padha karo endpoint sing wis ana, nanging ditambah external_key_id ing respons API
Tuladha Panjaluk
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects"Tuladha Respons
{
"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
}