OpenAI

Instrucciones para la integración de OpenAI/AWS EKM

Instrucciones paso a paso para aprovisionar AWS y activar EKM

Última actualización: 3 days ago

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.

AWS EKM integration flow between OpenAI EKM Service, your STS, your KMS, and your master KEK

Pasos

1. Crear una nueva clave de KMS

  1. Ve a KMS -> Claves administradas por el cliente, luego haz clic en Crear clave.

  2. Selecciona un algoritmo de cifrado simétrico.

  3. 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>.

AWS KMS customer managed key details page with key ID and ARN for test-kms

2.º Crea una política personalizada para el acceso limitado a la clave de KMS.

  1. Vea a IAM -> Políticas, luego haz clic en Crear política.

  2. 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.

AWS IAM Create policy page with Specify permissions open and the JSON policy editor selected
{
    "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 llamará a AssumeRole desde una cuenta de AWS propiedad de OpenAI. Este paso permite que la entidad principal de AWS de OpenAI asuma el rol limitado para acceder a tu KMS.

  1. Ve a IAM → Roles, luego haz clic en Crear rol.

  2. En el paso Seleccionar entidad de confianza, selecciona Política personalizada de confianza.

AWS IAM Select trusted entity screen with Custom trust policy selected

A continuación, ingresa lo siguiente en la Política de confianza personalizada para permitir el acceso al principal de AWS de OpenAI.

  • El principal es el principal de AWS de OpenAI: arn:aws:iam::790389265272:role/EnterpriseKeyManagement.

  • Indica cuál ExternalId debe especificar OpenAI durante el proceso de AssumeRole.

{
    "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>,
                     ]
                }
            }
        }
    ]
}

A continuación, 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.

AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected

Por último, 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 la EKM. Tienes la libertad de aplicar políticas de claves o restricciones adicionales de acuerdo con 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

Comunícate 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 sistema de administración de claves para la clave maestra que administras.

Habilitaremos la EKM para tu organización o 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.

  1. Primero, registra tu clave externa a nivel de la organización de OpenAI, lo que generará un ID de clave externa.

  2. En este paso, verificaremos que la información que ingresaste sea válida y que podamos autenticarnos en tu KMS.

  3. Esto todavía no agregará la 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, la 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"
}'

¿Este artículo te fue útil?