OpenAI

Management API में EKM (External Keys)

Management API का उपयोग करके EKM के लिए बाहरी कुंजियों को प्रबंधित करें

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

सारांश

एक्सेस

  • EKM एंडपॉइंट को Management API में Admin API Key के ज़रिए एक्सेस किया जा सकता है. 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 कॉन्फ़िग एक नए एंडपॉइंट के ज़रिए organization स्तर पर registered है https://api.openai.com/v1/organization/external_keys

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

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

प्रतिबंध

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

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

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

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

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

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

AWS

नमूना अनुरोध

  • type: string - हमेशा “aws”

  • name: string - आपके कॉन्फ़िगरेशन के लिए एक उपयुक्त नाम

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

  • kms_arn: string - आपके द्वारा प्रबंधित मास्टर कुंजी के लिए की मैनेजमेंट सिस्टम 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>
}'

उदाहरण जवाब

{
  "पहचान": "extkey_xxxx",
  "वस्तु": "organization.external_key",
  "निर्मित_पर": 1746175499,
  "एपीआई_प्रोजेक्ट_आईडी": [],
  "प्रकार": "aws",
  "नाम": "AWS EKM कॉन्फ़िग",
  "भूमिका_arn": "arn:aws:iam:::role/<ACCOUNT_NUMBER> <ROLE>",
  "kms_arn": "arn:aws:kms:::key/<REGION> <ACCOUNT_NUMBER><UUID>",
  "बाहरी_आईडी": <आपका संगठन आईडी या प्रोजेक्ट<your org id or project id> आईडी>
}  

GCP

नमूना अनुरोध

  • प्रकार: स्ट्रिंग - हमेशा “gcp”,

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

  • workload_identity_project_number: string - वह 12-अंकों वाला 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 कॉन्फ़िगरेशन",
   "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

नमूना अनुरोध

  • प्रकार: स्ट्रिंग - हमेशा "azure",

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

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

  • vault_uri: string - आपके द्वारा प्रबंधित मास्टर कुंजी वाले Azure vault का 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 '{
"प्रकार": "azure",
"नाम": "Azure EKM कॉन्फ़िगरेशन",
"किरायेदार_आईडी": "<UUID>",
"वॉल्ट_यूआरआई": "https://<VAULT_NAME>.vault.azure.net/",
  "कुंजी_नाम": "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"
}

अपने संगठन में रजिस्टर की गई बाहरी कुंजी हटाएं

नोट: आप किसी बाहरी कुंजी को केवल तभी हटा सकते हैं, जब वह किसी भी सक्रिय प्रोजेक्ट से जुड़ी न हो. अगर यह किसी सक्रिय प्रोजेक्ट से जुड़ा है, तो आपको पहले उस प्रोजेक्ट को संग्रहित करना होगा.

नमूना अनुरोध

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 घंटे के कैश 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": "कुछ प्रोजेक्ट",
"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,
}

[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 response में external_key_id जोड़ा गया है

नमूना अनुरोध

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

उदाहरण जवाब

{
  "ऑब्जेक्ट": "list",
  "डेटा": [
    {
      "ऑब्जेक्ट": "organization.project",
      "id": "proj_xxxx",
"नाम": "प्रोजेक्ट नाम",
"बाहरी_कुंजी_आईडी": "extkey_xxxx",
"निर्मित_पर": 1717798982,
"संग्रहीत_पर": null,
"स्थिति": "सक्रिय"
}
],
"प्रथम_आईडी": "proj_xxxx",
"अंतिम_आईडी": "proj_xxxx",
"अधिक_है": true
}

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