সারাংশ
অ্যাক্সেস
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 মাস্টার কী-এর নাম.
এটি <org-xxx>--<any_name> ফরম্যাটে হতে হবে
যেখানে org-xxx হলো আপনার OpenAI সংস্থা ID, যা আপনি 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"
}একটি বাহ্যিক কী যাচাই করুন
কয়েকটি বিষয় পরীক্ষা করতে আপনি এই 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
}