OpenAI

OpenAI / GCP EKM एकीकरण निर्देश

GCP को प्रोविज़न करने और EKM को सक्रिय करने के लिए क्रमिक निर्देश

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

अवलोकन

एंटरप्राइज़ की मैनेजमेंट (EKM) OpenAI को आपके नियंत्रण में मास्टर की का उपयोग करके डेटा एन्क्रिप्ट करने की अनुमति देता है. यह दस्तावेज़ दिखाता है कि अपने KMS पर OpenAI को सीमित परमिशन्स देने के लिए अपने GCP अकाउंट को कैसे सेट अप करें.

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

कदम

1. OpenAI के लिए फेडरेटेड आइडेंटिटी बनाएँ

OpenAI एक OpenAI-स्वामित्व वाले GCP अकाउंट से एक पहचान टोकन जारी करेगा, जो इस प्रकार दिखेगा.

  • azp और sub, GCP में OpenAI की सर्विस अकाउंट आईडी हैं.

  • aud आपका OpenAI संगठन आईडी है. आप कोई दूसरा ऑडियंस भी चुन सकते हैं, जैसे कि आपका OpenAI प्रोजेक्ट आईडी - नीचे दिए गए निर्देश देखें.

{
  "aud": "org-xxxx",
  "azp": "105900137572174660365",
  "exp": 1747876928,
  "iat": 1747873328,
  "iss": "https://accounts.google.com",
  "sub": "105900137572174660365"
}

यह चरण उस आइडेंटिटी टोकन द्वारा किए गए क्लेम्स को पहचानता है और आपके GCP STS को एक्सेस टोकन जारी करने में सक्षम बनाता है, जब वह आइडेंटिटी टोकन प्रदान किया जाता है.

  1. Go IAM & Admin -> Workload Identity Federation पर जाएं और Create Pool

    पर क्लिक करें.

    GCP IAM & Admin with Workload Identity Federation selected
  2. आइडेंटिटी पूल बनाएंचरण में, पूल नामके लिए कुछ भी दर्ज करें.

    1. इसे बाद के लिए याद रखें - आपको इसे OpenAI के साथ रजिस्टर करना होगा.

  3. चरण पूल में प्रोवाइडर जोड़ने में:

    1. ‘Select a provider’ में, OpenID Connect (OIDC)चुनें.

    2. प्रदाता नाम के लिए कुछ भी दर्ज करें.

    3. Issuer (URL) अनुभाग में https://accounts.google.comदर्ज करें

    4. ऑडियंस अनुभाग में

      1. अनुमत दर्शकचुनें

      2. वह ऑडियंस दर्ज करें जिसे OpenAI को इंगित करना चाहिए जब हम आपको एक टोकन देते हैं।

        1. ChatGPT या API के लिए: आप OpenAI API organization ID (org-xxx) दर्ज कर सकते हैं.

        2. API के लिए: अधिक बारीकी के लिए आप एक विशिष्ट API प्रोजेक्ट id डाल सकते हैं.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. एट्रिब्यूट मैपिंग अनुभाग में

      1. google.subject के लिए assertion.sub

        दर्ज करें

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. एट्रिब्यूट कंडीशन्स सेक्शन में

      1. कोड में assertion.sub == "105900137572174660365"डालें

  4. अब आपको https://console.cloud.google.com/iam-admin/workload-identity-pools पर अपना वर्कलोड आइडेंटिटी पूल और वर्कलोड आइडेंटिटी प्रोवाइडर सूचीबद्ध दिखाई देना चाहिए. पेज

    1. वर्कलोड आइडेंटिटी पूल ID

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. वर्कलोड आइडेंटिटी प्रोवाइडर आईडी

      GCP Workload Identity Provider edit page with the provider ID field highlighted

2. सुनिश्चित करें कि KMS सक्षम है

Go https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview KMS को सक्षम करने के लिए. जिस GCP प्रोजेक्ट में आपने OpenAI की federated identity को पहचाना है, उसी में अपना KMS बनाना आपके लिए आवश्यक नहीं है; हालांकि, अगर प्रोजेक्ट अलग-अलग हैं, तो KMS प्रोडक्ट कम-से-कम दोनों प्रोजेक्ट में सक्षम होना चाहिए.

3. एक नई KMS कुंजीबनाएं

  1. Go सुरक्षा -> डेटा सुरक्षा > कुंजी प्रबंधन

  2. ओवरव्यू टैब के तहत Create key ringपर क्लिक करें

    1. अपनी कुंजी रिंग के लिए कोई भी नाम चुनें

    2. उद्देश्य और एल्गोरिदम के लिए, Symmetric encrypt/decrypt

      चुनें.

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. एक बार जब आप Key Rings बना लेते हैं, तो वह Key Rings टैब में सूचीबद्ध होनी चाहिए. Key Ring पर क्लिक करें।

    4. की रिंग के विवरण में, कुंजी बनाएँपर क्लिक करें.

      1. अपनी कुंजी के लिए कोई भी नाम चुनें

