OpenAI

Management API में EKM (External Keys)

मैनेजमेंट API का उपयोग करके EKM के लिए बाहरी कीज़ को प्रबंधित करना सीखें.

अपडेट किया गया: 6 hours ago

सारांश

एक्सेस

  • EKM एंडपॉइंट मैनेजमेंट API में एडमिन API की से एक्सेस किए जा सकते हैं. https://platform.openai.com/settings/organization/admin-keys (सामान्य API की का उपयोग न करें). एडमिन API कीज़ संगठन के मालिकों के लिए उपलब्ध हैं.

  • बाहरी की बनाने या डिलीट करने के लिए api.external_keys.write का उपयोग करें, और बाहरी की को सूचीबद्ध करने या मान्य करने के लिए api.external_keys.read का उपयोग करें. किसी एक कुंजी को दोनों स्कोप्स की आवश्यकता केवल तभी होती है, जब उसे पढ़ने और लिखने, दोनों तरह के ऑपरेशन करने हों.

  • फ़िलहाल हमें आपके संगठन को इन एंडपॉइंट में फ़ीचर फ़्लैग करना है. अगर आपको मौजूदा List Projects एंडपॉइंट से external_key_id रिटर्न होता दिखे, तो समझें कि आपके पास फ़ीचर फ़्लैग है: https://api.openai.com/v1/organization/projects.

यूज़

  • आपका EKM कॉन्फ़िगरेशन एक नए एंडपॉइंट के ज़रिए ऑर्गनाइज़ेशन स्तर पर रजिस्टर किया गया है https://api.openai.com/v1/organization/external_keys.

  • EKM कॉन्फ़िगरेशन को रजिस्टर करने पर extkey_xxxx के रूप में एक external_key_id प्राप्त होता है.

  • EKM कॉन्फ़िगरेशन मौजूदा Create Project https://api.openai.com/v1/organization/projects के बॉडी में external_key_id पास करके प्रोजेक्ट स्तर पर सक्रिय किए जाते हैं. एंडपॉइंट.

प्रतिबंध

  • आपको पहले Management API के ज़रिए EKM को नए प्रोजेक्ट पर टेस्ट करना होगा.

  • हम आपके EKM वर्कलोड्स के लिए नए प्रोजेक्ट शुरू करने की सलाह देते हैं. हालांकि, अगर आप किसी मौजूदा प्रोजेक्ट पर EKM चाहते हैं, तो हम आपको फीचर फ्लैग में जोड़ सकते हैं. कृपया अपने मौजूदा प्रोडक्शन प्रोजेक्ट्स में EKM लागू करने से पहले निम्नलिखित सर्वोत्तम प्रथाओं पर ध्यान दें.

    • प्रोडक्शन में जिन सभी API फीचर्स का आप उपयोग करते हैं, उन्हें पहले अपने टेस्ट EKM API प्रोजेक्ट में जांचें.

    • सभी प्रोडक्शन API प्रोजेक्ट्स में EKM को एक साथ पॉप्युलेट करने के बजाय क्रमिक रोलआउट को लागू करें.

संगठन-स्तरीय एंडपॉइंट

अपने संगठन में एक बाहरी कुंजी पंजीकृत करें

AWS

नमूना अनुरोध:

  • प्रकार: string - always “aws”

  • name: string - आपके कॉन्फ़िगरेशन के लिए एक सुविधाजनक नाम

  • role_arn: string - वह Role ARN जिसे OpenAI आपके क्लाउड में उपयोग करेगा

  • kms_arn: स्ट्रिंग - आपके द्वारा प्रबंधित मास्टर कुंजी के लिए Key Management System ARN

  • external_id: string - संगठन या 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

