OpenAI
Ukurasa huu ulitafsiriwa na mashine. Tazama makala asili ya Kiingereza.

EKM (Funguo za Nje) katika API ya Usimamizi

Jifunze jinsi ya kusimamia funguo za nje za EKM kwa kutumia API ya Usimamizi.

Ilisasishwa: 7 days ago

Muhtasari

Ufikiaji

  • Miisho ya EKM inapatikana kwenye API ya Usimamizi kwa kutumia Ufunguo wa API wa Msimamizi. https://platform.openai.com/settings/organization/admin-keys (usitumie ufunguo wa kawaida wa API). Funguo za API za Msimamizi zinapatikana kwa wamiliki wa shirika.

  • Tumia api.external_keys.write kuunda au kufuta funguo za nje, na api.external_keys.read kuorodhesha au kuthibitisha uhalali wa funguo za nje. Ufunguo mmoja unahitaji ruhusa zote mbili ikiwa tu unapaswa kusoma na kuandika.

  • Kwa sasa, tunahitaji kuwasha kipengele hiki kwa shirika lako ili liweze kufikia miisho hii. Utajua kuwa kipengele kimewashwa ukiona external_key_id ikirejeshwa na mwisho uliopo wa Kuorodhesha Miradi: https://api.openai.com/v1/organization/projects.

Matumizi

Vikwazo

  • Lazima kwanza ujaribu EKM kwenye mradi mpya kupitia API ya Usimamizi.

  • Tunapendekeza uunde miradi mipya kwa ajili ya kazi zako za EKM. Hata hivyo, ikiwa unataka EKM kwenye mradi uliopo, tunaweza kukuwashia kipengele hiki. Tafadhali zingatia mbinu bora zifuatazo kabla ya kuanza kutumia EKM kwenye miradi yako iliyopo inayotumika katika mazingira halisi.

    • Kwanza, jaribu vipengele vyote vya API unavyotumia katika mazingira halisi kwenye mradi wako wa majaribio wa API wenye EKM.

    • Anza kutumia EKM hatua kwa hatua badala ya kuiweka kwenye miradi yote ya API inayotumika katika mazingira halisi kwa wakati mmoja.

endpoints za kiwango cha shirika

Sajili ufunguo wa nje kwenye shirika lako

AWS

Mfano wa ombi:

  • type: mfuatano wa herufi - daima “aws”

  • name: mfuatano wa herufi - Jina rahisi kutambua la usanidi wako

  • role_arn: mfuatano wa herufi - ARN ya jukumu ambalo OpenAI itachukua katika mazingira yako ya wingu

  • kms_arn: mfuatano wa herufi - ARN ya Mfumo wa Usimamizi wa Funguo ya ufunguo mkuu unaosimamia

  • external_id: mfuatano wa herufi - Kitambulisho cha Shirika lako au kitambulisho cha mradi wa API

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>"
}'

Mfano wa jibu:

{
"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

Mfano wa ombi:

  • type: mfuatano wa herufi - daima “gcp”,

  • name: mfuatano wa herufi - Jina rahisi kutambua la usanidi wako

  • workload_identity_project_number: mfuatano wa herufi - Nambari ya mradi wa GCP ambamo ulisajili utambulisho wa kazi wa OpenAI

  • workload_identity_pool_id: mfuatano wa herufi - Kundi lenye mtoa huduma wa Workload Identity uliyemsajili kwa ajili ya OpenAI

  • workload_identity_provider_id: mfuatano wa herufi - Mtoa huduma wa Workload Identity uliyemsajili kwa ajili ya OpenAI

  • audience: mfuatano wa herufi - Mpokeaji lengwa ambaye OpenAI inapaswa kubainisha kwenye tokeni tunapochukua jukumu kupitia GCP STS yako

  • kms_project_id: mfuatano wa herufi - Jina la mradi wa GCP ambamo KMS yako ipo

  • kms_key_ring_name: mfuatano wa herufi - Kundi la funguo katika Mfumo wa Usimamizi wa Funguo lenye ufunguo mkuu unaosimamia

  • kms_key_name: mfuatano wa herufi - Jina la ufunguo mkuu wa Mfumo wa Usimamizi wa Funguo

  • kms_key_location: mfuatano wa herufi - Eneo ambako ufunguo wako mkuu wa Mfumo wa Usimamizi wa Funguo upo

Ikiwa KMS yako ipo katika mradi tofauti wa GCP na ule ambamo ulisajili Workload Identity ya OpenAI, hakikisha kuwa angalau KMS imewashwa kwenye mradi wenye Workload Identity ya OpenAI kwa kwenda kwenye 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"
}'

