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

Instrucciones de integración de OpenAI / GCP EKM

Instrucciones paso a paso para aprovisionar GCP 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 GCP para otorgar a OpenAI permisos limitados sobre tu KMS.

Diagram of OpenAI GCP EKM integration flow using STS token exchange and KMS encrypt or decrypt requests

Pasos

1. Crea una identidad federada para OpenAI

OpenAI emitirá un token de identidad desde una cuenta de GCP propiedad de OpenAI que tendrá un aspecto similar a este.

  • Los campos azp y sub son el ID de la cuenta de servicio de OpenAI en GCP

  • El aud es tu ID de organización de OpenAI. También puedes elegir otra audiencia, como tu ID de proyecto de OpenAI; consulta las instrucciones a continuación

{
  "aud": "org-xxxx",
  "azp": "105900137572174660365",
  "exp": 1747876928,
  "iat": 1747873328,
  "iss": "https://accounts.google.com",
  "sub": "105900137572174660365"
}

Este paso reconoce las reclamaciones realizadas por ese token de identidad y permite que tu STS de GCP emita un token de acceso cuando se proporcione ese token de identidad.

  1. Ve a IAM & Admin -> Workload Identity Federation y haz clic en Create Pool

    GCP IAM & Admin with Workload Identity Federation selected
  2. En el paso Create an identity pool, introduce cualquier valor para el nombre del pool.

    1. Recuérdalo para más tarde: tendrás que registrarlo en OpenAI

  3. En el paso Add a provider to pool:

    1. En Select a provider, selecciona OpenID Connect (OIDC)

    2. Introduce cualquier valor para el nombre del proveedor.

    3. En la sección Issuer (URL), introduce https://accounts.google.com

    4. En la sección Audiences

      1. Selecciona Allowed audiences

      2. Introduce la audiencia que OpenAI debe indicar cuando te pasemos un token.

        1. Para ChatGPT o API: puedes introducir el ID de organización de la API de OpenAI (org-xxx)

        2. Para la API: puedes introducir un id de proyecto de API específico para tener más granularidad.

          GCP Workload Identity Provider edit page with Allowed audiences selected and Audience 1 entered
    5. En la sección Attribute mapping

      1. para google.subject introduce assertion.sub

        Google Cloud attribute mapping with Google 1 google.subject mapped to OIDC 1 assertion.sub
    6. En la sección Attribute conditions

      1. introduce assertion.sub == "105900137572174660365"

  4. Ahora deberías ver tu workload identity pool y tu workload identity provider en la página https://console.cloud.google.com/iam-admin/workload-identity-pools

    1. Id. del workload identity pool

      GCP Workload Identity Pools page highlighting the provider ID value needed for OpenAI EKM setup
    2. ID del workload identity provider

      GCP Workload Identity Provider edit page with the provider ID field highlighted

2. Asegúrate de que KMS esté habilitado

Ve a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview para habilitar KMS. No es necesario que crees tu KMS en el mismo proyecto de GCP en el que reconociste la identidad federada de OpenAI; sin embargo, si los proyectos son distintos, el producto KMS debe estar al menos habilitado en ambos proyectos.

3. Crea una nueva clave de KMS

  1. Ve a Security -> Data Protection > Key Management

  2. En la pestaña Overview, haz clic en Create key ring

    1. Elige cualquier nombre para tu key ring

    2. Para Purpose and algorithm, selecciona Symmetric encrypt/decrypt

      GCP Key Management Overview page with the Create Key Ring button highlighted
    3. Una vez que hayas creado un key ring, debería aparecer en la pestaña Key Rings. Haz clic en el key ring.

    4. En los detalles del key ring, haz clic en Create Key

      1. Elige cualquier nombre para tu clave

4. Crea un rol limitado para operaciones de cifrado/descifrado en el KMS

  1. Ve a IAM & Admin -> Roles -> Create role

  2. Introduce cualquier valor para el título y el ID del rol

  3. Haz clic en Add Permissions y, a continuación, añade lo siguiente

    1. cloudkms.cryptoKeyVersions.useToDecrypt

    2. cloudkms.cryptoKeyVersions.useToEncrypt

5. Asigna la identidad federada de OpenAI al rol limitado de KMS para operaciones de cifrado/descifrado

  1. Ve a Security -> Data Protection > Key Management

  2. Haz clic en el nombre de tu key ring y, a continuación, en el nombre de tu clave para ir a la página de detalles de tu clave.

    1. Si no lo tienes, vuelve a la sección Create a KMS

  3. Haz clic en la pestaña Permissions y, a continuación, en el botón Grant Access

    Google Cloud KMS key details page with Permissions tab open and Grant Access highlighted
  4. Asigna la identidad federada de OpenAI al rol personalizado que creaste anteriormente

    1. En la sección Add principals, introduce principal://iam.googleapis.com/projects/<YOUR_GCP_PROJECT_NUMBER>/locations/global/workloadIdentityPools/<YOUR_GCP_WORKLOAD_IDENTITY_POOL>/subject/105900137572174660365

      1. YOUR_GCP_PROJECT_NUMBER aquí es el proyecto en el que reconociste la identidad federada de OpenAI al crear un YOUR_GCP_WORKLOAD_IDENTITY_POOL. Puede estar, pero no es obligatorio, en el mismo proyecto donde se encuentra tu KMS.

      2. Si los proyectos son distintos, asegúrate de que KMS esté al menos habilitado en el otro proyecto yendo a https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview

    2. En la sección Assign roles, selecciona el rol personalizado que creaste en el paso anterior para permisos limitados de EKM

6. Aplica cualquier restricción adicional en línea con tus propias prácticas de seguridad

Lo anterior es la información mínima requerida que OpenAI necesita para configurar EKM. Puedes aplicar políticas de clave o restricciones adicionales en línea con 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:

  • "workload_identity_project_number": "123456789012",

    • El número de proyecto de GCP de 12 dígitos en el que registraste la workload identity de OpenAI

  • "workload_identity_pool_id": "openai-azure",

    • El pool que contiene el proveedor de Workload Identity que registraste para OpenAI

  • "workload_identity_provider_id": "openai-ekm-service-role",

    • El proveedor de Workload Identity que registraste para OpenAI

  • "kms_project_id": "adjective-noun-12345",

    • El nombre del proyecto de GCP donde se encuentra tu KMS

  • "kms_key_name": "openai-kms-key",

    • El nombre de la clave maestra del Key Management System

  • "kms_key_ring_name": "openai-kms-key-ring",

    • El key ring del Key Management System que contiene la clave maestra que administras

  • "kms_key_location": "us-east1"

    • La región donde se encuentra tu clave maestra del Key Management System

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 la API Claves externas en la API de administración

  • Primero, registra tu clave externa a nivel de organización de OpenAI, lo que generará un id de clave externa.

  • En este paso, validaremos tu configuración en GCP comprobando que podemos autenticarnos en tu KMS.

  • Esto todavía 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": "gcp",
   "name": "Configuración de GCP EKM",
   "workload_identity_project_number": "123456789012",
   "workload_identity_pool_id": "openai-azure",
   "workload_identity_provider_id": "openai-ekm-service-role",
   "audience": <tu id de organización o id de proyecto>,
   "kms_project_id": "adjective-noun-12345",
   "kms_key_name": "openai-kms-key",
   "kms_key_ring_name": "openai-kms-key-ring",
   "kms_key_location": "us-east1"
}'

A continuación, crea un proyecto de OpenAI asociado a la clave externa. Después de esto, EKM se activa en tu proyecto.

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?