Kopsavilkums
Piekļuve
EKM galapunkti ir pieejami pārvaldības API, izmantojot administratora API atslēgu. https://platform.openai.com/settings/organization/admin-keys (neizmantojiet parasto 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 iegūtu ārējo atslēgu sarakstu vai pārbaudītu to derīgumu. Vienai atslēgai abas atļauju tvēruma vērtības ir nepieciešamas tikai tad, ja ar to jāveic gan lasīšanas, gan rakstīšanas darbības.Pašlaik mums ir jāiespējo jūsu organizācijai piekļuve šiem galapunktiem, izmantojot funkcijas karodziņu. Funkcijas karodziņš ir iespējots, ja esošā projektu saraksta iegūšanas galapunkta https://api.openai.com/v1/organization/projects atbildē ir redzams external_key_id.
Lietošana
Jūsu EKM konfigurācija tiek reģistrēta organizācijas līmenī, izmantojot jaunu galapunktu 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ī, nododot external_key_id esošā projekta izveides galapunkta https://api.openai.com/v1/organization/projects pieprasījuma pamattekstā.
Ierobežojumi
Vispirms EKM ir jāizmēģina jaunā projektā, izmantojot pārvaldības API.
Iesakām izveidot jaunus projektus darba slodzēm, kurām izmantosiet EKM. Tomēr, ja vēlaties izmantot EKM esošā projektā, varam iespējot jums funkcijas karodziņu. Pirms EKM ieviešanas esošajos produkcijas vides projektos ņemiet vērā tālāk sniegtos labās prakses ieteikumus.
Vispirms savā EKM testa API projektā pārbaudiet visas API funkcijas, ko izmantojat produkcijas vidē.
Ieviesiet EKM pakāpeniski, nevis iespējojiet to visos produkcijas vides API projektos vienlaikus.
Organizācijas līmeņa endpoints
Reģistrēt ārējo atslēgu jūsu organizācijā
AWS
Pieprasījuma piemērs:
type: virkne — vienmēr “aws”
name: virkne — viegli atpazīstams konfigurācijas nosaukums
role_arn: virkne — tās lomas ARN, kuru OpenAI uzņemsies jūsu mākoņvidē
kms_arn: virkne — jūsu pārvaldītās galvenās atslēgas ARN atslēgu pārvaldības sistēmā
external_id: virkne — 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: virkne — vienmēr “gcp”,
name: virkne — viegli atpazīstams konfigurācijas nosaukums
workload_identity_project_number: virkne — tā GCP projekta skaitliskais numurs, kurā reģistrējāt OpenAI darba slodzes identitāti
workload_identity_pool_id: virkne — pūls, kurā ietilpst OpenAI vajadzībām reģistrētais Workload Identity nodrošinātājs
workload_identity_provider_id: virkne — Workload Identity nodrošinātājs, kuru reģistrējāt OpenAI vajadzībām
audience: virkne — auditorija, kas OpenAI jānorāda pilnvarā, uzņemoties lomu ar jūsu GCP STS starpniecību
kms_project_id: virkne — tā GCP projekta nosaukums, kurā atrodas jūsu KMS
kms_key_ring_name: virkne — atslēgu pārvaldības sistēmas atslēgu kopa, kurā ir jūsu pārvaldītā galvenā atslēga
kms_key_name: virkne — atslēgu pārvaldības sistēmas galvenās atslēgas nosaukums
kms_key_location: virkne — reģions, kurā atrodas jūsu atslēgu pārvaldības sistēmas galvenā atslēga
Ja jūsu KMS atrodas citā GCP projektā, nevis tajā, kurā reģistrējāt OpenAI Workload Identity, atveriet https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview un pārliecinieties, ka projektā ar OpenAI Workload Identity ir vismaz iespējota KMS.
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: virkne — vienmēr “azure”,
name: virkne — viegli atpazīstams konfigurācijas nosaukums
tenant_id: virkne — jūsu Azure nomnieka UUID
vault_uri: virkne — tās Azure glabātuves URI, kurā ir jūsu pārvaldītā galvenā atslēga
key_name: virkne — jūsu pārvaldītās Azure Key Vault galvenās atslēgas nosaukums.
Tam jābūt formātā <org-xxx>--<any_name>
kur org-xxx ir jūsu OpenAI organizācijas ID, kas pieejams vietnē 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"
}Jūsu organizācijā reģistrētas ārējās atslēgas dzēšana
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 atslēga ir saistīta ar darbvietu, to 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>"
}Jūsu organizācijā reģistrēto ārējo atslēgu iegūšana
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"
}Ārējās atslēgas derīguma pārbaude
Ar šo galapunktu var pārbaudīt vairākas lietas:
Vai pēc izmaiņu veikšanas jūsu ārējās mākoņvides konfigurācija joprojām ir derīga lietošanai ar OpenAI (saņemsiet atbildi par sekmīgu pārbaudi).
Vai atslēgas atsaukšana ir veikta pareizi, OpenAI to apstrādā un tā stāsies spēkā pēc kešatmiņas 1 stundas derīguma termiņu (TTL) beigām (saņemsiet 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
Jauna projekta izveide ar ārējās atslēgas ID
Tas ir tas pats esošais projekta izveides galapunkts, taču pieprasījums un atbilde ir papildināti ar parametru 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": "organization.project",
"id": "proj_xxxxx",
"name": "Some Project",
"external_key_id": "extkey_xxxx",
"created_at": 1740012721,
"archived_at": null,
"status": "active"
}[Ierobežota piekļuve] Esoša projekta atjaunināšana ar ārējās atslēgas ID
Tas ir tas pats esošais projekta atjaunināšanas galapunkts, taču pieprasījums un atbilde ir papildināti ar parametru external_key_id.
Iesakām izveidot jaunus API projektus darba slodzēm, kurām izmantosiet EKM. Ja vēlaties izmantot EKM visos esošajos API projektos, sazinieties ar savu klientu attiecību vadītāju, un mēs iespējosim jums funkcijas karodziņu. Pirms EKM ieviešanas esošajos produkcijas vides projektos ņemiet vērā tālāk sniegtos labās prakses ieteikumus.
Vispirms savā EKM testa API projektā pārbaudiet visas API funkcijas, ko izmantojat produkcijas vidē.
Ieviesiet EKM pakāpeniski, nevis iespējojiet to visos produkcijas vides API projektos vienlaikus.
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"
}'Visu organizācijas projektu saraksta iegūšana
Tas ir tas pats esošais galapunkts, taču API atbilde ir papildināta ar 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
}