Mfano wa jibu:

{
"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

Mfano wa ombi:

  • type: mfuatano wa herufi - daima “azure”,

  • name: mfuatano wa herufi - Jina rahisi kutambua la usanidi wako

  • tenant_id: mfuatano wa herufi - UUID ya mpangaji wako wa Azure

  • vault_uri: mfuatano wa herufi - URI ya hifadhi salama ya Azure yenye ufunguo mkuu unaosimamia

  • key_name: mfuatano wa herufi - Jina la ufunguo mkuu wa Azure Key Vault unaosimamia.

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"
}'

Mfano wa jibu:

{
"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"
}

Futa ufunguo wa nje uliosajiliwa katika shirika lako

Kumbuka: Unaweza kufuta ufunguo wa nje ikiwa tu haujahusishwa na mradi wowote wa API unaotumika au eneokazi. Ikiwa umehusishwa na mradi wa API unaotumika, weka mradi huo kwenye kumbukumbu kwanza. Ikiwa umehusishwa na eneokazi, ufunguo hauwezi kufutwa.

Mfano wa ombi

curl -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxxx"

Mfano wa jibu

{
"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>"
}

Pata funguo za nje zilizosajiliwa katika shirika lako

Mfano wa ombi

curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys"

Mfano wa jibu

{
"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"
}

Thibitisha uhalali wa ufunguo wa nje

Unaweza kutumia mwisho huu kukagua mambo kadhaa:

  • Usanidi wako wa wingu la nje bado ni halali kwa OpenAI baada ya kufanya mabadiliko (utaona jibu linaloonyesha mafanikio).

  • Ubatilishaji wa ufunguo wako umefanywa ipasavyo, unachakatwa na OpenAI, na utaanza kutumika baada ya muda wa kuhifadhi data kwenye kache (TTL) wa saa 1 kuisha (utaona jibu la hitilafu).

Mfano wa ombi

curl -X POST -H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"

Mfano wa jibu

{
"status": "success"
}

Au, hitilafu iliyotolewa na mtoa huduma wa cloud.

endpoints za kiwango cha mradi

Unda mradi mpya kwa kutumia kitambulisho cha ufunguo wa nje

Huu ni sawa na mwisho uliopo wa Kuunda Mradi, lakini kigezo cha external_key_id kimeongezwa kwenye ombi na jibu.

Mfano wa ombi

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"
}'

Mfano wa jibu

{
"object": "organization.project",
"id": "proj_xxxxx",
"name": "Some Project",
"external_key_id": "extkey_xxxx",
"created_at": 1740012721,
"archived_at": null,
"status": "active"
}

[Ufikiaji umezuiwa] Sasisha mradi uliopo kwa kutumia kitambulisho cha ufunguo wa nje

Huu ni sawa na mwisho uliopo wa Kusasisha Mradi, lakini kigezo cha external_key_id kimeongezwa kwenye ombi na jibu.

Tunapendekeza uunde miradi mipya ya API kwa ajili ya kazi zako za EKM. Ikiwa unataka EKM kwenye miradi yako yote iliyopo ya API, mwombe mkurugenzi wa akaunti yako nasi tutakuwashia kipengele hiki. Tafadhali zingatia mbinu bora zifuatazo kabla ya kuanza kutumia EKM kwenye miradi yako iliyopo inayotumika katika mazingira halisi.

  • Kwanza, jaribu vipengele vyote vya API unavyotumia katika mazingira halisi kwenye mradi wako wa majaribio wa API wenye EKM.

  • Anza kutumia EKM hatua kwa hatua badala ya kuiweka kwenye miradi yote ya API inayotumika katika mazingira halisi kwa wakati mmoja.

Mfano wa ombi

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"
}'

Orodhesha miradi yote katika shirika lako

Huu ni sawa na mwisho uliopo, lakini external_key_id imeongezwa kwenye jibu la API.

Mfano wa ombi

curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects"

Mfano wa jibu

{
"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
}

Je, makala haya yamekusaidia?