OpenAI

Instruções de integração da OpenAI com Azure EKM

Instruções passo a passo para provisionar o Azure e ativar o EKM

Atualizado: 14 days ago

Visão geral

O Enterprise Key Management (EKM) permite que a OpenAI criptografe dados usando uma chave mestra sob seu controle. Para que a OpenAI possa realizar operações de criptografia e descriptografia no seu Key Vault, é necessário conceder acesso. Este documento mostra como configurar sua conta do Azure para que a OpenAI possa assumir uma função com permissões no Key Vault.

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

Etapas

1. Crie um service principal para a OpenAI na sua conta

  1. Obter um token de acesso

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

2. Crie o service principal. O appId na solicitação abaixo é o ID de cliente do aplicativo da OpenAI. Isso criará uma entidade com o nome de exibição “EKM - OpenAI Azure”. Lembre-se disso para as próximas etapas.

Instruções de integração da OpenAI com Azure EKM - criação do service 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. Crie uma função personalizada para acesso limitado ao KMS

  1. Acesse Assinatura → Controle de acesso (IAM)

  2. No menu suspenso + Adicionar, selecione Adicionar função personalizada

  3. Vá para a aba JSON, clique em Editar e adicione o seguinte

    1. Qualquer nome de função - lembre-se do nome selecionado

    2. As seguintes permissões em 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. Crie um Key Vault e uma chave

Se ainda não houver um, crie um novo Key Vault na mesma assinatura em que a função personalizada foi criada

Nesse Key Vault, crie uma nova chave:

  1. Acesse Key Vault → Objetos → Chaves e selecione Gerar/Importar

  2. Em “Opções”, selecione Gerar

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

  4. É possível escolher qualquer tamanho de chave RSA

  5. Defina um nome de chave no seguinte formato: <org-xxx>--<any_name>, em que org-xxx é o ID da organização OpenAI, disponível em https://platform.openai.com/settings/organization/general

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

Caso não seja possível visualizar ou criar a chave, verifique se a função Administrador do Key Vault foi atribuída. Essa permissão é necessária mesmo quando há a função Proprietário. Para atribuir a função:

  1. Acesse Key Vault → Controle de acesso (IAM)

  2. Clique em Adicionar → Adicionar atribuição de função

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

4. Crie uma atribuição de função para o service principal da OpenAI, o KMS personalizado e a nova chave

  1. Acesse Key Vault → Objetos → Chaves e selecione a linha da chave criada

  2. Em seguida, acesse Controle de acesso (IAM) dessa chave específica (não do Key Vault).

  3. No menu suspenso + Adicionar, selecione Adicionar atribuição de função

    Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  4. Na aba Função, selecione o nome da função personalizada criada anteriormente.

    Azure role list filtered for openai- with the openai-azure-kms-role entry
  5. Na aba Membros:

    1. Clique em “+ Selecionar membros”

    2. Digite “ekm -” na barra de busca e a entidade de serviço da OpenAI criada na Etapa 1 deve aparecer para seleção

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

5. Aplique restrições adicionais conforme as práticas de segurança

Os itens acima representam os requisitos mínimos para configuração do EKM. É possível aplicar políticas ou restrições adicionais de acordo com as práticas internas de segurança, desde que a OpenAI consiga executar operações de criptografia e descriptografia no KMS. Ao chamar o endpoint de registro de chave da OpenAI descrito na documentação, a configuração será validada.

Após concluir as etapas acima

ChatGPT Enterprise

Entre em contato com sua pessoa de contato na OpenAI e compartilhe as seguintes informações:

  • "tenant_id": "<YOUR_AZURE_TENANT_UUID>"

    • O UUID do seu locatário do Azure

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

    • O URI do cofre do Azure que contém a chave mestra que você gerencia

  • "key_name": "<YOUR_KEY_NAME>"

    • O nome da chave mestra do Azure Key Vault que você gerencia

    • O nome da chave deve seguir o formato <org-xxx>--<any_name>, em que org-xxx é o ID da sua organização OpenAI, disponível em https://platform.openai.com/settings/organization/general

A OpenAI habilitará o EKM para sua organização ou workspace do ChatGPT.

API

Cadastre sua chave externa na OpenAI

Siga as instruções na referência da API de Chaves Externas, disponível na API de gerenciamento

  • Primeiro, registre sua chave externa no nível da organização da OpenAI. Isso gerará um ID de chave externa no formato extkey_xxx

  • Nessa etapa, a OpenAI valida se os dados fornecidos são válidos e se é possível autenticar no KMS.

  • Esse processo ainda não ativa o EKM no projeto da OpenAI. 

# This generates an external key ID of the form 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>"
}'
  • Em seguida, crie um projeto da OpenAI associado à chave externa. Após essa etapa, o EKM será ativado no projeto.

  • O corpo da resposta desta chamada de API fornecerá o ID do projeto (proj_xxx)
    Instruções de integração da OpenAI com Azure EKM - Criação de projeto

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 artigo foi útil?