Descripción general
La administración empresarial de claves (EKM) permite a OpenAI cifrar datos utilizando una clave maestra que tú controlas. En este documento, se muestra cómo configurar tu cuenta de GCP para otorgar a OpenAI permisos limitados sobre tu KMS.

Pasos
1. Crea una identidad federada para OpenAI
OpenAI generará un token de identidad desde una cuenta de GCP de OpenAI que se verá más o menos así.
La azp y el sub son el ID de la cuenta de servicio de OpenAI en GCP
La aud es tu ID de la organización de OpenAI. También puedes elegir otra audiencia, como el ID de tu proyecto de OpenAI: consulta las instrucciones a continuación.
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Este paso reconoce las afirmaciones realizadas por ese token de identidad y permite que el STS de GCP emita un token de acceso cuando se proporciona dicho token de identidad.
Ingresa a IAM & Admin - > Asociación de identidad de carga de trabajo y haz clic en Crear pool

En el paso Crear un pool de identidades, ingresa cualquier valor para el nombre de dicho pool.
En el paso Agregar un proveedor al pool:
En Seleccionar un proveedor, selecciona OpenID Connect (OIDC)
Ingresa lo que quieras para el nombre del proveedor.
En la sección Emisor (URL), ingresa https://accounts.google.com
En la sección Audiencias
Seleccionar Audiencias permitidas
Ingresa la audiencia que OpenAI debe indicar cuando se te proporcione un token.
Para ChatGPT o la API: puedes ingresar el ID de organización de la API de OpenAI (org-xxx).
Para la API: puedes ingresar un ID de proyecto específico de la API para mayor definición.

En la sección Asignación de atributos
para google.subject introduce assertion.sub

En la sección Condiciones de atributo
Ahora deberías ver el pool de identidades de cargas de trabajo y el proveedor de identidades de cargas de trabajo listados en la página https://console.cloud.google.com/iam-admin/workload-identity-pools .
ID del pool de identidades de cargas de trabajo

ID del proveedor de identidad de cargas de trabajo

2. Asegúrate de que el KMS esté habilitado
Ingresa en https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview para habilitar el KMS. No es necesario crear tu KMS en el mismo proyecto de GCP en el que reconociste la identidad federada de OpenAI; sin embargo, si los proyectos son diferentes, el producto del KMS debe estar al menos habilitado en ambos proyectos.
3. Crea una nueva clave del KMS
Ingresa a Seguridad > Protección de datos > Administración de claves
En la pestaña Resumen, haz clic en Gestor de claves
Elige el nombre que quieras para tu gestor de claves
Para el propósito y el algoritmo, selecciona cifrado/descifrado simétrico

Una vez que hayas creado un gestor de claves, debería aparecer en la pestaña Gestor de claves. Haz clic en Gestor de claves.
En los detalles, haz clic en Crear clave.
Elige cualquier nombre para una clave
4. Crea un rol limitado para operaciones de cifrado y descifrado en el KMS
Ingresa a IAM & Admin -> Roles -> Crear rol
Ingresa cualquier palabra para el título del cargo y el ID
Haz clic en Agregar permisos, luego agrega lo siguiente
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Asigna la identidad federada de OpenAI al rol limitado del KMS para operaciones de cifrado/descifrado
Ingresa a Seguridad -> Protección de datos > Administración de claves
Haz clic en el nombre de tu gestor de claves y luego en el nombre de tu clave para acceder a la página de detalles de la clave.
Haz clic en la pestaña Permisos, luego haz clic en el botón Conceder acceso

Asigna la identidad federada de OpenAI al rol personalizado que creaste antes
En la sección Agregar entidades principales, introduce principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365
En la sección Asignar roles, selecciona el rol personalizado que creaste en el paso anterior para permisos limitados de la EKM
6. Aplica restricciones adicionales de acuerdo con tus propias prácticas de seguridad
Arriba se encuentra la información mínima requerida que OpenAI necesita para configurar la EKM. Tienes la libertad de aplicar políticas de claves o restricciones adicionales de acuerdo con tus propias prácticas internas de seguridad, siempre que OpenAI pueda realizar operaciones de cifrado y descifrado en tu KMS. Cuando llames al punto de acceso de registro de claves con OpenAI que se describe a continuación, validaremos tu configuración.
Después de completar los pasos anteriores
ChatGPT Enterprise
Comunícate con tu contacto de OpenAI y comparte lo siguiente:
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"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"
EL lugar donde se encuentra tu clave maestra del sistema de administración de claves
Habilitaremos la EKM para tu organización o espacio de trabajo de ChatGPT.
API
Registra tu clave externa con OpenAI
Sigue las instrucciones en esta referencia de la API Claves externas en la API de administración
Primero, registra tu clave externa a nivel de la organización de OpenAI, lo que generará un ID de clave externa.
En este paso, validaremos tu configuración en GCP verificando que podamos autenticar tu KMS.
Esto todavía no agregará la EKM a tu proyecto de OpenAI.
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"
}'Luego, crea un proyecto de OpenAI asociado con la clave externa. Después de esto, la EKM se activa en tu proyecto.
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"
}'