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.

Passos
1. Criar um principal de serviço para a OpenAI na sua conta
Obter um token de acesso
az account get-access-token --resource https://graph.microsoft.com
--tenant YOUR_TENANT_IDCrie 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
Aceda a Subscrições -> Controlo de acesso (IAM)
No menu pendente + Adicionar, selecione Adicionar função personalizada
Aceda ao separador JSON, clique em Editar e adicione o seguinte:
Qualquer nome de função — lembre-se do nome que selecionou
As seguintes permissões em dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

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:
Aceda a Key Vault -> Objetos -> Chaves e clique em Gerar/Importar
Em Opções, selecione Gerar

Selecione RSA como algoritmo de encriptação.
Pode selecionar qualquer tamanho de chave RSA
Forneça um nome de chave com o seguinte formato:
<org-xxx>--<any_name>, em queorg-xxxé o ID da sua organização OpenAI, que pode encontrar em https://platform.openai.com/settings/organization/general

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:
Aceda a Key Vault -> Controlo de acesso (IAM)
Clique em Adicionar -> Adicionar atribuição de função

4. Criar uma atribuição de função para o principal de serviço da OpenAI + novo KMS personalizado + nova chave
Aceda a Key Vault -> Objetos -> Chaves e clique na linha da chave que criou
Aceda a Controlo de acesso (IAM) da chave em que acabou de clicar (não do seu Key Vault).
No menu pendente + Adicionar, selecione Adicionar atribuição de função

No separador Função, selecione o nome da função personalizada que acabou de criar.

No separador Membros:
Clique em “+ Selecionar membros”
Escreva “ekm -” na barra de pesquisa; em seguida, deverá ser carregado o principal de serviço da OpenAI que criou no Passo 1

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