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 AWS para otorgar a OpenAI permisos limitados sobre tu KMS.

Pasos
1. Crear una nueva clave de KMS
Ve a KMS -> Claves administradas por el cliente, luego haz clic en Crear clave
Seleccione un algoritmo de cifrado simétrico
Después de crear tu clave, toma nota de 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 el acceso limitado a la clave de KMS.
Ve a IAM -> Políticas, luego haz clic en Crear política
En el paso Especificar permisos, selecciona JSON e ingresa lo siguiente para otorgar a la política acciones de acceso de KMS. Asegúrate de reemplazar YOUR_KMS_ARN con el ARN de la clave que creaste.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEncryptDecrypt",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt"
],
"Resource": <YOUR_KMS_ARN>
}
]
}
3. Crea un IAM Role para que OpenAI lo asuma y asígnalo a la política con acceso limitado a tu KMS
OpenAI va a llamar a AssumeRole desde una cuenta de AWS propiedad de OpenAI. En este paso se reconoce que la entidad principal de AWS de OpenAI puede asumir el rol limitado para acceder a tu KMS.
Ve a IAM → Roles y, luego, haz clic en Crear rol
En el paso Seleccionar entidad de confianza, seleccione Política personalizada de confianza

Ingresa lo siguiente en la Política de confianza personalizada para permitir el acceso al principal de AWS de OpenAI.
La entidad principal es la entidad principal de AWS de OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement
Indica cuál Externald debe especificar OpenAI durante el proceso de AssumeRole.
Para ChatGPT o la API, puedes usar el ID de la organización (org-xxx) asociado con tu espacio de trabajo - https://platform.api.openai.org/settings/organization/general
Para API, puedes ingresar un ID de proyecto de API específico para tener mayor granularidad
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::790389265272:role/EnterpriseKeyManagement"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": [
<YOUR_OPENAI_ORGANIZATION_ID>,
]
}
}
}
]
}
En el paso Agregar permisos, busca el nombre de la política de IAM que creaste en el paso anterior. Haz clic en la casilla de verificación junto al nombre de la política y, luego, en Siguiente.

En la sección Nombre, revisión y creación, selecciona cualquier nombre de rol.
4. Aplica cualquier restricción adicional de acuerdo con tus propias prácticas de seguridad
Arriba se encuentra la información mínima requerida que OpenAI necesita para configurar EKM. Puedes aplicar políticas de claves o restricciones adicionales según 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
Ponte en contacto con tu persona de referencia en OpenAI y comparte lo siguiente:
"role_arn": "arn:aws:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>",
El Role ARN que OpenAI asumirá en tu nube
"kms_arn": "arn:aws:kms:<REGION>:<YOUR_AWS_ACCOUNT_NUMBER>:key/<UUID>"
El ARN del Sistema de administración de claves para la clave maestra que administra
Habilitaremos EKM para tu organización/espacio de trabajo de ChatGPT.
API
Registra tu clave externa con OpenAI
Sigue las instrucciones en 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 identificador de clave externa.
En este paso, validaremos que la entrada sea válida y que podamos autenticarnos en el KMS.
Esto aún no agregará 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": "AWS EKM Config",
"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": <your org id or project id>
}'Luego, crea un proyecto de OpenAI asociado con la clave externa. Después de esto, EKM se activa en tu proyecto.
El cuerpo de la 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": "Some Project",
"external_key_id": "extkey_xxxx"
}'