नमूना अनुरोध:

  • प्रकार: string - always "gcp",

  • name: string - आपके कॉन्फ़िगरेशन के लिए एक सुविधाजनक नाम

  • workload_identity_project_number: string - वह संख्यात्मक GCP प्रोजेक्ट नंबर जहां आपने OpenAI की वर्कलोड आइडेंटिटी पंजीकृत की थी

  • workload_identity_pool_id: स्ट्रिंग - वह पूल जिसमें वह वर्कलोड आइडेंटिटी प्रोवाइडर शामिल है जिसे आपने OpenAI के लिए रजिस्टर किया है

  • workload_identity_provider_id: स्ट्रिंग - वह वर्कलोड आइडेंटिटी प्रोवाइडर जिसे आपने OpenAI के लिए रजिस्टर किया है.

  • audience: string - वह ऑडियंस जिसे OpenAI आपके GCP STS के माध्यम से किसी भूमिका को अस्यूम करते समय टोकन में पास करना चाहिए

  • kms_project_id: स्ट्रिंग - वह GCP प्रोजेक्ट का नाम जहां आपका KMS मौजूद है

  • kms_key_ring_name: string - वह Key Management System कुंजी रिंग जिसमें वह मास्टर कुंजी शामिल है जिसे आप प्रबंधित करते हैं

  • kms_key_name: स्ट्रिंग - की मैनेजमेंट सिस्टम मास्टर कुंजी का नाम

  • kms_key_location: स्ट्रिंग - वह क्षेत्र जहाँ आपकी की मैनेजमेंट सिस्टम मास्टर कुंजी स्थित है

यदि आपका KMS उस GCP प्रोजेक्ट से अलग किसी अन्य GCP प्रोजेक्ट में है, जहाँ आपने OpenAI की Workload Identity को रजिस्टर किया है, तो https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview पर जाकर यह सुनिश्चित करें कि जिस प्रोजेक्ट में OpenAI की Workload Identity है, उसमें कम से कम 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

नमूना अनुरोध:

  • प्रकार: string - always "azure",

  • name: string - आपके कॉन्फ़िगरेशन के लिए एक सुविधाजनक नाम

  • tenant_id: string - आपके Azure टेनेंट का UUID

  • vault_uri: string - आपके द्वारा प्रबंधित मास्टर कुंजी वाले Azure vault का URI

  • key_name: string - Azure Key Vault मास्टर कुंजी का नाम, जिसे तुम प्रबंधित करते हो.

    • यह <org-xxx>--<any_name>के रूप में होना चाहिए.

    • जहाँ org-xxx तुम्हारी OpenAI ऑर्गेनाइजेशन आईडी है, जिसे तुम 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"
}

बाहरी कुंजी को सत्यापित करें

आप इस एंडपॉइंट का उपयोग कई चीज़ों की जांच के लिए कर सकते हैं:

  • आपके बदलाव करने के बाद भी आपका बाहरी क्लाउड कॉन्फ़िगरेशन OpenAI के साथ मान्य रहता है (आपको एक सफल प्रतिक्रिया दिखाई देगी).

  • आपकी की का निरस्तीकरण सही तरीके से पूरा हो गया है, इसे OpenAI द्वारा प्रोसेस किया जा रहा है, और यह एक घंटे के कैश TTLs समाप्त होने के बाद प्रभावी होगा (आपको एक एरर प्रतिक्रिया दिखाई देगी).

नमूना अनुरोध

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

नमूना जवाब

{
"status": "success"
}

या, क्लाउड प्रोवाइडर से कोई त्रुटि सामने आई.

प्रोजेक्ट-लेवल एंडपॉइंट

बाहरी कुंजी ID के साथ एक नया प्रोजेक्ट बनाएं

यह मौजूदा Create Project एंडपॉइंट के समान है, जिसमें अनुरोध और प्रतिक्रिया में 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"
}

[Restricted] मौजूदा प्रोजेक्ट को बाहरी key ID के साथ अपडेट करें

यह मौजूदा Update Project एंडपॉइंट के समान है, जिसमें अनुरोध और रिस्पॉन्स में external_key_id पैरामीटर जोड़ा गया है.

हम आपके EKM वर्कलोड्स के लिए नए API प्रोजेक्ट्स शुरू करने की सिफारिश करते हैं. अगर आप अपने सभी मौजूदा API प्रोजेक्ट्स पर EKM चाहते हैं, तो अपने अकाउंट डायरेक्टर से कहें और हम आपको feature flag में जोड़ देंगे. कृपया अपने मौजूदा प्रोडक्शन प्रोजेक्ट्स में EKM लागू करने से पहले निम्नलिखित सर्वोत्तम प्रथाओं पर ध्यान दें.

  • प्रोडक्शन में जिन सभी API फीचर्स का आप उपयोग करते हैं, उन्हें पहले अपने टेस्ट EKM API प्रोजेक्ट में जांचें.

  • सभी प्रोडक्शन API प्रोजेक्ट्स में EKM को एक साथ पॉप्युलेट करने के बजाय क्रमिक रोलआउट को लागू करें.

नमूना अनुरोध

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
}

क्या यह लेख मददगार था?