OpenAI 添加外部密钥配置
为组织添加外部密钥配置
post /organization/external_keys
为组织添加外部密钥配置。
请求体参数
内容类型:application/json
body: Aws { external_id, kms_arn, name, 3 more } or Gcp { audience, kms_key_location, kms_key_name, 9 more } or Azure { key_name, name, tenant_id, 4 more } or Oci { key_ocid, name, region, 4 more }
Aws object { external_id, kms_arn, name, 3 more }
external_id: string
OpenAI 调用客户 AWS 账号的 AssumeRole 时传入的 ExternalID。必须是 OpenAI 组织 ID,或属于该组织的 API 项目 ID。
kms_arn: string
由你管理的主密钥在密钥管理系统中的 ARN。
name: string
用于识别此配置的易读名称。
role_arn: string
OpenAI 为调用你的 KMS 而扮演的角色的 ARN。
pattern: ^arn:aws:iam::\d{12}:role/.+$
type: "aws" (default: "aws")
"aws"
purpose: optional "ekm" or "psp_decryption"
"ekm"
"psp_decryption"
Gcp object { audience, kms_key_location, kms_key_name, 9 more }
audience: string
OpenAI 调用客户的 GCP STS 时传入的身份令牌中的 aud 字段。必须是 OpenAI 组织 ID,或属于该组织的 API 项目 ID。
kms_key_location: string
密钥管理系统主密钥所在的区域。
kms_key_name: string
由你管理的密钥管理系统主密钥的名称。
kms_key_ring_name: string
由你管理的主密钥在密钥管理系统中所属的密钥环。
kms_project_id: string
KMS 所在的 GCP 项目名称,以字符串表示。
name: string
用于识别此配置的易读名称。
type: "gcp" (default: "gcp")
"gcp"
workload_identity_pool_id: string
包含你为 OpenAI 注册的工作负载身份提供商的池。
workload_identity_project_number: string
你为 OpenAI 注册工作负载身份的 GCP 项目编号,以数字表示。
pattern: ^[0-9]{1,19}$
workload_identity_provider_id: string
你为 OpenAI 注册的工作负载身份提供商。
kms_key_version: optional string
确切的 CryptoKeyVersion 版本号。PSP 解密必须提供;EKM 不接受此字段。
pattern: ^[1-9][0-9]*$
purpose: optional "ekm" or "psp_decryption"
"ekm"
"psp_decryption"
Azure object { key_name, name, tenant_id, 4 more }
key_name: string
由你管理的 Azure Key Vault 主密钥的名称。
pattern: ^org-[0-9a-zA-Z-]*--[0-9a-zA-Z-]*$, maxLength: 127
name: string
用于识别此配置的易读名称。
tenant_id: string
你的 Azure 租户 UUID。
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
type: "azure" (default: "azure")
"azure"
vault_uri: string
包含你所管理主密钥的 Azure 保管库的 URI。
pattern: ^https://.+\.vault\.azure\.net/?$
key_version: optional string
确切的 Azure Key Vault 密钥版本。PSP 解密必须提供;EKM 不接受此字段。
pattern: ^[0-9a-fA-F]{32}$
purpose: optional "ekm" or "psp_decryption"
"ekm"
"psp_decryption"
Oci object { key_ocid, name, region, 4 more }
key_ocid: string
OCI Vault 密钥的 OCID。
minLength: 1, maxLength: 512
name: string
用于识别此配置的易读名称。
region: string
保管库所在的 OCI 区域。
minLength: 1, maxLength: 64
type: "oci" (default: "oci")
"oci"
vault_ocid: string
客户的 OCI Vault OCID。
minLength: 1, maxLength: 512
key_version_ocid: optional string
用于 PSP 解密的确切 OCI 密钥版本 OCID。
minLength: 1, maxLength: 512
purpose: optional "ekm" or "psp_decryption"
"ekm"
"psp_decryption"
返回值
ExternalKey object { id, api_project_ids, created_at, 25 more }
id: string
api_project_ids: array of string
created_at: integer
name: string
object: string
type: string
workspace_id: string
audience: optional string
external_id: optional string
key_name: optional string
key_ocid: optional string
key_version: optional string
key_version_ocid: optional string
kms_arn: optional string
kms_key_location: optional string
kms_key_name: optional string
kms_key_ring_name: optional string
kms_key_version: optional string
kms_project_id: optional string
purpose: optional "ekm" or "psp_decryption"
"ekm"
"psp_decryption"
region: optional string
role_arn: optional string
tenant_id: optional string
vault_ocid: optional string
vault_uri: optional string
workload_identity_pool_id: optional string
workload_identity_project_number: optional string
workload_identity_provider_id: optional string
示例
译注:官方请求示例包含 external_id、kms_arn 和 role_arn 等示意值,不能原样作为实际 AWS 配置使用。应依照上方字段约束填入真实的组织或项目 ID、KMS ARN 及角色 ARN。
## 从环境变量读取组织管理员密钥;配置ID和云资源占位值需替换为实际值
curl https://api.openai.com/v1/organization/external_keys \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
-d '{
"external_id": "external_id",
"kms_arn": "kms_arn",
"name": "示例外部密钥配置",
"role_arn": "arn:aws:iam::732166991022:role/0*bWz\"J5bo7",
"type": "aws"
}'
200 — 示例
以下 JSON 为字段结构示意。标识符、云资源参数、对象类型及状态占位字符串按原文保留,不表示真实配置或确定的状态取值。
{
"id": "id",
"api_project_ids": [
"string"
],
"created_at": 0,
"name": "示例外部密钥配置",
"object": "object",
"type": "type",
"workspace_id": "workspace_id",
"audience": "audience",
"external_id": "external_id",
"key_name": "key_name",
"key_ocid": "key_ocid",
"key_version": "key_version",
"key_version_ocid": "key_version_ocid",
"kms_arn": "kms_arn",
"kms_key_location": "kms_key_location",
"kms_key_name": "kms_key_name",
"kms_key_ring_name": "kms_key_ring_name",
"kms_key_version": "kms_key_version",
"kms_project_id": "kms_project_id",
"purpose": "ekm",
"region": "region",
"role_arn": "role_arn",
"tenant_id": "tenant_id",
"vault_ocid": "vault_ocid",
"vault_uri": "vault_uri",
"workload_identity_pool_id": "workload_identity_pool_id",
"workload_identity_project_number": "workload_identity_project_number",
"workload_identity_provider_id": "workload_identity_provider_id"
}
TRAE-AI编程


更多建议: