ਸਾਰ
ਪਹੁੰਚ
EKM endpoints Management API ਵਿੱਚ Admin API Key ਰਾਹੀਂ ਪਹੁੰਚਯੋਗ ਹਨ. https://platform.openai.com/settings/organization/admin-keys (ਸਧਾਰਣ API key ਨਾ ਵਰਤੋ). Admin API keys ਸੰਗਠਨ ਦੇ ਮਾਲਕਾਂ ਲਈ ਉਪਲਬਧ ਹਨ.
ਬਾਹਰੀ keys ਬਣਾਉਣ ਜਾਂ ਮਿਟਾਉਣ ਲਈ
api.external_keys.writeਵਰਤੋ, ਅਤੇ ਬਾਹਰੀ keys ਨੂੰ ਸੂਚੀਬੱਧ ਜਾਂ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈapi.external_keys.readਵਰਤੋ. ਇੱਕੋ key ਨੂੰ ਦੋਵੇਂ scopes ਕੇਵਲ ਤਦੋਂ ਚਾਹੀਦੇ ਹਨ ਜੇ ਇਸ ਨੇ read ਅਤੇ write ਦੋਵੇਂ ਕਾਰਵਾਈਆਂ ਕਰਣੀਆਂ ਹੋਣ.ਇਸ ਵੇਲੇ ਸਾਨੂੰ ਤੁਹਾਡੇ ਸੰਗਠਨ ਲਈ ਇਨ੍ਹਾਂ endpoints ਨੂੰ feature flag ਨਾਲ ਯੋਗ ਕਰਨ ਦੀ ਲੋੜ ਹੈ. ਤੁਹਾਨੂੰ ਪਤਾ ਲੱਗ ਜਾਵੇਗਾ ਕਿ feature flag ਮੌਜੂਦ ਹੈ ਜੇ ਮੌਜੂਦਾ List Projects endpoint ਤੋਂ ਵਾਪਸ ਆਏ ਜਵਾਬ ਵਿੱਚ external_key_id ਦਿਖੇ: https://api.openai.com/v1/organization/projects
ਵਰਤੋਂ
ਤੁਹਾਡੀ EKM config ਇੱਕ ਨਵੇਂ endpoint https://api.openai.com/v1/organization/external_keys ਰਾਹੀਂ ਸੰਗਠਨ ਪੱਧਰ 'ਤੇ ਰਜਿਸਟਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ.
ਤੁਹਾਡੀ EKM config ਰਜਿਸਟਰ ਕਰਨ ਨਾਲ extkey_xxxx ਦੇ ਰੂਪ ਵਿੱਚ external_key_id ਵਾਪਸ ਮਿਲਦਾ ਹੈ.
EKM configs ਨੂੰ ਮੌਜੂਦਾ Create Project https://api.openai.com/v1/organization/projects endpoint ਦੇ body ਵਿੱਚ external_key_id ਭੇਜ ਕੇ ਪ੍ਰੋਜੈਕਟ ਪੱਧਰ 'ਤੇ ਸਰਗਰਮ ਕੀਤਾ ਜਾਂਦਾ ਹੈ.
ਪਾਬੰਦੀਆਂ
ਤੁਹਾਨੂੰ Management API ਰਾਹੀਂ ਪਹਿਲਾਂ ਨਵੇਂ ਪ੍ਰੋਜੈਕਟ 'ਤੇ EKM test ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ.
ਅਸੀਂ ਤੁਹਾਡੇ EKM workloads ਲਈ ਨਵੇਂ ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦੇ ਹਾਂ. ਹਾਲਾਂਕਿ, ਜੇ ਤੁਸੀਂ ਮੌਜੂਦਾ ਪ੍ਰੋਜੈਕਟ 'ਤੇ EKM ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਅਸੀਂ ਤੁਹਾਨੂੰ feature flag ਵਿੱਚ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹਾਂ. ਆਪਣੇ ਮੌਜੂਦਾ production ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ EKM rollout ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤੀਆਂ best practices ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ.
production ਵਿੱਚ ਵਰਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸਾਰੀਆਂ API features ਨੂੰ ਪਹਿਲਾਂ ਆਪਣੇ test EKM API ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ test ਕਰੋ.
ਸਾਰੇ production API ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਇਕੱਠੇ EKM ਲਾਗੂ ਕਰਨ ਦੀ ਬਜਾਏ ਇਸਨੂੰ ਪੜਾਅਵਾਰ rollout ਕਰੋ.
ਸੰਗਠਨ-ਪੱਧਰ ਦੇ endpoints
ਆਪਣੇ ਸੰਗਠਨ 'ਤੇ ਬਾਹਰੀ key ਰਜਿਸਟਰ ਕਰੋ
AWS
ਨਮੂਨਾ ਬੇਨਤੀ
type: string - ਹਮੇਸ਼ਾਂ “aws”
name: string - ਤੁਹਾਡੀ config ਲਈ ਆਸਾਨੀ ਨਾਲ ਪਛਾਣਯੋਗ ਨਾਮ
role_arn: string - Role ARN ਜਿਸਨੂੰ OpenAI ਤੁਹਾਡੇ cloud ਵਿੱਚ assume ਕਰੇਗਾ
kms_arn: string - ਤੁਹਾਡੇ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ master key ਲਈ 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 - ਤੁਹਾਡੀ config ਲਈ ਆਸਾਨੀ ਨਾਲ ਪਛਾਣਯੋਗ ਨਾਮ
workload_identity_project_number: string - 12-ਅੰਕੀ GCP ਪ੍ਰੋਜੈਕਟ ਨੰਬਰ ਜਿੱਥੇ ਤੁਸੀਂ OpenAI ਦੀ workload identity ਰਜਿਸਟਰ ਕੀਤੀ ਹੈ
workload_identity_pool_id: string - ਉਹ pool ਜਿਸ ਵਿੱਚ ਉਹ Workload Identity provider ਹੈ ਜੋ ਤੁਸੀਂ OpenAI ਲਈ ਰਜਿਸਟਰ ਕੀਤਾ ਹੈ
workload_identity_provider_id: string - ਉਹ Workload Identity provider ਜੋ ਤੁਸੀਂ OpenAI ਲਈ ਰਜਿਸਟਰ ਕੀਤਾ ਹੈ
audience: string - ਉਹ audience ਜੋ OpenAI ਨੂੰ ਟੋਕਨ ਵਿੱਚ ਭੇਜਣੀ ਚਾਹੀਦੀ ਹੈ ਜਦੋਂ ਅਸੀਂ ਤੁਹਾਡੇ GCP STS ਰਾਹੀਂ role assume ਕਰਦੇ ਹਾਂ
kms_project_id: string - ਉਸ GCP ਪ੍ਰੋਜੈਕਟ ਦਾ ਨਾਮ ਜਿੱਥੇ ਤੁਹਾਡਾ KMS ਮੌਜੂਦ ਹੈ
kms_key_ring_name: string - ਤੁਹਾਡੇ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ master key ਵਾਲਾ Key Management System key ring
kms_key_name: string - Key Management System master key ਦਾ ਨਾਮ
kms_key_location: string - ਉਹ region ਜਿੱਥੇ ਤੁਹਾਡੀ Key Management System master key ਸਥਿਤ ਹੈ
ਜੇ ਤੁਹਾਡਾ KMS ਉਸ GCP ਪ੍ਰੋਜੈਕਟ ਤੋਂ ਵੱਖਰੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ OpenAI ਦੀ Workload Identity ਰਜਿਸਟਰ ਕੀਤੀ ਹੈ, ਤਾਂ ਯਕੀਨੀ ਬਣਾਓ ਕਿ OpenAI ਦੀ Workload Identity ਵਾਲੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ KMS enabled ਹੋਵੇ; ਇਸ ਲਈ 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 - ਤੁਹਾਡੀ config ਲਈ ਆਸਾਨੀ ਨਾਲ ਪਛਾਣਯੋਗ ਨਾਮ
tenant_id: string - ਤੁਹਾਡਾ Azure tenant UUID
vault_uri: string - ਤੁਹਾਡੇ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ master key ਵਾਲੇ Azure vault ਦਾ URI
key_name: string - ਤੁਹਾਡੇ ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ Azure Key Vault master key ਦਾ ਨਾਮ.
ਇਸ ਦਾ ਰੂਪ <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"
}ਤੁਹਾਡੇ ਸੰਗਠਨ 'ਤੇ ਰਜਿਸਟਰ ਕੀਤੀ ਬਾਹਰੀ key ਮਿਟਾਓ
ਨੋਟ: ਤੁਸੀਂ ਬਾਹਰੀ key ਨੂੰ ਸਿਰਫ਼ ਤਦੋਂ ਮਿਟਾ ਸਕਦੇ ਹੋ ਜੇ ਇਹ ਕਿਸੇ ਸਰਗਰਮ API ਪ੍ਰੋਜੈਕਟ ਜਾਂ ਵਰਕਸਪੇਸ ਨਾਲ ਸੰਬੰਧਿਤ ਨਾ ਹੋਵੇ. ਜੇ ਇਹ ਕਿਸੇ ਸਰਗਰਮ API ਪ੍ਰੋਜੈਕਟ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ, ਤਾਂ ਪਹਿਲਾਂ ਉਸ ਪ੍ਰੋਜੈਕਟ ਨੂੰ archive ਕਰੋ. ਜੇ ਇਹ ਕਿਸੇ ਵਰਕਸਪੇਸ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ, ਤਾਂ key ਮਿਟਾਈ ਨਹੀਂ ਜਾ ਸਕਦੀ.
ਨਮੂਨਾ ਬੇਨਤੀ
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>"
}ਤੁਹਾਡੇ ਸੰਗਠਨ 'ਤੇ ਰਜਿਸਟਰ ਕੀਤੀਆਂ ਬਾਹਰੀ keys ਪ੍ਰਾਪਤ ਕਰੋ
ਨਮੂਨਾ ਬੇਨਤੀ
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"
}ਬਾਹਰੀ key ਪ੍ਰਮਾਣਿਤ ਕਰੋ
ਤੁਸੀਂ ਇਹ endpoint ਕਈ ਚੀਜ਼ਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ.
ਤੁਹਾਡੇ ਵੱਲੋਂ ਤਬਦੀਲੀਆਂ ਕਰਨ ਤੋਂ ਬਾਅਦ ਵੀ ਤੁਹਾਡੀ ਬਾਹਰੀ cloud configuration OpenAI ਨਾਲ valid ਰਹਿੰਦੀ ਹੈ (ਤੁਹਾਨੂੰ success response ਦਿਖੇਗਾ).
ਤੁਹਾਡੀ key revocation ਸਹੀ ਢੰਗ ਨਾਲ ਹੋ ਚੁੱਕੀ ਹੈ, OpenAI ਦੁਆਰਾ process ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ, ਅਤੇ 1 ਘੰਟੇ ਦੀ cache TTLs ਮਿਆਦ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਪ੍ਰਭਾਵੀ ਹੋਵੇਗੀ (ਤੁਹਾਨੂੰ error response ਦਿਖੇਗਾ).
ਨਮੂਨਾ ਬੇਨਤੀ
curl -X POST -H "Authorization: Bearer $TOKEN"
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"ਨਮੂਨਾ ਜਵਾਬ
{
"status": "success"
}ਜਾਂ, cloud provider ਵੱਲੋਂ ਕੋਈ ਗਲਤੀ ਸਾਹਮਣੇ ਆਈ.
ਪ੍ਰੋਜੈਕਟ-ਪੱਧਰ ਦੇ endpoints
ਬਾਹਰੀ key ID ਨਾਲ ਨਵਾਂ ਪ੍ਰੋਜੈਕਟ ਬਣਾਓ
ਇਹ ਮੌਜੂਦਾ Create Project endpoint ਵਰਗਾ ਹੀ ਹੈ, ਪਰ request ਅਤੇ response ਵਿੱਚ external_key_id parameter ਸ਼ਾਮਲ ਹੈ.
ਨਮੂਨਾ ਬੇਨਤੀ
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,
}[Restricted] ਮੌਜੂਦਾ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਬਾਹਰੀ key ID ਨਾਲ update ਕਰੋ
ਇਹ ਮੌਜੂਦਾ Update Project endpoint ਵਰਗਾ ਹੀ ਹੈ, ਪਰ request ਅਤੇ response ਵਿੱਚ external_key_id parameter ਸ਼ਾਮਲ ਹੈ.
ਅਸੀਂ ਤੁਹਾਡੇ EKM workloads ਲਈ ਨਵੇਂ API ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦੇ ਹਾਂ. ਜੇ ਤੁਸੀਂ ਆਪਣੇ ਸਾਰੇ ਮੌਜੂਦਾ API ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ EKM ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਆਪਣੇ account director ਨੂੰ ਕਹੋ ਅਤੇ ਅਸੀਂ ਤੁਹਾਨੂੰ feature flag ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਾਂਗੇ. ਆਪਣੇ ਮੌਜੂਦਾ production ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ EKM rollout ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤੀਆਂ best practices ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ.
production ਵਿੱਚ ਵਰਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸਾਰੀਆਂ API features ਨੂੰ ਪਹਿਲਾਂ ਆਪਣੇ test EKM API ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ test ਕਰੋ.
ਸਾਰੇ production API ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਇਕੱਠੇ EKM ਲਾਗੂ ਕਰਨ ਦੀ ਬਜਾਏ ਇਸਨੂੰ ਪੜਾਅਵਾਰ rollout ਕਰੋ.
ਨਮੂਨਾ ਬੇਨਤੀ
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
}