OpenAI
এই পেজটি মেশিন দিয়ে অনুবাদ করা হয়েছে। মূল ইংরেজি আর্টিকেল দেখুন

Management API-তে EKM (বাহ্যিক কী)

Management API ব্যবহার করে EKM-এর বাহ্যিক কী পরিচালনা করুন

আপডেট করা হয়েছে: 1 hour ago

সারাংশ

অ্যাক্সেস

  • EKM endpoints Management API-তে একটি Admin API কী ব্যবহার করে অ্যাক্সেস করা যায়. https://platform.openai.com/settings/organization/admin-keys (সাধারণ API কী ব্যবহার করবেন না). Admin API কী সংস্থার মালিকদের জন্য উপলভ্য.

  • বাহ্যিক কী তৈরি বা মুছতে api.external_keys.write ব্যবহার করুন, এবং বাহ্যিক কী তালিকাভুক্ত বা যাচাই করতে api.external_keys.read ব্যবহার করুন. একটি কী-এর উভয় স্কোপ দরকার হয় শুধু তখনই, যখন সেটিকে পড়া ও লেখা—দুই ধরনের অপারেশনই করতে হবে.

  • এই endpoints-এ আপনার সংস্থাকে অন্তর্ভুক্ত করতে বর্তমানে আমাদের ফিচার ফ্ল্যাগ চালু করতে হবে. আপনি যদি বিদ্যমান List Projects endpoint থেকে external_key_id ফেরত আসতে দেখেন, তাহলে বুঝবেন আপনার ফিচার ফ্ল্যাগ আছে: https://api.openai.com/v1/organization/projects

ব্যবহার

  • আপনার EKM কনফিগ একটি নতুন endpoint https://api.openai.com/v1/organization/external_keys এর মাধ্যমে সংস্থা স্তরে নিবন্ধিত হয়

  • আপনার EKM কনফিগ নিবন্ধন করলে extkey_xxxx ফরম্যাটে একটি external_key_id ফেরত আসে

  • বিদ্যমান Create Project https://api.openai.com/v1/organization/projects endpoint-এর বডিতে external_key_id পাঠিয়ে EKM কনফিগ প্রজেক্ট স্তরে সক্রিয় করা হয়

বিধিনিষেধ

  • Management API-এর মাধ্যমে আগে একটি নতুন প্রজেক্টে EKM পরীক্ষা করতে হবে.

  • আপনার EKM ওয়ার্কলোডের জন্য নতুন প্রজেক্ট চালু করার পরামর্শ দিচ্ছি. তবে আপনি যদি বিদ্যমান কোনো প্রজেক্টে EKM চান, আমরা আপনাকে ফিচার ফ্ল্যাগে যোগ করতে পারি. আপনার বিদ্যমান প্রোডাকশন প্রজেক্টে EKM চালু করার আগে নিচের সেরা অনুশীলনগুলো লক্ষ করুন.

    • প্রোডাকশনে আপনি যে সব API ফিচার ব্যবহার করেন, আগে সেগুলো আপনার টেস্ট EKM API প্রজেক্টে পরীক্ষা করুন

    • সব প্রোডাকশন API প্রজেক্টে একসঙ্গে EKM যোগ না করে ধাপে ধাপে রোলআউট করুন

সংস্থা-স্তরের endpoints

আপনার সংস্থায় একটি বাহ্যিক কী নিবন্ধন করুন

AWS

