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.
Recuerda esto para más tarde: tendrás que registrarlo en OpenAI
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
establece
assertion.sub == "105900137572174660365"
Ahora deberías ver tu pool de identidades de cargas de trabajo y tu proveedor de identidades de cargas de trabajo en la lista de 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 a 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 para el 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.
Si no tienes esto, vuelve a la sección Crear un KMS
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
YOUR_GCP_PROJECT_NUMBER es el proyecto donde reconociste la identidad federada de OpenAI al crear YOUR_GCP_WORKLOAD_IDENTITY_POOL. Puede estar, pero no es necesario que esté, en el mismo proyecto donde se encuentra tu KMS.
Si los proyectos son diferentes, asegúrate de que el KMS esté habilitado al menos en el otro proyecto ingresando a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview
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",
El número de proyecto de GCP de 12 dígitos donde registraste la identidad de cargas de trabajo de OpenAI
"workload_identity_pool_id": "openai-azure",
El pool que contiene el proveedor de identidad de carga de trabajo que registraste para OpenAI
"workload_identity_provider_id": "openai-ekm-service-role",
El proveedor de identidad de carga de trabajo que registraste para OpenAI
"kms_project_id": "adjective-noun-12345",
El nombre del proyecto de GCP donde se encuentra tu KMS
"kms_key_name": "openai-kms-key",
El nombre de la clave maestra del sistema de gestión de claves
"kms_key_ring_name": "openai-kms-key-ring",
El gestor de claves del Sistema de administración de claves que contiene la clave maestra que administras
"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 de 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"
}'