For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme

Configurar chaves assimétricas

Registre uma chave pública gerenciada na nuvem para usar com a OpenAI

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

  1. Crie uma nova chave na AWS ou uma nova versão da chave no Azure ou no GCP e conceda acesso de leitura.
  2. Registre a nova chave ou versão.
  3. Selecione o novo ID extkey no 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.

Guias relacionados