ማጠቃለያ
መዳረሻ
የEKM መጨረሻ ነጥቦችን በአስተዳደር API ውስጥ የአስተዳዳሪ API ቁልፍ በመጠቀም ማግኘት ይቻላል። https://platform.openai.com/settings/organization/admin-keys (መደበኛ የAPI ቁልፍ አይጠቀሙ)። የአስተዳዳሪ API ቁልፎች ለድርጅት ባለቤቶች ይገኛሉ።
ውጫዊ ቁልፎችን ለመፍጠር ወይም ለመሰረዝ
api.external_keys.write፣ ለመዘርዘር ወይም ትክክለኛነታቸውን ለማረጋገጥ ደግሞapi.external_keys.readይጠቀሙ። አንድ ቁልፍ ሁለቱንም የፈቃድ ወሰኖች የሚፈልገው የማንበብና የመጻፍ ስራዎችን ሁለቱንም ማከናወን ሲኖርበት ብቻ ነው።በአሁኑ ጊዜ ድርጅትዎ እነዚህን መጨረሻ ነጥቦች እንዲጠቀም የባህሪ ማንቂያውን ልናበራለት ያስፈልጋል። አሁን ካለው ፕሮጀክቶችን የመዘርዘር መጨረሻ ነጥብ፣ https://api.openai.com/v1/organization/projects፣ በሚመለሰው ምላሽ ውስጥ external_key_id ካዩ የባህሪ ማንቂያው እንደበራልዎ ማወቅ ይችላሉ።
አጠቃቀም
የEKM ውቅርዎ በአዲሱ https://api.openai.com/v1/organization/external_keys መጨረሻ ነጥብ በኩል በድርጅት ደረጃ ይመዘገባል።
የEKM ውቅርዎን ሲመዘግቡ፣ external_key_id በextkey_xxxx ቅርጽ ይመለሳል።
አሁን ወዳለው ፕሮጀክት የመፍጠር መጨረሻ ነጥብ፣ https://api.openai.com/v1/organization/projects፣ በሚላከው የጥያቄ አካል ውስጥ external_key_id በማካተት፣ የEKM ውቅሮች በፕሮጀክት ደረጃ እንዲሰሩ ይደረጋሉ።
ገደቦች
መጀመሪያ EKMን በአስተዳደር API በኩል በአዲስ ፕሮጀክት ላይ መሞከር አለብዎት።
EKM ለሚጠቀሙ ስራዎችዎ አዲስ ፕሮጀክቶችን እንዲፈጥሩ እንመክራለን። ሆኖም፣ EKMን በነባር ፕሮጀክት ላይ መጠቀም ከፈለጉ፣ የባህሪ ማንቂያውን ልናበራልዎ እንችላለን። EKMን በአሁኑ ጊዜ በስራ ላይ ባሉ ፕሮጀክቶችዎ ላይ ከማስተግበርዎ በፊት እባክዎ የሚከተሉትን የተመከሩ አሠራሮች ልብ ይበሉ።
በቀጥታ በስራ ላይ የሚጠቀሙባቸውን ሁሉንም የAPI ባህሪያት መጀመሪያ በሙከራ የEKM API ፕሮጀክትዎ ውስጥ ይፈትሹ።
EKMን በስራ ላይ ባሉ ሁሉም የAPI ፕሮጀክቶች ላይ በአንድ ጊዜ ከማስተግበር ይልቅ፣ በደረጃ ያስተግብሩት።
በድርጅት ደረጃ endpoints
በድርጅትዎ ላይ ውጫዊ key ይመዝግቡ
AWS
የጥያቄ ምሳሌ፦
type: ሕብረቁምፊ - ሁልጊዜ “aws”
name: ሕብረቁምፊ - ለውቅርዎ በቀላሉ የሚለይ ስም
role_arn: ሕብረቁምፊ - OpenAI በደመና አካባቢዎ ውስጥ የሚወስደው ሚና ARN
kms_arn: ሕብረቁምፊ - ለሚያስተዳድሩት ዋና ቁልፍ የቁልፍ አስተዳደር ስርዓት ARN
external_id: ሕብረቁምፊ - የእርስዎ የድርጅት መታወቂያ ወይም የ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>"
}'የምላሽ ምሳሌ፦
{
"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: ሕብረቁምፊ - ሁልጊዜ “gcp”፣
name: ሕብረቁምፊ - ለውቅርዎ በቀላሉ የሚለይ ስም
workload_identity_project_number: ሕብረቁምፊ - የOpenAI የስራ ማንነትን የመዘገቡበት የGCP ፕሮጀክት በአሃዞች የተጻፈ ቁጥር
workload_identity_pool_id: ሕብረቁምፊ - ለOpenAI የመዘገቡትን የስራ ማንነት አቅራቢ የያዘው ስብስብ
workload_identity_provider_id: ሕብረቁምፊ - ለOpenAI የመዘገቡት የስራ ማንነት አቅራቢ
audience: ሕብረቁምፊ - OpenAI በእርስዎ GCP STS በኩል ሚና ሲወስድ፣ በማረጋገጫ ምልክቱ ውስጥ ማካተት ያለበት የታለመ ተቀባይ
kms_project_id: ሕብረቁምፊ - KMSዎ የሚገኝበት የGCP ፕሮጀክት ስም
kms_key_ring_name: ሕብረቁምፊ - የሚያስተዳድሩትን ዋና ቁልፍ የያዘው የቁልፍ አስተዳደር ስርዓት የቁልፍ ስብስብ
kms_key_name: ሕብረቁምፊ - የቁልፍ አስተዳደር ስርዓቱ ዋና ቁልፍ ስም
kms_key_location: ሕብረቁምፊ - የቁልፍ አስተዳደር ስርዓትዎ ዋና ቁልፍ የሚገኝበት ክልል
KMSዎ የOpenAI የስራ ማንነትን ከመዘገቡበት የተለየ የGCP ፕሮጀክት ውስጥ ከሆነ፣ ወደ https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview በመሄድ የOpenAI የስራ ማንነት ባለበት ፕሮጀክት ውስጥ ቢያንስ 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"
}'የምላሽ ምሳሌ፦
{
"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: ሕብረቁምፊ - ሁልጊዜ “azure”፣
name: ሕብረቁምፊ - ለውቅርዎ በቀላሉ የሚለይ ስም
tenant_id: ሕብረቁምፊ - የAzure ተከራይዎ UUID
vault_uri: ሕብረቁምፊ - የሚያስተዳድሩትን ዋና ቁልፍ የያዘው የAzure ማከማቻ URI
key_name: ሕብረቁምፊ - የሚያስተዳድሩት የAzure Key Vault ዋና ቁልፍ ስም።
ቅርጹ <org-xxx>--<any_name> መሆን አለበት
እዚህ org-xxx በhttps://platform.openai.com/settings/organization/general ላይ ማግኘት የሚችሉት የOpenAI የድርጅት መታወቂያዎ ነው።
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"
}የውጫዊ ቁልፍን ትክክለኛነት ያረጋግጡ
ይህን መጨረሻ ነጥብ በመጠቀም የሚከተሉትን ማረጋገጥ ይችላሉ፦
ለውጦችን ካደረጉ በኋላ የውጫዊ ደመና ውቅርዎ አሁንም ከOpenAI ጋር በትክክል እንደሚሰራ (ስኬትን የሚያመለክት ምላሽ ያያሉ)።
የቁልፍዎ ስረዛ በትክክል እንደተከናወነ፣ OpenAI በማስኬድ ላይ እንደሆነ እና የመሸጎጫው የ1 ሰዓት የቆይታ ጊዜዎች (TTL) ካበቁ በኋላ ተግባራዊ እንደሚሆን (የስህተት ምላሽ ያያሉ)።
የጥያቄ ምሳሌ
curl -X POST -H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"የምላሽ ምሳሌ
{
"status": "success"
}ወይም ከcloud provider የወጣ ስህተት።
በፕሮጀክት ደረጃ endpoints
በውጫዊ ቁልፍ መታወቂያ አዲስ ፕሮጀክት ይፍጠሩ
ይህ አሁን ካለው ፕሮጀክት የመፍጠር መጨረሻ ነጥብ ጋር ተመሳሳይ ነው፤ ልዩነቱ በጥያቄውና በምላሹ ውስጥ የ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": "organization.project",
"id": "proj_xxxxx",
"name": "Some Project",
"external_key_id": "extkey_xxxx",
"created_at": 1740012721,
"archived_at": null,
"status": "active"
}[የተገደበ] ያለውን ፕሮጀክት በውጫዊ ቁልፍ መታወቂያ ያዘምኑ
ይህ አሁን ካለው ፕሮጀክትን የማዘመን መጨረሻ ነጥብ ጋር ተመሳሳይ ነው፤ ልዩነቱ በጥያቄውና በምላሹ ውስጥ የexternal_key_id ግቤት መጨመሩ ብቻ ነው።
EKM ለሚጠቀሙ ስራዎችዎ አዲስ የAPI ፕሮጀክቶችን እንዲፈጥሩ እንመክራለን። EKMን በሁሉም ነባር የAPI ፕሮጀክቶችዎ ላይ መጠቀም ከፈለጉ፣ የመለያዎን ኃላፊ ይጠይቁ፤ የባህሪ ማንቂያውን እናበራልዎታለን። 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"
}'በድርጅትዎ ያሉትን ሁሉንም ፕሮጀክቶች ይዘርዝሩ
ይህ አሁን ካለው መጨረሻ ነጥብ ጋር ተመሳሳይ ነው፤ ልዩነቱ በ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
}