নমুনা অনুরোধ

  • type: string -  সবসময় “aws”

  • name: string -  আপনার কনফিগের জন্য সহজে বোঝার মতো একটি নাম

  • role_arn: string - যে Role ARN আপনার ক্লাউডে OpenAI গ্রহণ করবে

  • kms_arn: string - আপনার পরিচালিত মাস্টার কী-এর জন্য Key Management System ARN

  • external_id: string - আপনার সংস্থার আইডি বা 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: string - সবসময়  "gcp",

  • name: string - আপনার কনফিগের জন্য সহজে বোঝার মতো একটি নাম

  • workload_identity_project_number: string - ১২-সংখ্যার GCP প্রজেক্ট নম্বর, যেখানে আপনি OpenAI-এর workload identity নিবন্ধন করেছেন

  • workload_identity_pool_id: string - আপনার OpenAI-এর জন্য নিবন্ধিত Workload Identity provider থাকা পুল

  • workload_identity_provider_id: string - আপনার OpenAI-এর জন্য নিবন্ধিত Workload Identity provider

  • audience: string - আপনার GCP STS-এর মাধ্যমে আমরা কোনো ভূমিকা গ্রহণ করলে OpenAI যে audience টোকেনে পাঠাবে

  • kms_project_id: string - যে GCP প্রজেক্টে আপনার KMS আছে তার নাম

  • kms_key_ring_name: string - আপনার পরিচালিত মাস্টার কী থাকা Key Management System key ring

  • kms_key_name: string - Key Management System মাস্টার কী-এর নাম

  • kms_key_location: string - আপনার Key Management System মাস্টার কী যে অঞ্চলে অবস্থিত

আপনার KMS যদি OpenAI-এর Workload Identity নিবন্ধিত GCP প্রজেক্ট থেকে আলাদা প্রজেক্টে থাকে, নিশ্চিত করুন যে OpenAI-এর Workload Identity থাকা প্রজেক্টে অন্তত KMS সক্রিয় আছে; এর জন্য যান 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"
}'

নমুনা প্রতিক্রিয়া

{
  "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: string - সবসময়  "azure",

  • name: string - আপনার কনফিগের জন্য সহজে বোঝার মতো একটি নাম

  • tenant_id: string - আপনার Azure tenant 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 '{
  "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"
}

একটি বাহ্যিক কী যাচাই করুন

কয়েকটি বিষয় পরীক্ষা করতে আপনি এই endpoint ব্যবহার করতে পারেন

  • পরিবর্তন করার পরও OpenAI-এর সঙ্গে আপনার বাহ্যিক ক্লাউড কনফিগারেশন বৈধ আছে কিনা (আপনি সফল প্রতিক্রিয়া দেখবেন)

  • আপনার কী প্রত্যাহার সঠিকভাবে সম্পন্ন হয়েছে, OpenAI তা প্রক্রিয়া করছে, এবং ১ ঘণ্টার ক্যাশ TTL মেয়াদ শেষ হলে তা কার্যকর হবে কিনা (আপনি ত্রুটি প্রতিক্রিয়া দেখবেন)

নমুনা অনুরোধ

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

নমুনা প্রতিক্রিয়া

{
 "status": "success"
}

অথবা, ক্লাউড প্রদানকারীর পক্ষ থেকে একটি ত্রুটি দেখা গেছে.

প্রজেক্ট-স্তরের endpoints

একটি বাহ্যিক কী ID দিয়ে নতুন প্রজেক্ট তৈরি করুন

এটি বিদ্যমান Create Project endpoint-এর মতোই, তবে অনুরোধ ও প্রতিক্রিয়ায় 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": "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,
}

[সীমাবদ্ধ] একটি বাহ্যিক কী ID দিয়ে বিদ্যমান প্রজেক্ট আপডেট করুন

এটি বিদ্যমান Update Project endpoint-এর মতোই, তবে অনুরোধ ও প্রতিক্রিয়ায় external_key_id প্যারামিটার যোগ করা হয়েছে.


আপনার EKM ওয়ার্কলোডের জন্য নতুন API প্রজেক্ট চালু করার পরামর্শ দিচ্ছি. আপনার সব বিদ্যমান API প্রজেক্টে EKM চাইলে, আপনার অ্যাকাউন্ট ডিরেক্টরকে বলুন; আমরা আপনাকে ফিচার ফ্ল্যাগে যোগ করব. আপনার বিদ্যমান প্রোডাকশন প্রজেক্টে 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"
}'

আপনার সংস্থার সব প্রজেক্ট তালিকাভুক্ত করুন

এটি বিদ্যমান endpoint-এর মতোই, তবে 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
}

এই নিবন্ধটি কি সহায়ক ছিল?