Configurar o Azure Key Vault para CMEK
Use o Azure Key Vault para fornecer uma chave de criptografia para sua organização.
claude "/claude-api help me configure a customer-managed encryption key with Azure Key Vault"Este guia explica como configurar uma chave do Azure Key Vault como uma chave de criptografia gerenciada pelo cliente, ou CMEK ("customer-managed encryption key") para sua organização Anthropic.
Pré-requisitos
- Um Azure Key Vault com autorização RBAC habilitada (
enableRbacAuthorization: true) e acesso à rede pública permitido. A Anthropic chama seu vault pelo endpoint público do plano de dados; endpoints privados não são suportados. - Proteção contra limpeza (purge protection) habilitada (
enablePurgeProtection: true) no vault. Sem ela, uma chave excluída pode ser limpa permanentemente durante a janela de retenção de exclusão reversível (soft-delete), causando perda irreversível dos seus dados protegidos por CMEK. A proteção contra limpeza não pode ser desabilitada depois de habilitada. - Permissões para criar chaves no vault e atribuir funções RBAC nele.
- Permissões para criar entidades de serviço (service principals) no seu tenant do Entra (
Application Administrator,Cloud Application Administratorou uma função personalizada equivalente). - Uma chave de API Admin da Anthropic para sua organização.
- A CLI
azinstalada e autenticada. - Diagnostic Settings (configurações de diagnóstico) configuradas no vault para rotear a categoria de log
AuditEventpara o Log Analytics, uma conta de armazenamento ou um hub de eventos. O Azure Key Vault não emite logs de auditoria do plano de dados (comoKeyWrap,KeyUnwrapeKeyGet) por padrão, portanto, sem isso, você não terá trilha de auditoria das operações de chave da Anthropic.
Informações do aplicativo da Anthropic
Para que a Anthropic use sua chave de criptografia, você deve configurar um ID de aplicativo multilocatário (multitenant) da Anthropic e um nome de exibição. Esses valores são:
| Campo | Valor |
|---|---|
| ID do cliente do aplicativo multilocatário (EUA) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| Nome de exibição do aplicativo | anthropic-cmek-client-us |
Configuração da chave de criptografia
Consentir com o aplicativo multilocatário da Anthropic
Isso cria uma entidade de serviço no seu tenant do Entra para o aplicativo cliente CMEK da Anthropic. O aplicativo não solicita permissões do Microsoft Graph; ele existe apenas como um destino de federação para acesso ao plano de dados do Key Vault.
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87Na saída, capture o campo
id. Este é o ID de objeto da entidade de serviço no seu tenant, que você usa ao atribuir a função RBAC.{ "appId": "8635ae1a-3e5d-44e8-a4ed-e0f614466f87", "displayName": "anthropic-cmek-client-us", "id": "<sp-object-id>" }Se a entidade de serviço já existir no seu tenant (de uma tentativa anterior ou de outra integração),
az ad sp createencerra com um erro "already exists". Nesse caso, obtenha o ID de objeto dela:az ad sp show --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 --query id -o tsvEsta etapa não tem equivalente no Portal. Se você não tiver a Azure CLI instalada localmente, abra o Cloud Shell na barra de navegação superior do Portal. Depois que o comando for bem-sucedido, você pode encontrar o ID de objeto da entidade de serviço em Microsoft Entra ID > Enterprise applications, limpando o filtro padrão de tipo de aplicativo e pesquisando por
anthropic-cmek-client-us.
Encontre o Object ID (ID de objeto) da entidade de serviço na visão geral do aplicativo empresarial no Entra. Criar uma chave RSA no seu vault
O Azure Key Vault não suporta encapsulamento (wrapping) de chave simétrica, portanto a chave deve ser RSA (3072 bits ou maior) com
wrapKeyeunwrapKeyem suas operações permitidas.az keyvault key create \ --vault-name <your-vault-name> \ --name <your-key-name> \ --kty RSA --size 3072 \ --ops wrapKey unwrapKeyPara chaves com suporte de HSM, use
--kty RSA-HSM(requer um vault de SKU Premium). Chaves RSA protegidas por software são aceitáveis para esta integração.No Portal, abra seu Key Vault, selecione Keys e depois Generate/Import. Defina o tipo de chave como RSA e o tamanho como 3072 ou maior. Para restringir a chave apenas a wrap e unwrap, abra a versão da chave, role até Permitted operations e desmarque tudo exceto Wrap Key e Unwrap Key.

