OpenAI
Esta página foi traduzida automaticamente. Ver o artigo original em inglês.

Instruções de integração OpenAI / Azure EKM

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

Atualizado: 6 days ago

Descrição geral

A Enterprise Key Management (EKM) permite à OpenAI encriptar dados através de uma chave mestra que controla. Para a OpenAI poder invocar operações de encriptação/desencriptação no seu Key Vault, teremos de receber acesso. Este documento mostra como configurar a sua conta Azure para que a OpenAI possa assumir uma função com permissões do Key Vault.

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

Passos

1. Criar um principal de serviço 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
  1. Crie o principal de serviço — o appId no pedido abaixo é o ID de cliente da aplicação da OpenAI. Isto criará um principal com o nome a apresentar “EKM - OpenAI Azure” — guarde-o para passos posteriores.

Instruções de integração OpenAI/Azure EKM — Criar principal de serviço

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. Criar uma função personalizada para acesso limitado ao KMS

  1. Aceda a Subscrições -> Controlo de acesso (IAM)

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

  3. Aceda ao separador JSON, clique em Editar e adicione o seguinte:

    1. Qualquer nome de função — lembre-se do nome que selecionou

    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. Criar um Key Vault + Chave

Se ainda não tiver um, crie um novo Key Vault na mesma subscrição onde acabou de criar a função personalizada.

Nesse Key Vault, crie uma nova chave:

  1. Aceda a Key Vault -> Objetos -> Chaves e clique em Gerar/Importar

  2. Em Opções, selecione Gerar

Azure Key Vault Keys page with Generate/Import highlighted to add a key
  1. Selecione RSA como algoritmo de encriptação.

  2. Pode selecionar qualquer tamanho de chave RSA

  3. Forneça um nome de chave com o seguinte formato: <org-xxx>--<any_name>, em que org-xxx é o ID da sua organização OpenAI, que pode encontrar 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

Se não conseguir ver ou criar uma chave, certifique-se de que tem a função Administrador do Key Vault. Isto é necessário mesmo que tenha a função Proprietário. Para que a função lhe seja atribuída:

  1. Aceda a Key Vault -> Controlo 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. Criar uma atribuição de função para o principal de serviço da OpenAI + novo KMS personalizado + nova chave

  1. Aceda a Key Vault -> Objetos -> Chaves e clique na linha da chave que criou

  2. Aceda a Controlo de acesso (IAM) da chave em que acabou de clicar (não do seu Key Vault).

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

Azure Key Vault Access control (IAM) page with Add menu open to Add role assignment
  1. No separador Função, selecione o nome da função personalizada que acabou de criar.

Azure role list filtered for openai- with the openai-azure-kms-role entry
  1. No separador Membros:

    1. Clique em “+ Selecionar membros”

    2. Escreva “ekm -” na barra de pesquisa; em seguida, deverá ser carregado o principal de serviço da OpenAI que criou no Passo 1

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

5. Aplicar quaisquer restrições adicionais de acordo com as suas próprias práticas de segurança

Acima encontra-se a informação mínima necessária para a OpenAI configurar o EKM. Pode aplicar políticas de chave ou restrições adicionais de acordo com as suas próprias práticas internas de segurança, desde que a OpenAI consiga invocar operações de encriptação e desencriptação no seu KMS. Quando invocar o endpoint de registo de chaves com a OpenAI descrito abaixo, validaremos a sua configuração.

Depois de concluir os passos acima

ChatGPT Enterprise

Contacte o seu contacto da OpenAI e partilhe o seguinte:

  • "tenant_id": "<YOUR_AZURE_TENANT_UUID>"

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

  • "key_name": "<YOUR_KEY_NAME>"

  • O nome da chave mestra do Azure Key Vault que gere

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

Ativaremos o EKM para a sua organização/espaço de trabalho do ChatGPT.

API

Registar a sua chave externa na OpenAI

Siga as instruções nesta referência da API: Chaves externas na API de Gestão

  • Primeiro, registe a sua chave externa ao nível da organização OpenAI, o que gerará um ID de chave externa no formato extkey_xxx

  • Neste passo, validaremos que a sua entrada é válida e que conseguimos autenticar-nos no seu KMS.

  • Isto ainda não adicionará o EKM ao seu projeto 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 OpenAI associado à chave externa. Depois disto, o EKM fica ativado no seu projeto.

  • O corpo da resposta desta chamada de API fornecer-lhe-á o ID do projeto (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 artigo foi útil?