సారాంశం
యాక్సెస్
EKM endpointsను Management APIలో Admin API Key ద్వారా యాక్సెస్ చేయవచ్చు. 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 - మీ క్లౌడ్లో OpenAI స్వీకరించే Role ARN
kms_arn: string - మీరు నిర్వహించే మాస్టర్ కీకి చెందిన Key Management System ARN
external_id: string - మీ సంస్థ ID లేదా 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
నమూనా అభ్యర్థన
type: string - ఎల్లప్పుడూ "gcp",
name: string - మీ కాన్ఫిగరేషన్కు సులభంగా గుర్తుపట్టే పేరు
workload_identity_project_number: string - మీరు OpenAI Workload Identityని నమోదు చేసిన 12-అంకెల GCP ప్రాజెక్ట్ నంబర్
workload_identity_pool_id: string - OpenAI కోసం మీరు నమోదు చేసిన Workload Identity ప్రొవైడర్ను కలిగి ఉన్న పూల్
workload_identity_provider_id: string - OpenAI కోసం మీరు నమోదు చేసిన Workload Identity ప్రొవైడర్
audience: string - మీ GCP STS ద్వారా మేము పాత్రను స్వీకరించినప్పుడు OpenAI టోకెన్లో పంపాల్సిన ఆడియన్స్
kms_project_id: string - మీ KMS ఉన్న GCP ప్రాజెక్ట్ పేరు
kms_key_ring_name: string - మీరు నిర్వహించే మాస్టర్ కీని కలిగి ఉన్న Key Management System కీ రింగ్
kms_key_name: string - Key Management System మాస్టర్ కీ పేరు
kms_key_location: string - మీ Key Management System మాస్టర్ కీ ఉన్న ప్రాంతం
మీరు OpenAI Workload Identityని నమోదు చేసిన GCP ప్రాజెక్ట్కు భిన్నమైన ప్రాజెక్ట్లో మీ KMS ఉంటే, 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
నమూనా అభ్యర్థన
type: string - ఎల్లప్పుడూ "azure",
name: string - మీ కాన్ఫిగరేషన్కు సులభంగా గుర్తుపట్టే పేరు
tenant_id: string - మీ Azure టెనెంట్ UUID
vault_uri: string - మీరు నిర్వహించే మాస్టర్ కీని కలిగి ఉన్న Azure వాల్ట్ 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 ద్వారా ప్రాసెస్ అవుతోంది, మరియు 1 గంట క్యాష్ 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
}