OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Instrucciones de integración de OpenAI / AWS EKM

Instrucciones paso a paso para aprovisionar AWS y activar EKM

Actualización: 4 days ago

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.

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

Pasos

1. Crea una nueva clave de KMS

  1. Ve a KMS -> Customer managed keys y luego haz clic en Create Key

  2. Selecciona un algoritmo de cifrado simétrico

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

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

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

  1. Ve a IAM -> Policies y luego haz clic en Create Policy

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

    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": <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.

  1. Ve a IAM -> Roles y luego haz clic en Create Role

  2. En el paso Select trusted entity, selecciona Custom trust policy

    AWS IAM Select trusted entity screen with Custom trust policy selected
  3. Introduce lo siguiente en la custom trust policy para permitir acceso al principal de AWS de OpenAI.

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

    2. Indica qué ExternalId debe pasar OpenAI durante el proceso de AssumeRole.

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

      2. 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>,
                             ]
                        }
                    }
                }
            ]
        }
  4. 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.

    AWS IAM Add permissions page filtered to customer managed KMS policies with test-allow-kms-access selected
  5. 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

  1. Primero, registra tu clave externa en el nivel de organización de OpenAI, lo que generará un id de clave externa.

  2. En este paso, validaremos que tu entrada sea válida y que podamos autenticarnos en tu KMS.

  3. 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>
    }'
  4. Después, crea un proyecto de OpenAI asociado con la clave externa. Tras esto, EKM quedará activado en tu proyecto.

  5. 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"
    }'

¿Te ha resultado útil este artículo?