Descripción general
Enterprise Key Management (EKM) le permite cifrar el contenido de sus clientes en OpenAI mediante claves gestionadas 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 Áreas de trabajo Enterprise y Edu con un representante de cuenta asignado de OpenAI.
Cómo funciona el cifrado EKM de OpenAI
Flujo de alto nivel
Generamos una Data Encryption Key (DEK) para su proveedor de nube.
Su KMS en la nube gestiona una Key Encryption Key (KEK) maestra, ya sea almacenada en su nube o externamente. La implementación depende de usted.
Solicitamos el cifrado de la DEK a su nube para obtener una DEK cifrada (eDEK). Si su KEK se almacena externamente, su nube simplemente realiza un salto adicional a su almacén externo, en un paso que es opaco para OpenAI.
Cifrado
Al cifrar, sus datos se cifran con la DEK y la eDEK se almacena como metadatos en el archivo.

Descifrado
Al descifrar, solicitamos que su KMS en la nube descifre la eDEK en la DEK, y desciframos los datos con la DEK.

Términos clave
Data Encryption Key (DEK) - la clave que cifra sus datos.
Encrypted Data Encryption Key (eDEK) - la DEK cifrada, generada por su KMS
Key Encryption Key (KEK) - la clave maestra que usted gestiona y que cifra la DEK -> eDEK y descifra eDEK -> DEK. Esta clave siempre permanece fuera de los sistemas de OpenAI.
Requisitos generales para la implementación
En su proveedor de nube
Cree una clave nueva en su KMS en la nube (Azure, AWS o GCP)
Cree una política personalizada y limitada con permisos de Encrypt/Decrypt en el KMS
Cree una política de confianza (AWS), una identidad de carga de trabajo (GCP) o una entidad de servicio (para Azure) para OpenAI
Asigne a OpenAI un rol con la política limitada para acceder a su KMS
En las plataformas de OpenAI
ChatGPT Enterprise
Cree un Área de trabajo de ChatGPT de entorno de pruebas para fines de prueba.
API
En su panel de OpenAI, cree un proyecto nuevo donde se aplicará el cifrado.
Funciones específicas del proveedor
Para AWS, OpenAI:
Llamará a AssumeRole con un ExternalID
Para GCP, OpenAI:
Llamará a su punto de acceso STS desde una cuenta de GCP de OpenAI
Usará el token de acceso de GCP para llamar a encrypt/decrypt en su KMS.
Para Azure, OpenAI:
Solicitará un token de acceso para el almacén de su inquilino de Azure
Usará ese token de acceso para llamar a encrypt/decrypt en su Key Vault.
Información que necesita de OpenAI
Autenticación
Deberá reconocer los tokens de identidad federada de OpenAI para AWS y GCP. En Azure, deberá reconocer el ID de aplicación de OpenAI para su registro de aplicaciones.
Resumen de los parámetros de autenticación
| Entidad principal de OpenAI en AWS | arn:aws:iam::790389265272:role/EnterpriseKeyManagement |
| ID de cuenta de servicio de OpenAI en GCP | 105900137572174660365 |
| ID de aplicación de OpenAI en Azure | 20a14814-5ab7-4612-a671-1382b412bf93 |
Información necesaria durante la implementación según su proveedor de nube
Para AWS, debe configurar una política de confianza que reconozca:
La entidad principal de OpenAI (número de cuenta + rol)
Un ExternalID que sea el ID de su proyecto de OpenAI
Para GCP, debe configurar una identidad de carga de trabajo que reconozca:
El ID de cuenta de servicio de OpenAI
Una audiencia que sea el ID de su proyecto de OpenAI
Para Azure, debe crear una entidad de servicio en su inquilino de Azure para el registro de aplicaciones de OpenAI
Cree una para el ID de cliente de la aplicación de OpenAI: 20a14814-5ab7-4612-a671-1382b412bf9
Puede hacerlo realizando una publicación en el punto de acceso https://graph.microsoft.com/v1.0/servicePrincipals.
Autorización
Deberá crear una política que permita a la identidad de OpenAI obtener acceso limitado a su KMS.
| AWS | GCP | Azure |
| kms:Decryptkms:Encrypt | cloudkms.cryptoKeyVersions.useToDecryptcloudkms.cryptoKeyVersions.useToEncrypt | Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/action |
Otros
En Azure, para el tipo de clave (algoritmo de cifrado de claves), seleccione RSA, no EC.
Información que OpenAI necesita de usted
Siga las instrucciones de este documento para registrar su KMS con OpenAI. A continuación se incluye un resumen de los parámetros que deberá proporcionar.
Relacionados con la autenticación
AWS
ARN del rol de IAM - rol que OpenAI asumirá (ejemplo: arn:aws:iam::123456789:role/role-name)
ExternalID - el ID de su organización de OpenAI
GCP
Número de proyecto de Workload Identity (ejemplo: 123456789)
ID del grupo de Workload Identity
ID del proveedor de Workload Identity
Audiencia permitida: el ID de su organización de OpenAI
Azure
ID de inquilino
| AWS | GCP | Azure | |
| Relacionados con la autenticación | ID de inquilino | ||
| Relacionados con KMS | ARN de KMS - (ejemplo: arn:aws:kms:REGION:ACCOUNT_NUMBER:key:KEY_UUID) | ID del proyecto de KMS (ejemplo: adjective-noun-12345)Nombre del key ring de KMSNombre de la clave de KMSUbicación de la clave de KMS (ejemplo: us-east1) | URI del almacén (ejemplo: https://your-vault-name.vault.azure.net/)Nombre de la clave |
Después de registrar su KMS con OpenAI, continúe siguiendo las instrucciones del documento para activar su configuración de EKM en un proyecto de API. Cree un proyecto nuevo de la API de OpenAI con fines de prueba.
Guías de implementación específicas del proveedor
Para obtener instrucciones paso a paso, consulte los enlaces correspondientes a continuación. Tenga en cuenta que se centran en los requisitos de integración con OpenAI y no pretenden servir como guía completa de todo su entorno.
Funciones no compatibles si EKM está habilitado
En esta versión inicial, las siguientes funciones no están disponibles si EKM está habilitado:
Aplicaciones con sincronización
Funciones que no están en disponibilidad general (es decir, cualquier cosa que siga en beta/alpha)
