Descripción general
La gestión empresarial de claves (EKM) permite cifrar el contenido de los clientes en OpenAI mediante claves administradas por su propio sistema externo de gestión de claves (KMS), disponible tanto para ChatGPT Enterprise como para la API.
OpenAI admite el cifrado Bring Your Own Key (BYOK) con cuentas externas en AWS KMS, Google Cloud (GCP) y Azure Key Vault.
En este momento, la implementación de EKM está limitada a los espacios de trabajo Enterprise y Edu con un representante de cuenta asignado de OpenAI.
Cómo funciona el cifrado EKM de OpenAI
Flujo de nivel superior
Generamos una clave de cifrado de datos (DEK) para tu proveedor de servicios en la nube.
Tu KMS en la nube administra una clave de cifrado de claves (KEK) maestra, ya sea almacenada dentro de tu nube o de forma externa. La implementación depende de ti.
Solicitamos que tu nube cifre la DEK para obtener una DEK cifrada (eDEK). Si tu KEK se almacena externamente, tu nube solo hace un salto adicional a tu almacenamiento externo, en un paso que es opaco para OpenAI.
Cifrado
Cuando se cifra, tus datos se cifran con el DEK y el eDEK se almacena como metadatos en el archivo.

Descifrado
Durante el descifrado, solicitamos que tu KMS en la nube descifre la eDEK para convertirla en la DEK y desciframos los datos con la DEK.

Términos clave
Clave de cifrado de datos (DEK): la clave que cifra tus datos.
Clave de cifrado de datos (eDEK): la clave DEK cifrada, generada por tu KMS
Clave de cifrado de claves (KEK): la clave maestra que administras y que cifra la DEK -> eDEK y descifra la eDEK -> DEK. Esta clave siempre permanece fuera de los sistemas de OpenAI.
Requisitos de alto nivel para la implementación
En tu proveedor de la nube
Crea una nueva clave en tu KMS en la nube (Azure, AWS o GCP)
Se creó una política personalizada y limitada con permisos de cifrado y descifrado en KMS
Crea una política de confianza (AWS), una identidad de carga (GCP) o un principal de servicio (para Azure) para OpenAI
Asigna a OpenAI un rol con una política limitada para acceder a tu KMS
En las plataformas de OpenAI
ChatGPT Enterprise
Crear un espacio de trabajo sandbox de ChatGPT para pruebas.
API
En tu panel de control de OpenAI, crea un nuevo proyecto donde se aplicará el cifrado.
Funciones específicas del proveedor
Para AWS, OpenAI:
Llamará a AssumeRole con un ExternalID
Para GCP, OpenAI:
Llamará a tu punto de acceso STS desde una cuenta de OpenAI en GCP.
Usa el token de acceso de GCP para realizar operaciones de cifrado/descifrado en tu KMS.
Para Azure, OpenAI:
Solicitará un token de acceso para el almacén de tu inquilino de Azure.
Usa ese token de acceso para llamar a cifrar/descifrar en tu Key Vault.
Información que puedas necesitar de OpenAI
Autenticación
Deberás reconocer el token de identidad federada de OpenAI para AWS y GCP. Para Azure, deberás reconocer el ID de aplicación de OpenAI para su registro de aplicaciones.
Resumen de parámetros de autenticación
| Principal de AWS de OpenAI | arn:iam::790389265272:role/EnterpriseKeyManagement |
| Id. de cuenta de servicio de GCP de OpenAI | 105900137572174660365 |
| ID de aplicación de Azure de OpenAI | 20a14814-5ab7-4612-a671-1382b412bf93 |
Información necesaria durante la implementación según el proveedor de servicios en la nube
Para AWS, debes configurar una política de confianza que reconozca lo siguiente:
Responsable principal de OpenAI (número de cuenta y rol)
Un ExternalID que corresponde al ID de tu proyecto de OpenAI
Para GCP, debes configurar una identidad de carga de trabajo que reconozca:
Identificador de cuenta de servicio de OpenAI
Un público que corresponde al ID de tu proyecto de OpenAI
Para Azure, debes crear una entidad de servicio en tu inquilino de Azure para el registro de aplicaciones de OpenAI
Crea uno para el id. de cliente de la aplicación de OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9
Puedes hacerlo publicando en el punto de acceso https://graph.microsoft.com/v1.0/serviceprincipals.
Autorización
Necesitarás crear una política que permita a la identidad de OpenAI obtener acceso limitado a tu KMS.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
Otro
En Azure, para el tipo de clave (algoritmo de cifrado de claves), selecciona RSA, no EC.
Información que OpenAI necesita de ti
Sigue las instrucciones en este documento para registrar tu KMS en OpenAI. Aquí tienes un resumen de los parámetros que deberás proporcionar.
Relacionado con la autenticación
AWS
ARN del rol de IAM: rol para que OpenAI asuma (p. ej.: arn:aws:iam::123456789:role/role-name)
ExternalID: la identificación de tu organización de OpenAI
GCP
Número del proyecto de identidad de carga laboral (p. ej.: 123456789)
ID del pool de identidades de carga de trabajo
ID del proveedor de identidad para cargas de trabajo
Audiencia permitida: tu ID de la organización de OpenAI
Azure
Id. del inquilino
| AWS | GCP | Azure | |
| Relacionado con autenticación | Id. del inquilino | ||
| Relacionado con el sistema KMS | KMS ARN: (p. ej.: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | ID de proyecto KMS (p. ej.: adjective-noun-12345)Nombre del anillo de claves de KMSNombre de la clave de KMSUbicación de la clave de KMS (ejemplo: us-east1) | Vault URI (p. ej.: https://your-vault-name.vault.azure.net/)Nombre clave |
Después de registrar tu KMS con OpenAI, continúa siguiendo las instrucciones de la documentación para activar tu configuración de EKM en un proyecto de API. Crea un proyecto nuevo de la API de OpenAI para fines de prueba.
Guías de implementación específicas para cada proveedor
Para obtener orientación paso a paso, consulta los enlaces correspondientes a continuación. Ten en cuenta que estos se centran en los requisitos de integración con OpenAI y no pretenden servir como una guía integral de todo tu entorno.
Funciones no compatibles si EKM está habilitado
En esta versión inicial, las siguientes características no están disponibles si EKM está habilitado:
Aplicaciones sincronizadas
Características que no están disponibles de forma general (p. ej., cualquier cosa que aún esté en beta/alfa)