Crie uma chave RSA de tamanho 3072 ou maior. 
Restrinja as Permitted operations (operações permitidas) a Wrap Key e Unwrap Key. Conceder à entidade de serviço da Anthropic acesso à sua chave
Atribua a função
Key Vault Crypto Userà entidade de serviço da primeira etapa, com escopo na chave individual em vez de no vault inteiro.VAULT_ID=$(az keyvault show --name <your-vault-name> --query id -o tsv) az role assignment create \ --role "Key Vault Crypto User" \ --assignee-object-id <sp-object-id> \ --assignee-principal-type ServicePrincipal \ --scope "${VAULT_ID}/keys/<your-key-name>"A função interna
Key Vault Crypto Userconcede operações criptográficas de chave (encrypt, decrypt, wrap, unwrap, sign, verify) além de leitura de chave no escopo atribuído. A restrição--ops wrapKey unwrapKeyque você definiu na chave na etapa anterior limita ainda mais quais dessas operações podem ser bem-sucedidas nesta chave, de modo que, na prática, a Anthropic só pode fazer wrap e unwrap.No Portal, abra a chave (não o vault), selecione a aba Access control (IAM), clique em Add > Add role assignment, selecione Key Vault Crypto User e atribua-a à entidade de serviço
anthropic-cmek-client-us.
Atribua Key Vault Crypto User à entidade de serviço da Anthropic, com escopo na chave. Verificar a configuração do seu vault
az keyvault show --name <your-vault-name> \ --query "{rbac:properties.enableRbacAuthorization, purge:properties.enablePurgeProtection, pub:properties.publicNetworkAccess, net:properties.networkAcls.defaultAction, ipRules:properties.networkAcls.ipRules, uri:properties.vaultUri, tenantId:properties.tenantId}"Confirme que:
rbacétrue.purgeétrue. Se forfalseounull, habilite a proteção contra limpeza no vault antes de prosseguir. Sem ela, uma chave com exclusão reversível pode ser limpa permanentemente durante a janela de retenção, tornando seus dados protegidos por CMEK irrecuperáveis.pubé"Enabled". Se for"Disabled", a Anthropic não consegue alcançar o vault pelo endpoint público do plano de dados e a validação falha.neté"Allow"ou, se for"Deny", queipRulesinclua os intervalos de saída (egress) da Anthropic (entre em contato com a Anthropic para obter a lista atual).urié o URI do vault que você usa ao registrar a chave.tenantIdé o tenant que governa o vault. Use este valor comotenant_idao registrar a chave, não o tenant da sua assinatura atualmente ativa (os dois podem diferir em configurações entre tenants).
Registrar a chave na Anthropic
A forma de registrar a chave depende de qual produto você usa.
Registrar a chave na Anthropic
Crie uma configuração de chave externa por meio da Admin API.
client = anthropic.Anthropic() external_key = client.beta.organization.external_keys.create( display_name="<friendly-name>", geo="us", provider_config={ "type": "azure", "vault_uri": "https://<your-vault-name>.vault.azure.net/", "key_name": "<your-key-name>", "tenant_id": "<your-tenant-id>", }, ) print(f"id: {external_key.id}") print(f"display_name: {external_key.display_name}")A resposta contém o ID da chave externa:
{ "type": "external_key", "id": "ekey_<id>", "display_name": "<friendly-name>" }Validar a chave
Dispare um ciclo completo de criptografia e descriptografia na sua chave. Isso confirma que a Anthropic consegue se autenticar no seu tenant e executar operações de wrap e unwrap.
client = anthropic.Anthropic() validation = client.beta.organization.external_keys.validate("ekey_<id>") print(f"status: {validation.status}") print(f"error: {validation.error}")Uma resposta bem-sucedida tem esta aparência:
{ "type": "external_key_validation", "status": "success", "error": null }Se a validação falhar, o campo
errordescreve o problema. As causas comuns são:- Atraso de propagação do RBAC: atribuições de função podem levar alguns minutos para entrar em vigor. Aguarde e tente novamente.
- ACLs de rede bloqueando a Anthropic: confirme o acesso à rede pública e
ipRulesconforme descrito na etapa de verificação. - Políticas de acesso condicional em identidades de carga de trabalho: se o seu tenant tiver políticas de acesso condicional direcionadas a entidades de serviço, exclua a entidade de serviço da Anthropic ou adicione os intervalos de saída da Anthropic aos locais nomeados da política.
Anexar a chave a um workspace
Depois que a chave for validada, anexe-a a um novo workspace antes de enviar qualquer requisição a esse workspace. Para um workspace que já recebe requisições, a chave pode levar até um dia para entrar em vigor.
client = anthropic.Anthropic() workspace = client.beta.organization.workspaces.update( "<workspace-id>", external_key_id="ekey_<id>" ) print(f"id: {workspace.id}") print(f"external_key_id: {workspace.external_key_id}")
Terraform
Para implantações de infraestrutura como código, as mesmas etapas correspondem aos provedores azurerm e azuread.
Was this page helpful?