Қорытынды
Қолжетімділік
EKM endpoints-тері Management API ішінде Admin API Key арқылы қолжетімді. https://platform.openai.com/settings/organization/admin-keys (әдеттегі API кілтін пайдаланбаңыз). Admin API кілттері ұйым иелеріне қолжетімді.
Сыртқы кілттерді жасау немесе жою үшін
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 конфигурацияңыз ұйым деңгейінде жаңа endpoint https://api.openai.com/v1/organization/external_keys арқылы тіркеледі
EKM конфигурациясын тіркегенде, extkey_xxxx пішіміндегі external_key_id қайтарылады
EKM конфигурациялары қолданыстағы Create Project endpoint https://api.openai.com/v1/organization/projects денесінде external_key_id беру арқылы жоба деңгейінде белсендіріледі
Шектеулер
Алдымен Management API арқылы EKM-ді жаңа жобада сынауыңыз керек.
EKM жұмыс жүктемелері үшін жаңа жобаларды іске қосуды ұсынамыз. Дегенмен, EKM-ді қолданыстағы жобада пайдаланғыңыз келсе, біз сізді feature flag-ке қоса аламыз. EKM-ді қолданыстағы өндірістік жобаларыңызға енгізбес бұрын, мына үздік практикаларды ескеріңіз.
Өндірісте пайдаланатын барлық API мүмкіндіктерін алдымен сынақ EKM API жобаңызда тексеріңіз
EKM-ді барлық өндірістік API жобаларына бірден қосудың орнына, кезең-кезеңімен енгізіңіз
Ұйым деңгейіндегі endpoints
Ұйымыңызда сыртқы кілтті тіркеу
AWS
Үлгі сұрау
type: string - әрқашан “aws”
name: string - конфигурацияңызға арналған түсінікті атау
role_arn: string - OpenAI бұлтыңызда assume ететін Role ARN
kms_arn: string - сіз басқаратын негізгі кілтке арналған Key Management System ARN
external_id: string - ұйым ID-іңіз немесе API жоба 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 - конфигурацияңызға арналған түсінікті атау
workload_identity_project_number: string - OpenAI workload identity-ін тіркеген GCP жобасының 12 таңбалы нөмірі
workload_identity_pool_id: string - OpenAI үшін тіркеген Workload Identity провайдері бар pool
workload_identity_provider_id: string - OpenAI үшін тіркеген Workload Identity провайдері
audience: string - GCP STS арқылы рөлді assume еткенде OpenAI токенде жіберуі тиіс audience
kms_project_id: string - KMS орналасқан GCP жобаңыздың атауы
kms_key_ring_name: string - сіз басқаратын негізгі кілтті қамтитын Key Management System key ring
kms_key_name: string - Key Management System негізгі кілтінің атауы
kms_key_location: string - Key Management System негізгі кілті орналасқан өңір
Егер KMS-іңіз OpenAI Workload Identity-ін тіркеген жобадан басқа GCP жобасында орналасса, OpenAI Workload Identity-і бар жобада кемінде KMS қосулы екеніне көз жеткізіңіз: 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 - конфигурацияңызға арналған түсінікті атау
tenant_id: string - Azure tenant UUID-іңіз
vault_uri: string - сіз басқаратын негізгі кілтті қамтитын Azure қоймасының URI-і
key_name: string - сіз басқаратын Azure Key Vault негізгі кілтінің атауы.
Ол <org-xxx>--<any_name> пішімінде болуы керек
мұндағы org-xxx — OpenAI ұйымыңыздың ID-і, оны мына жерден таба аласыз: 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"
}'Үлгі жауап
{
"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"
}Ұйымыңызда тіркелген сыртқы кілтті жою
Ескертпе: сыртқы кілт ешбір белсенді API жобасымен немесе жұмыс кеңістігімен байланыстырылмаған болса ғана оны жоя аласыз. Егер ол белсенді API жобасымен байланыстырылған болса, алдымен сол жобаны архивтеңіз. Егер ол жұмыс кеңістігімен байланыстырылған болса, кілтті жою мүмкін емес.
Үлгі сұрау
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 арқылы бірнеше нәрсені тексеруге болады
Өзгерістер енгізгеннен кейін сыртқы бұлт конфигурацияңыз OpenAI үшін әлі де жарамды екенін (сәтті жауапты көресіз)
Кілтті қайтарып алу дұрыс орындалғанын, OpenAI оны өңдеп жатқанын және ол 1 сағаттық кэш TTL мерзімдері аяқталғаннан кейін күшіне енетінін (қате жауабын көресіз)
Үлгі сұрау
curl -X POST -H "Authorization: Bearer $TOKEN"
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"Үлгі жауап
{
"status": "success"
}Немесе бұлт провайдерінен шыққан қате.
Жоба деңгейіндегі endpoints
Сыртқы кілт ID-і бар жаңа жоба жасау
Бұл қолданыстағы Create Project endpoint-пен бірдей, тек сұрау мен жауапқа external_key_id параметрі қосылады.
Үлгі сұрау
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,
}[Шектеулі] Бар жобаны сыртқы кілт ID-імен жаңарту
Бұл қолданыстағы Update Project endpoint-пен бірдей, тек сұрау мен жауапқа external_key_id параметрі қосылады.
EKM жұмыс жүктемелері үшін жаңа API жобаларын іске қосуды ұсынамыз. Барлық қолданыстағы API жобаларыңызда EKM қажет болса, аккаунт директорыңызға хабарласыңыз, біз сізді feature flag-ке қосамыз. EKM-ді қолданыстағы өндірістік жобаларыңызға енгізбес бұрын, мына үздік практикаларды ескеріңіз.
Өндірісте пайдаланатын барлық API мүмкіндіктерін алдымен сынақ EKM API жобаңызда тексеріңіз
EKM-ді барлық өндірістік API жобаларына бірден қосудың орнына, кезең-кезеңімен енгізіңіз
Үлгі сұрау
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"
}'Ұйымыңыздағы барлық жобаларды тізімдеу
Бұл қолданыстағы endpoint-пен бірдей, тек API жауабына 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
}