Resumen
Enterprise Key Management (EKM) permite a OpenAI cifrar datos usando una clave maestra que tú controlas. Este documento muestra cómo configurar tu cuenta de AWS para dar a OpenAI permisos limitados sobre tu KMS.

Pasos
1. Crea una nueva clave de KMS
Ve a KMS -> Customer managed keys y luego haz clic en Create Key
Selecciona un algoritmo de cifrado simétrico
Después de crear tu clave, anota su ARN. Los formatos compatibles incluyen arn:aws:kms:<region>:<account_number>:key/<uuid>, ...:key/mrk-*, o ...:alias/<alias_name>

2. Crea una política personalizada para acceso limitado a la clave de KMS
Ve a IAM -> Policies y luego haz clic en Create Policy
En el paso Specify permissions, selecciona JSON e introduce lo siguiente para otorgar a la política acciones de acceso a KMS. Asegúrate de reemplazar YOUR_KMS_ARN por el ARN de la clave que creaste.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <TU_KMS_ARN>
}
]
}
3. Crea un rol de IAM para que OpenAI lo asuma y asígnalo a la política con acceso limitado a tu KMS
OpenAI llamará a AssumeRole desde una cuenta de AWS propiedad de OpenAI. Este paso reconoce que el principal de AWS de OpenAI puede asumir el rol limitado para acceder a tu KMS.
Ve a IAM -> Roles y luego haz clic en Create Role
En el paso Select trusted entity, selecciona Custom trust policy

Introduce lo siguiente en la custom trust policy para permitir acceso al principal de AWS de OpenAI.
El principal es el principal de AWS de OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Indica qué ExternalId debe pasar OpenAI durante el proceso de AssumeRole.
Para ChatGPT o API, puedes usar el id de organización (org-xxx) asociado a tu Área de trabajo: https://platform.api.openai.org/settings/organization/general
Para API, puedes poner un ID de proyecto de API específico para mayor granularidad
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
<TU_ID_DE_ORGANIZACIÓN_DE_OpenAI>,
]
}
}
}
]
}
En el paso Add permissions, busca el nombre de la política de IAM que creaste en el paso anterior. Haz clic en la casilla junto al nombre de la política y luego haz clic en Next.

En la sección Name, review, and create, selecciona cualquier nombre para el rol.
4. Aplica cualquier restricción adicional conforme a tus propias prácticas de seguridad
Lo anterior es la información mínima necesaria que OpenAI necesita para configurar EKM. Puedes aplicar políticas de clave o restricciones adicionales conforme a tus propias prácticas internas de seguridad, siempre que OpenAI pueda llamar a las 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
Ponte en contacto con tu contacto de OpenAI y comparte lo siguiente:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
El ARN del rol que OpenAI asumirá en tu nube
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
El ARN del Key Management System de la clave maestra que gestionas
Habilitaremos EKM para tu organización/Área de trabajo de ChatGPT.
API
Registra tu clave externa con OpenAI
Sigue las instrucciones de esta referencia de API Claves externas en la API de administració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 que tu entrada sea válida y que podamos 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": "aws",
"name": "Configuración de AWS EKM",
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>",
"external_id": <tu id de organización o id de proyecto>
}'Después, crea un proyecto de OpenAI asociado con la clave externa. Tras esto, EKM quedará activado en tu proyecto.
El cuerpo de respuesta de esta llamada a la API te dará el ID del proyecto (proj_xxx)
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"
}'