चार. KMS पर एन्क्रिप्ट/डिक्रिप्ट ऑपरेशनों के लिए एक सीमित भूमिका बनाएँ.

  1. Go IAM & एडमिन -> रोल्स -> रोल बनाएँ

  2. रोल टाइटल और ID के लिए कुछ भी दर्ज करें.

  3. Add Permissions पर क्लिक करें, फिर निम्नलिखित को जोड़ें.

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. असाइन करें एन्क्रिप्ट/डिक्रिप्ट ऑपरेशनों के लिए OpenAI की फ़ेडरेटेड आइडेंटिटी को सीमित KMS रोल पर

  1. Go सुरक्षा -> डेटा सुरक्षा > कुंजी प्रबंधन

  2. अपने Key Ring के नाम पर क्लिक करें, फिर अपने Key के नाम पर क्लिक करके अपने की विवरण पृष्ठ पर जाएँ.

    1. अगर आपके पास यह नहीं है, तो KMS बनाएंसेक्शन पर वापस जाएं

  3. Permissions टैब पर क्लिक करो, फिर Grant Access

    बटन पर क्लिक करो

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. OpenAI फ़ेडरेटेड पहचान को उस कस्टम भूमिका पर असाइन करें, जिसे आपने पहले बनाया था.

    1. Add principals सेक्शन के लिए, यह दर्ज करें: principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. YOUR_GCP_PROJECT_NUMBER वह प्रोजेक्ट है जिसमें आपने YOUR_GCP_WORKLOAD_IDENTITY_POOL बनाकर OpenAI की फ़ेडरेटेड आइडेंटिटी को मान्यता दी है. यह उसी प्रोजेक्ट में हो सकता है जहाँ आपका KMS स्थित है, लेकिन ऐसा होना ज़रूरी नहीं है.

      2. अगर प्रोजेक्ट अलग-अलग हैं, तो https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overviewपर जाकर यह पक्का करें कि दूसरे प्रोजेक्ट पर कम से कम KMS चालू है.

    2. भूमिकाएँ असाइन करें अनुभाग में, सीमित EKM अनुमतियों के लिए पिछले चरण में बनाई गई कस्टम भूमिका चुनें

छह. अपनी सुरक्षा प्रथाओं के अनुरूप कोई भी अतिरिक्त प्रतिबंध लागू करें.

ऊपर दी गई न्यूनतम आवश्यक जानकारी OpenAI को EKM सेट अप करने के लिए चाहिए. आप अपनी आंतरिक सुरक्षा प्रथाओं के अनुरूप अतिरिक्त key policies या restrictions लागू करने के लिए स्वतंत्र हैं, बशर्ते OpenAI आपके KMS पर encrypt और decrypt operations को कॉल कर सके. जब आप नीचे वर्णित OpenAI के एंडपॉइंट को कॉल करते हैं, तो हम आपके सेटअप को वैलिडेट करेंगे.

ऊपर दिए गए चरणों को पूरा करने के बाद

ChatGPT Enterprise

कृपया अपने OpenAI संपर्क से बात करें और निम्नलिखित जानकारी साझा करें:

  • "वर्कलोड_पहचान_प्रोजेक्ट_संख्या": "123456789012",

    • वह 12-अंकों वाला GCP प्रोजेक्ट नंबर, जहां आपने OpenAI की वर्कलोड आइडेंटिटी पंजीकृत की थी.

  • “वर्कलोड_आइडेंटिटी_पूल_आईडी”: “openai-azure”,

    • वह पूल जिसमें वह Workload Identity प्रोवाइडर शामिल है जिसे आपने OpenAI के लिए पंजीकृत किया था.

  • "वर्कलोड_पहचान_प्रदाता_id": "openai-ekm-service-role",

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

  • "kms_project_id": "adjective-noun-12345",

    • उस GCP प्रोजेक्ट का नाम जहाँ आपका KMS स्थित है.

  • "kms_key_name": "openai-kms-key",

    • की मैनेजमेंट सिस्टम मास्टर की का नाम

  • "kms_कुंजी_रिंग_नाम": "openai-kms-key-ring",

    • की प्रबंधन प्रणाली की वह की रिंग जिसमें वह मुख्य कुंजी शामिल है जिसे आप प्रबंधित करते हैं

  • "kms_कुंजी_स्थान": "us-east1"

    • वह क्षेत्र जहां आपकी Key Management System मास्टर कुंजी स्थित है.

हम आपके ChatGPT संगठन/वर्कस्पेस के लिए EKM सक्षम करेंगे.

API

अपनी External Key को OpenAI के साथ पंजीकृत करें.

इस API रेफ़रंस में दिए गए निर्देशों का पालन करें Management API में बाहरी कुंजियाँ

  • सबसे पहले, अपनी बाहरी कुंजी को OpenAI संगठन स्तर पर पंजीकृत करें, जिससे एक बाहरी कुंजी आईडी जनरेट होगी.

  • इस चरण में, हम यह जांचकर कि हम आपके KMS में ऑथ कर सकते हैं, GCP पर आपका सेटअप सत्यापित करेंगे.

  • यह अभी आपके OpenAI प्रोजेक्ट में EKM नहीं जोड़ेगा.

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

फिर, बाहरी कुंजी से संबद्ध एक OpenAI प्रोजेक्ट बनाएं. इसके बाद, आपके प्रोजेक्ट पर EKM सक्रिय हो जाता है.

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"

}'

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