OpenAI

Instrucciones para la integración de EKM de OpenAI/Azure

Instrucciones paso a paso para realizar el aprovisionamiento de Azure y activar EKM

Última actualización: yesterday

Descripción general

La administración empresarial de claves (EKM) permite que OpenAI cifre los datos mediante una clave maestra que tú controlas. Para que OpenAI pueda realizar operaciones de cifrado/descifrado en tu Key Vault, necesitamos que se nos conceda acceso. Este documento muestra cómo configurar tu cuenta de Azure para que OpenAI pueda asumir un rol con permisos de Key Vault.

Azure EKM flow where OpenAI EKM uses Microsoft Entra ID to access your Key Vault and master KEK

Pasos

1. Crea una entidad de servicio para OpenAI en tu cuenta

  1. Obtén un token de acceso

az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_ID

2. Crea la entidad de servicio: el appId de la solicitud a continuación es el identificador de cliente de la aplicación de OpenAI. Esto creará una entidad principal con el nombre para mostrar “EKM - OpenAI Azure”; recuerda esto para los pasos posteriores.

Instrucciones para la integración de OpenAI/Azure EKM: crear una entidad principal

curl -X POST https://graph.microsoft.com/v1.0/servicePrincipals \
-H "Authorization: Bearer $TOKEN_FROM_ABOVE" \
-H "Content-Type: application/json" \
–d '{"appId": "20a14814-5ab7-4612-a671-1382b412bf93"}'

2.º Crea un rol personalizado para acceso limitado a KMS.

  1. Ve a Suscripciones -> Control de acceso (IAM)

  2. En el menú desplegable + Agregar , selecciona Agregar rol personalizado

  3. Ve a la pestaña JSON, haz clic en Editar y agrega lo siguiente

    1. Cualquier nombre de rol, recuerda el nombre que seleccionaste

    2. Los siguientes permisos en dataActions

      1. Microsoft.KeyVault/vaults/keys/encrypt/action

      2. Microsoft.KeyVault/vaults/keys/decrypt/action

      3. Microsoft.KeyVault/vaults/keys/read

        OpenAI / Azure EKM Integration Instructions Custom Role

3. Crea un Key Vault + clave

Si aún no tienes uno, crea un nuevo Key Vault en la misma suscripción donde acabas de crear tu rol personalizado.

En ese Key Vault, crea una nueva clave:

  1. Ve a Key Vault -> Objetos -> Claves y luego haz clic en Generar/Importar

  2. En Opciones, selecciona Generar

    Azure Key Vault Keys page with Generate/Import highlighted to add a key
  3. Selecciona RSA como algoritmo de cifrado.

  4. Puedes seleccionar cualquier tamaño de clave RSA

  5. Proporciona un nombre de clave con el siguiente formato: <org-xxx>--<any_name>, donde org-xxx es tu ID de organización de OpenAI, que puedes encontrar en https://platform.openai.com/settings/organization/general

    Azure Key Vault key generation form with RSA selected and key name org-abcdefg--test-keyvault-key

Si no puedes ver o crear una clave, cerciórate de tener el rol de Administrador de Key Vault. Esto es necesario incluso si tienes el rol de Propietario. Para que te asignen el rol:

  1. Ve a Key Vault->Control de acceso (IAM)

  2. Haz clic en Agregar-> Agregar asignación de roles

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment

4. Crear una asignación de roles para la entidad de servicio de OpenAI + un nuevo KMS personalizado + una nueva clave

  1. Ve a Key Vault -> Objetos-> Claves y luego haz clic en la fila de la clave que creaste

  2. Ve a Control de acceso (IAM) para la clave en la que acabas de hacer clic (no para tu almacén de claves).

  3. En el menú desplegable + Agregar, selecciona Agregar asignación de roles

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  4. En la pestaña Rol, selecciona el nombre del rol personalizado que acabas de crear.

    Azure role list filtered for openai- with the openai-azure-kms-role entry
  5. En la pestaña Miembros:

    1. Haz clic en “+ Seleccionar miembros”

    2. Escribe “ekm -” en la barra de búsqueda; luego, debería cargarse la entidad de servicio de OpenAI que creaste en el paso 1.

      Azure role assignment Members step with EKM - OpenAI Azure Application selected as a member

5. Aplica restricciones adicionales de acuerdo con tus propias prácticas de seguridad

Arriba se encuentra la información mínima requerida que OpenAI necesita para configurar 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:

  • "tenant_id": "<YOUR_AZURE_TENANT_UUID>"

    • Tu UUID del inquilino de Azure

  • "vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"

    • El URI del almacén de Azure que contiene la clave maestra que administra

  • "key_name": "<YOUR_KEY_NAME>"

    • El nombre de la clave maestra de Azure Key Vault que gestionas

    • El nombre de la clave debe tener la forma <org-xxx>--<any_name>, donde org-xxx es tu ID de organización de OpenAI, que puedes encontrar en https://platform.openai.com/settings/organization/general

Habilitaremos EKM para tu organización/espacio 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 la organización de OpenAI, lo que generará un id. de clave externa con el formato extkey_xxx

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

  • Esto aún no agregará EKM a tu proyecto de OpenAI. 

# Esto genera un ID de clave externa con el formato extkey_xxx

curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
  "type": "azure",
  "name": "<ANY_FRIENDLY_NAME>",
  "tenant_id": "<YOUR_AZURE_TENANT_UUID>",
  "vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/",
  "key_name": "<YOUR_KEY_NAME>"
}'
  • 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 proporcionará el ID del proyecto (proj_xxx)

    Instrucciones de integración de OpenAI / Azure EKM - Crear proyecto

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?