Kopsavilkums
Piekļuve
EKM endpoints ir pieejami pārvaldības API, izmantojot administratora API atslēgu. https://platform.openai.com/settings/organization/admin-keys (neizmantojiet parastu API atslēgu). Administratora API atslēgas ir pieejamas organizācijas īpašniekiem.
Izmantojiet
api.external_keys.write, lai izveidotu vai dzēstu ārējās atslēgas, unapi.external_keys.read, lai uzskaitītu vai validētu ārējās atslēgas. Vienai atslēgai abas tvērumu grupas ir vajadzīgas tikai tad, ja tai jāveic gan lasīšanas, gan rakstīšanas darbības.Pašlaik mums jūsu organizācijai ir jāiespējo piekļuve šiem endpoints ar funkcijas karodziņu. Jūs zināsiet, ka funkcijas karodziņš ir iespējots, ja esošā List Projects endpoint atbildē redzat external_key_id : https://api.openai.com/v1/organization/projects
Lietošana
Jūsu EKM konfigurācija tiek reģistrēta organizācijas līmenī, izmantojot jaunu endpoint https://api.openai.com/v1/organization/external_keys
Reģistrējot EKM konfigurāciju, tiek atgriezts external_key_id formātā extkey_xxxx
EKM konfigurācijas tiek aktivizētas projekta līmenī, esošā Create Project endpoint https://api.openai.com/v1/organization/projects pamattekstā nododot external_key_id
Ierobežojumi
Vispirms EKM ir jātestē jaunā projektā, izmantojot pārvaldības API.
EKM darba slodzēm iesakām izveidot jaunus projektus. Tomēr, ja vēlaties EKM esošā projektā, mēs varam jums iespējot funkcijas karodziņu. Pirms EKM ieviešanas esošajos ražošanas projektos ņemiet vērā tālāk minēto paraugpraksi.
Vispirms testa EKM API projektā pārbaudiet visas API funkcijas, ko izmantojat ražošanā
Ieviesiet pakāpeniski, nevis pievienojiet EKM visiem ražošanas API projektiem uzreiz
Organizācijas līmeņa endpoints
Reģistrēt ārējo atslēgu jūsu organizācijā
AWS
Pieprasījuma piemērs
type: string - vienmēr “aws”
name: string - viegli saprotams konfigurācijas nosaukums
role_arn: string - lomas ARN, ko OpenAI izmantos jūsu mākonī
kms_arn: string - jūsu pārvaldītās galvenās atslēgas Key Management System ARN
external_id: string - jūsu organizācijas ID vai API projekta 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>
}'Atbildes piemērs
{
"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
Pieprasījuma piemērs
type: string - vienmēr "gcp",
name: string - viegli saprotams konfigurācijas nosaukums
workload_identity_project_number: string - 12 ciparu GCP projekta numurs, kurā reģistrējāt OpenAI darba slodzes identitāti
workload_identity_pool_id: string - pūls, kurā atrodas Workload Identity nodrošinātājs, ko reģistrējāt OpenAI
workload_identity_provider_id: string - Workload Identity nodrošinātājs, ko reģistrējāt OpenAI
audience: string - auditorija, kas OpenAI jānodod tekstvienībā, kad mēs pieņemam lomu caur jūsu GCP STS
kms_project_id: string - GCP projekta nosaukums, kurā atrodas jūsu KMS
kms_key_ring_name: string - Key Management System atslēgu saišķis, kurā ir jūsu pārvaldītā galvenā atslēga
kms_key_name: string - Key Management System galvenās atslēgas nosaukums
kms_key_location: string - reģions, kurā atrodas jūsu Key Management System galvenā atslēga
Ja jūsu KMS atrodas citā GCP projektā, nevis tajā, kur reģistrējāt OpenAI Workload Identity, pārliecinieties, ka projektā, kurā atrodas OpenAI Workload Identity, ir vismaz iespējots KMS, atverot 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"
}'Atbildes piemērs
{
"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
Pieprasījuma piemērs
type: string - vienmēr "azure",
name: string - viegli saprotams konfigurācijas nosaukums
tenant_id: string - jūsu Azure nomnieka UUID
vault_uri: string - Azure glabātuves URI, kurā atrodas jūsu pārvaldītā galvenā atslēga
key_name: string - jūsu pārvaldītās Azure Key Vault galvenās atslēgas nosaukums.
Tam jābūt formā <org-xxx>--<any_name>
kur org-xxx ir jūsu OpenAI organizācijas ID, ko varat atrast šeit: 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"
}'Atbildes piemērs
{
"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"
}Dzēst ārējo atslēgu, kas reģistrēta jūsu organizācijā
Piezīme. Ārējo atslēgu var dzēst tikai tad, ja tā nav saistīta ne ar vienu aktīvu API projektu vai darbvietu. Ja tā ir saistīta ar aktīvu API projektu, vispirms arhivējiet šo projektu. Ja tā ir saistīta ar darbvietu, atslēgu nevar dzēst.
Pieprasījuma piemērs
curl -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxxx"Atbildes piemērs
{
"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>"
}Iegūt jūsu organizācijā reģistrētās ārējās atslēgas
Pieprasījuma piemērs
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys"Atbildes piemērs
{
"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"
}Validēt ārējo atslēgu
Šo endpoint var izmantot, lai pārbaudītu vairākas lietas
Jūsu ārējā mākoņa konfigurācija pēc veiktajām izmaiņām joprojām ir derīga OpenAI (redzēsiet veiksmīgu atbildi)
Atslēgas atsaukšana ir veikta pareizi, OpenAI to apstrādā, un tā stāsies spēkā pēc 1 stundas kešatmiņas TTL termiņu beigām (redzēsiet kļūdas atbildi)
Pieprasījuma piemērs
curl -X POST -H "Authorization: Bearer $TOKEN"
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"Atbildes piemērs
{
"status": "success"
}Vai arī kļūda, ko atgriezis mākoņpakalpojumu sniedzējs.
Projekta līmeņa endpoints
Izveidot jaunu projektu ar ārējās atslēgas ID
Tas ir tas pats esošais Create Project endpoint, tikai pieprasījumā un atbildē ir pievienots parametrs external_key_id.
Pieprasījuma piemērs
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"
}'Atbildes piemērs
{
"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,
}[Ierobežots] Atjaunināt esošu projektu ar ārējās atslēgas ID
Tas ir tas pats esošais Update Project endpoint, tikai pieprasījumā un atbildē ir pievienots parametrs external_key_id.
EKM darba slodzēm iesakām izveidot jaunus API projektus. Ja vēlaties EKM visos esošajos API projektos, sazinieties ar savu konta vadītāju, un mēs jums iespējosim funkcijas karodziņu. Pirms EKM ieviešanas esošajos ražošanas projektos ņemiet vērā tālāk minēto paraugpraksi.
Vispirms testa EKM API projektā pārbaudiet visas API funkcijas, ko izmantojat ražošanā
Ieviesiet pakāpeniski, nevis pievienojiet EKM visiem ražošanas API projektiem uzreiz
Pieprasījuma piemērs
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"
}'Uzskaitīt visus jūsu organizācijas projektus
Tas ir tas pats esošais endpoint, tikai API atbildē ir pievienots external_key_id
Pieprasījuma piemērs
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects"Atbildes piemērs
{
"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
}