Información general
Enterprise Key Management (EKM) permite a OpenAI cifrar datos con una clave maestra que tú controlas. En este documento se muestra cómo configurar tu cuenta de GCP para conceder a OpenAI permisos limitados en tu KMS.

Pasos
1. Crear una identidad federada para OpenAI
OpenAI emitirá un token de identidad desde una cuenta de GCP propiedad de OpenAI con un aspecto similar a este.
azp y sub son el ID de la cuenta de servicio de OpenAI en GCP
aud es el ID de tu organización de OpenAI. También puedes elegir otra audiencia, como el ID de tu proyecto de OpenAI; consulta las instrucciones siguientes
{
"aud": "org-xxxx",
"azp": "105900137572174660365",
"exp": 1747876928,
"iat": 1747873328,
"iss": "https://accounts.google.com",
"sub": "105900137572174660365"
}Este paso reconoce las declaraciones realizadas por ese token de identidad y permite que tu STS de GCP emita un token de acceso cuando se proporciona ese token de identidad.
Ve a IAM y administración -> Federación de identidades de carga de trabajo y haz clic en Crear grupo

En el paso Crear un grupo de identidades, introduce cualquier valor para el nombre del grupo.
En el paso Añadir un proveedor al grupo:
En Selecciona un proveedor, selecciona OpenID Connect (OIDC)
Introduce cualquier valor para el nombre del proveedor.
En la sección Emisor (URL), introduce https://accounts.google.com
En la sección Audiencias
Selecciona Audiencias permitidas
Introduce la audiencia que OpenAI debe indicar cuando te pasemos un token.
Para ChatGPT o API: puedes poner el ID de organización de la API de OpenAI (org-xxx)
Para API: puedes poner un ID de proyecto de API específico para una mayor granularidad.

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

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

ID del proveedor de identidades de carga de trabajo

2. Asegurarse de que KMS esté habilitado
Ve a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview para habilitar KMS. No es obligatorio crear tu KMS en el mismo proyecto de GCP donde reconociste la identidad federada de OpenAI; sin embargo, si los proyectos son distintos, el producto KMS debe estar al menos habilitado en ambos proyectos.
3. Crear una nueva clave de KMS
Ve a Seguridad -> Protección de datos > Gestión de claves
En la pestaña Información general, haz clic en Crear llavero de claves
Elige cualquier nombre para tu llavero de claves
En Propósito y algoritmo, selecciona Cifrado/descifrado simétrico

Una vez que hayas creado un llavero de claves, debería aparecer en la pestaña Llaveros de claves. Haz clic en el llavero de claves.
En los detalles del llavero de claves, haz clic en Crear clave
Elige cualquier nombre para tu clave
4. Crear un rol limitado para operaciones de cifrado/descifrado en el KMS
Ve a IAM y administración -> Roles -> Crear rol
Introduce cualquier valor para el título y el ID del rol
Haz clic en Añadir permisos y luego añade lo siguiente
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
5. Asignar la identidad federada de OpenAI al rol de KMS limitado para operaciones de cifrado/descifrado
Ve a Seguridad -> Protección de datos > Gestión de claves
Haz clic en el nombre de tu llavero de claves y luego en el nombre de la clave para acceder a la página de detalles de tu clave.
Haz clic en la pestaña Permisos y luego en el botón Conceder acceso

Asigna la identidad federada de OpenAI al rol personalizado que has creado anteriormente
En la sección Añadir 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 has creado en el paso anterior para los permisos limitados de EKM
6. Aplicar cualquier restricción adicional de acuerdo con tus propias prácticas de seguridad
Lo anterior es la información mínima requerida que OpenAI necesita para configurar EKM. Puedes aplicar políticas o restricciones adicionales a las claves de acuerdo con tus propias prácticas internas de seguridad, siempre que OpenAI pueda invocar 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.
Tras completar los pasos anteriores
ChatGPT Enterprise
Ponte en contacto 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"
La región donde se encuentra la clave maestra de tu sistema de gestión de claves
Habilitaremos EKM para tu organización/área de trabajo de ChatGPT.
API
Registrar tu clave externa en OpenAI
Sigue las instrucciones de esta referencia de la API: Claves externas en la API de gestión
Primero, registra tu clave externa en el nivel de organización de OpenAI, lo que generará un ID de clave externa.
En este paso, validaremos tu configuración en GCP comprobando que podemos autenticarnos en tu KMS.
Esto aún no añadirá 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": "Configuración de GCP EKM",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": <tu id de organización o id de proyecto>,
"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"
}'A continuación, crea un proyecto de OpenAI asociado a la clave externa. Después de esto, 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": "Algún proyecto",
"external_key_id": "extkey_xxxx"
}'