OpenAI
Бұл бет машиналық аударма арқылы жасалған. Түпнұсқа ағылшын мақаласын қараңыз.

Management API-дегі EKM (Сыртқы кілттер)

Management API арқылы EKM үшін сыртқы кілттерді басқарыңыз

Жаңартылған: 7 days ago

Қорытынды

Қолжетімділік

  • 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 негізгі кілтінің атауы.

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
}

Бұл мақала пайдалы болды ма?