Registre um par de chaves assimétricas RSA-3072 do seu provedor de nuvem para usar com a OpenAI.
Sua chave privada permanece no AWS KMS, no Azure Key Vault ou no Google Cloud KMS. No momento do registro, a OpenAI armazena uma cópia da chave pública correspondente.
Registrar uma chave não configura recursos do produto nem o armazenamento. Este guia aborda as chaves usadas para descriptografar dados do PSP.
Antes de começar
- Tenha em mãos o ID da organização. Use a mesma organização para configurar a relação de confiança com o provedor de nuvem, registrar a chave e acessar a API.
- Crie uma chave da API de administração da organização com permissões de leitura e gravação para chaves externas. Carregue-a de forma segura na variável
OPENAI_ADMIN_KEY. Chaves de projeto usadas para inferência não funcionam nesse caso. - Verifique se você tem permissão para criar uma chave RSA-3072 habilitada e conceder à OpenAI acesso de leitura à chave pública com o escopo definido neste guia.
- Restrinja o uso da chave privada a usuários autorizados e mantenha as versões antigas da chave enquanto houver registros que dependam delas.
Configurar uma chave na nuvem
Siga as etapas do seu provedor antes de registrar a chave. Todas as configurações usam RSA-3072 e permitem que a OpenAI leia apenas a chave pública e seus metadados.
Registrar sua chave
Os exemplos usam curl e um shell compatível com Bash. Carregue OPENAI_ADMIN_KEY de forma segura e defina o ID da organização:
API_BASE="https://api.openai.com/v1"
ORG_ID="<OPENAI_ORG_ID>"
: "${OPENAI_ADMIN_KEY:?Load your organization admin key securely}"
KEYS_URL="$API_BASE/organization/external_keys"
Prepare a solicitação de registro
A enumeração purpose aceita ekm (valor padrão) ou psp_decryption. Use psp_decryption para as chaves assimétricas deste guia. O valor ekm se destina ao gerenciamento de chaves empresariais (EKM).
Salve a solicitação do seu provedor como registration.json. Substitua os valores de exemplo, pois o JSON não expande variáveis do shell.
Solicitação para o AWS KMS
{
"type": "aws",
"purpose": "psp_decryption",
"name": "asymmetric-key-aws",
"role_arn": "<CUSTOMER_ROLE_ARN>",
"external_id": "<OPENAI_ORG_ID>",
"kms_arn": "<CUSTOMER_KMS_KEY_ARN>"
}
Solicitação para o Azure Key Vault
{
"type": "azure",
"purpose": "psp_decryption",
"name": "asymmetric-key-azure",
"tenant_id": "<CUSTOMER_TENANT_ID>",
"vault_uri": "https://<CUSTOMER_VAULT_NAME>.vault.azure.net",
"key_name": "<OPENAI_ORG_ID>--asymmetric-key",
"key_version": "<CUSTOMER_KEY_VERSION>"
}
Solicitação para o Google Cloud KMS
{
"type": "gcp",
"purpose": "psp_decryption",
"name": "asymmetric-key-gcp",
"workload_identity_project_number": "<CUSTOMER_GCP_PROJECT_NUMBER>",
"workload_identity_pool_id": "openai-keys",
"workload_identity_provider_id": "openai-google",
"audience": "<OPENAI_ORG_ID>",
"kms_project_id": "<CUSTOMER_KMS_PROJECT_ID>",
"kms_key_ring_name": "asymmetric-keys",
"kms_key_name": "asymmetric-key",
"kms_key_location": "us-central1",
"kms_key_version": "1"
}
1. Registre e valide a chave
curl --fail-with-body -sS "$KEYS_URL" \
-H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
-H "OpenAI-Organization: $ORG_ID" \
-H "Content-Type: application/json" \
--data @registration.json
Durante o registro, a API valida a chave antes de salvá-la. Em caso de sucesso, a API retorna HTTP 200 com um ID extkey e a configuração do seu provedor. Exemplo de campos da resposta:
{
"id": "extkey_11111111111111111111111111111111",
"object": "organization.external_key",
"name": "asymmetric-key-gcp",
"type": "gcp",
"purpose": "psp_decryption",
"api_project_ids": []
}
Guarde o ID de registro retornado:
KEY_ID="<EXTERNAL_KEY_ID>"
2. Valide a chave novamente (opcional)
GET retorna os dados armazenados. POST /validate verifica novamente o acesso atual e a validade da chave usando a chave pública salva como referência. Essa operação não descriptografa registros nem atualiza a cópia salva.
curl --fail-with-body -sS "$KEYS_URL/$KEY_ID" \
-H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
-H "OpenAI-Organization: $ORG_ID"
curl --fail-with-body -sS -X POST "$KEYS_URL/$KEY_ID/validate" \
-H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
-H "OpenAI-Organization: $ORG_ID"
Resposta esperada (HTTP 200):
{ "status": "success" }
Valide a chave novamente após alterações na chave, nas permissões ou na rede. Aguarde a propagação das alterações do IAM antes de tentar novamente.
Para usar a chave registrada na descriptografia de dados do PSP, selecione-a para um projeto.
Listar chaves
Use purpose=psp_decryption para listar os registros dessas chaves assimétricas. Se você omitir o filtro, a API retornará registros de todas as finalidades. O filtro purpose=ekm retorna apenas os registros de EKM.
curl --fail-with-body -sS --get "$KEYS_URL" \
-H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
-H "OpenAI-Organization: $ORG_ID" \
--data-urlencode "purpose=psp_decryption" \
--data-urlencode "order=asc" \
--data-urlencode "limit=20"
Enquanto has_more for true, solicite a próxima página definindo after como o valor de last_id. Mantenha os valores de purpose, order e limit.
Substituir uma chave
- Crie uma nova chave na AWS ou uma nova versão da chave no Azure ou no GCP e conceda acesso de leitura.
- Registre a nova chave ou versão.
- Selecione o novo ID
extkeyno projeto e verifique a seleção.
Cada registro preserva uma cópia da chave pública no momento do registro. A rotação de chaves na nuvem não atualiza essa cópia. Mantenha as chaves privadas antigas enquanto houver registros que dependam delas. Alterar a seleção não migra os registros existentes.
Excluir uma chave
Limpe ou substitua a seleção em cada projeto ativo antes de excluir o registro:
curl --fail-with-body -sS -X DELETE "$KEYS_URL/$KEY_ID" \
-H "Authorization: Bearer $OPENAI_ADMIN_KEY" \
-H "OpenAI-Organization: $ORG_ID"
A exclusão retorna HTTP 200 com object: "organization.external_key.deleted". A chave permanece no seu provedor de nuvem.
Solução de problemas
| Erro | O que verificar |
|---|---|
| 401 ou 403 | Use uma chave da API de administração da organização e confirme se ela permite registrar chaves externas. |
400 external_key_provider_error |
Verifique a relação de confiança com o provedor de nuvem, as permissões de leitura e o acesso à rede. Confira o algoritmo da chave e se ela está habilitada. |
| 400 por falha na validação da solicitação | Confira a finalidade, o ARN específico da chave da AWS e a versão exata da chave no Azure ou no GCP. |
| 404 | Verifique o ID do registro e a organização. Não é possível usar registros excluídos ou de outra organização. |
external_key_used_by_active_projects |
Limpe ou substitua a seleção da chave em todos os projetos ativos. |
| A chave não corresponde mais à chave registrada | Registre a nova chave ou versão e selecione o novo ID. |
Ao solicitar suporte, informe o erro e o x-request-id. Nunca compartilhe credenciais.