OpenAI 添加外部密钥配置

2026-11-13 15:10 更新

为组织添加外部密钥配置

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"
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号