Visão geral
O Enterprise Key Management (EKM) permite que a OpenAI criptografe dados usando uma chave mestra que você controla. Para que a OpenAI possa executar operações de criptografia/descriptografia em seu Key Vault, precisamos ter acesso concedido a nós. Este documento mostra como configurar sua conta do Azure para que a OpenAI possa assumir uma função com permissões do Key Vault.

Etapas
1. Crie um service principal 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 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.
Acesse Assinatura → Controle de acesso (IAM)
Na lista suspensa + Adicionar , selecione Adicionar função personalizada.
Acesse a aba JSON , clique em Editar e adicione o seguinte:
Qualquer nome de função - lembre-se do nome selecionado
As seguintes permissões em dataActions:
Microsoft.KeyVault/vaults/keys/encrypt/actionMicrosoft.KeyVault/vaults/keys/decrypt/actionMicrosoft.KeyVault/vaults/keys/read

3. Criar um cofre de chaves + chave
Se ainda não houver um, crie um novo Key Vault na mesma assinatura em que você acabou de criar sua função personalizada.
Nesse Key Vault, crie uma nova chave:
Acesse Key Vault → Objetos → Chaves e selecione Gerar/Importar
Em Opções, selecione Gerar.

Selecione RSA como algoritmo de criptografia.
É possível escolher qualquer tamanho de chave RSA
Forneça um nome de chave no seguinte formato:
<org-xxx>--<any_name>, ondeorg-xxxé o seu ID de organização OpenAI, que você pode encontrar em https://platform.openai.com/settings/organization/general

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

4. Crie uma atribuição de função para a entidade de serviço OpenAI + novo KMS personalizado + nova chave.
Acesse Key Vault → Objetos → Chaves e selecione a linha da chave criada
Acesse o Controle de acesso (IAM) da chave que você acabou de clicar (não do seu cofre de chaves).
Na lista suspensa + Adicionar , selecione Adicionar atribuição de função

Na aba Função, selecione o nome da função personalizada criada anteriormente.

Na aba Membros:
Clique em “+ Selecionar membros”
Digite “ekm -” na barra de pesquisa e o principal de serviço da OpenAI que você criou na Etapa 1 deverá ser carregado.

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>"
"vault_uri": "https://<YOUR_KEYVAULT_NAME>.vault.azure.net/"
"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 nesta referência da API: Chaves externas 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.
# Isso gera um ID de chave externa do formulário 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).
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"
}'