సారాంశం
ప్రాప్యత
నిర్వాహక API కీ ద్వారా నిర్వహణ APIలో EKM ఎండ్పాయింట్లను యాక్సెస్ చేయవచ్చు. https://platform.openai.com/settings/organization/admin-keys (సాధారణ API కీని ఉపయోగించవద్దు). నిర్వాహక API కీలు సంస్థ యజమానులకు అందుబాటులో ఉంటాయి.
బాహ్య కీలను సృష్టించడానికి లేదా తొలగించడానికి
api.external_keys.writeను, బాహ్య కీల జాబితాను పొందడానికి లేదా వాటిని ధృవీకరించడానికిapi.external_keys.readను ఉపయోగించండి. ఒకే కీతో చదవడం, రాయడం రెండూ చేయాల్సి ఉన్నప్పుడే ఆ కీకి రెండు అనుమతి పరిధులూ అవసరం.ప్రస్తుతం ఈ ఎండ్పాయింట్లను మీ సంస్థ ఉపయోగించాలంటే, మేము మీ సంస్థకు ఫీచర్ ఫ్లాగ్ను ప్రారంభించాలి. ఇప్పటికే ఉన్న ప్రాజెక్టుల జాబితా ఎండ్పాయింట్ https://api.openai.com/v1/organization/projects నుంచి వచ్చే ప్రతిస్పందనలో external_key_id కనిపిస్తే, మీకు ఫీచర్ ఫ్లాగ్ ప్రారంభించబడిందని అర్థం.
వినియోగం
కొత్త ఎండ్పాయింట్ https://api.openai.com/v1/organization/external_keys ద్వారా మీ EKM కాన్ఫిగరేషన్ సంస్థ స్థాయిలో నమోదు చేయబడుతుంది.
మీ EKM కాన్ఫిగరేషన్ను నమోదు చేసినప్పుడు extkey_xxxx రూపంలో external_key_id వస్తుంది.
ఇప్పటికే ఉన్న ప్రాజెక్ట్ సృష్టి ఎండ్పాయింట్ https://api.openai.com/v1/organization/projectsకు పంపే అభ్యర్థన బాడీలో external_key_idను చేర్చడం ద్వారా EKM కాన్ఫిగరేషన్లు ప్రాజెక్ట్ స్థాయిలో సక్రియం చేయబడతాయి.
పరిమితులు
ముందుగా నిర్వహణ API ద్వారా కొత్త ప్రాజెక్ట్లో EKMను పరీక్షించాలి.
మీ EKM పనిభారాల కోసం కొత్త ప్రాజెక్టులను సృష్టించాలని మేము సిఫార్సు చేస్తున్నాము. అయితే, ఇప్పటికే ఉన్న ప్రాజెక్ట్లో EKM కావాలంటే, మేము మీకు ఫీచర్ ఫ్లాగ్ను ప్రారంభించగలము. ప్రస్తుతం వాస్తవ వినియోగంలో ఉన్న మీ ప్రాజెక్టులలో EKMను అమలు చేసే ముందు ఈ ఉత్తమ పద్ధతులను గమనించండి.
వాస్తవ వినియోగంలో మీరు వాడే అన్ని API సదుపాయాలను ముందుగా మీ పరీక్ష EKM API ప్రాజెక్ట్లో పరీక్షించండి.
వాస్తవ వినియోగంలో ఉన్న అన్ని API ప్రాజెక్టులలో EKMను ఒకేసారి ప్రారంభించకుండా, దశలవారీగా అమలు చేయండి.
సంస్థ-స్థాయి endpoints
మీ సంస్థలో బాహ్య కీని నమోదు చేయండి
AWS
నమూనా అభ్యర్థన:
type: అక్షర శ్రేణి - ఎల్లప్పుడూ “aws”
name: అక్షర శ్రేణి - మీ కాన్ఫిగరేషన్ను సులభంగా గుర్తించడానికి ఒక పేరు
role_arn: అక్షర శ్రేణి - మీ క్లౌడ్లో OpenAI స్వీకరించే పాత్రకు సంబంధించిన ARN
kms_arn: అక్షర శ్రేణి - మీరు నిర్వహించే ప్రధాన కీకి సంబంధించిన కీ నిర్వహణ వ్యవస్థ ARN
external_id: అక్షర శ్రేణి - మీ ఆర్గనైజేషన్ 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: అక్షర శ్రేణి - ఎల్లప్పుడూ “gcp”,
name: అక్షర శ్రేణి - మీ కాన్ఫిగరేషన్ను సులభంగా గుర్తించడానికి ఒక పేరు
workload_identity_project_number: అక్షర శ్రేణి - మీరు OpenAI పనిభార గుర్తింపును నమోదు చేసిన GCP ప్రాజెక్ట్ యొక్క సంఖ్యా రూపంలోని నంబర్
workload_identity_pool_id: అక్షర శ్రేణి - మీరు OpenAI కోసం నమోదు చేసిన పనిభార గుర్తింపు ప్రదాత ఉన్న పూల్
workload_identity_provider_id: అక్షర శ్రేణి - మీరు OpenAI కోసం నమోదు చేసిన పనిభార గుర్తింపు ప్రదాత
audience: అక్షర శ్రేణి - మీ GCP STS ద్వారా పాత్రను స్వీకరించేటప్పుడు OpenAI టోకెన్లో పంపాల్సిన ఉద్దేశిత గ్రహీత విలువ
kms_project_id: అక్షర శ్రేణి - మీ KMS ఉన్న GCP ప్రాజెక్ట్ పేరు
kms_key_ring_name: అక్షర శ్రేణి - మీరు నిర్వహించే ప్రధాన కీని కలిగి ఉన్న కీ నిర్వహణ వ్యవస్థ కీ రింగ్
kms_key_name: అక్షర శ్రేణి - కీ నిర్వహణ వ్యవస్థ ప్రధాన కీ పేరు
kms_key_location: అక్షర శ్రేణి - మీ కీ నిర్వహణ వ్యవస్థ ప్రధాన కీ ఉన్న ప్రాంతం
OpenAI పనిభార గుర్తింపును నమోదు చేసిన GCP ప్రాజెక్ట్ కాకుండా వేరొక ప్రాజెక్ట్లో మీ KMS ఉంటే, https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overviewకు వెళ్లి, OpenAI పనిభార గుర్తింపు ఉన్న ప్రాజెక్ట్లో కనీసం 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: అక్షర శ్రేణి - ఎల్లప్పుడూ “azure”,
name: అక్షర శ్రేణి - మీ కాన్ఫిగరేషన్ను సులభంగా గుర్తించడానికి ఒక పేరు
tenant_id: అక్షర శ్రేణి - మీ Azure టెనెంట్ UUID
vault_uri: అక్షర శ్రేణి - మీరు నిర్వహించే ప్రధాన కీ ఉన్న Azure వాల్ట్ URI
key_name: అక్షర శ్రేణి - మీరు నిర్వహించే 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"
}బాహ్య కీని ధృవీకరించండి
ఈ ఎండ్పాయింట్తో మీరు పలు విషయాలను తనిఖీ చేయవచ్చు:
మీరు మార్పులు చేసిన తర్వాత కూడా మీ బాహ్య క్లౌడ్ కాన్ఫిగరేషన్ 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తో కొత్త ప్రాజెక్ట్ను సృష్టించండి
ఇది ఇప్పటికే ఉన్న ప్రాజెక్ట్ సృష్టి ఎండ్పాయింట్లాగే ఉంటుంది, అయితే అభ్యర్థనలో, ప్రతిస్పందనలో అదనంగా 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": "organization.project",
"id": "proj_xxxxx",
"name": "Some Project",
"external_key_id": "extkey_xxxx",
"created_at": 1740012721,
"archived_at": null,
"status": "active"
}[పరిమిత ప్రాప్యత] ఇప్పటికే ఉన్న ప్రాజెక్ట్ను బాహ్య కీ IDతో నవీకరించండి
ఇది ఇప్పటికే ఉన్న ప్రాజెక్ట్ నవీకరణ ఎండ్పాయింట్లాగే ఉంటుంది, అయితే అభ్యర్థనలో, ప్రతిస్పందనలో అదనంగా 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"
}'మీ సంస్థలోని అన్ని ప్రాజెక్టుల జాబితాను పొందండి
ఇది ఇప్పటికే ఉన్న ఎండ్పాయింట్లాగే ఉంటుంది, అయితే 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
}