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 "customer-managed encryption key" (chave de criptografia gerenciada pelo cliente), ou CMEK para sua organização Anthropic.
Habilitar CMEK é permanente. Se sua chave do Key Vault for excluída ou desabilitada, a Anthropic não poderá recuperar os dados criptografados com ela. Revise os avisos e limitações antes de começar.
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.enablePurgeProtection: true) no vault. Sem ela, uma chave excluída pode ser permanentemente eliminada durante a janela de retenção de exclusão reversível, causando perda irreversível dos seus dados protegidos por CMEK. A proteção contra exclusão permanente não pode ser desabilitada depois de habilitada.Application Administrator, Cloud Application Administrator ou uma função personalizada equivalente).az instalada e autenticada.AuditEvent para 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 (como KeyWrap, KeyUnwrap e KeyGet) por padrão, então sem isso você não tem trilha de auditoria para as operações de chave da Anthropic.Para que a Anthropic use sua chave de criptografia, você deve configurar um ID de aplicativo multitenant da Anthropic e um nome de exibição. Esses valores são:
| Campo | Valor |
|---|---|
| Client ID do app multitenant (EUA) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| Nome de exibição do app | anthropic-cmek-client-us |
Use apenas este client ID e nome de exibição publicados. Nunca confie em um identificador fornecido por e-mail, chat ou qualquer canal de onboarding.
Consinta com o aplicativo multitenant da Anthropic
Isso cria um service principal no seu tenant do Entra para o aplicativo cliente de CMEK da Anthropic. O aplicativo não solicita permissões do Microsoft Graph; ele existe apenas como um alvo de federação para acesso ao plano de dados do Key Vault.
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87Da saída, capture o campo id. Este é o object ID do service principal 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 o service principal já existir no seu tenant (de uma tentativa anterior ou de outra integração), az ad sp create termina com um erro "already exists". Em vez disso, obtenha seu object ID:
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 CLI do Azure 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 object ID do service principal em Microsoft Entra ID > Enterprise applications, limpando o filtro padrão de tipo de aplicativo e pesquisando por anthropic-cmek-client-us.

Crie uma chave RSA no seu vault
O Azure Key Vault não suporta encapsulamento de chave simétrica, então a chave deve ser RSA (3072 bits ou maior) com wrapKey e unwrapKey em 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 com 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.


Conceda ao service principal da Anthropic acesso à sua chave
Atribua a função Key Vault Crypto User ao service principal 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 integrada Key Vault Crypto User concede operações criptográficas de chave (encrypt, decrypt, wrap, unwrap, sign, verify) mais leitura de chave no escopo atribuído. A restrição --ops wrapKey unwrapKey que você definiu na chave na etapa anterior restringe ainda mais quais dessas operações podem ter sucesso nesta chave, então na prática a Anthropic só pode fazer wrap e unwrap.
No Portal, abra a chave (não o vault), selecione sua aba Access control (IAM), clique em Add > Add role assignment, selecione Key Vault Crypto User e atribua-a ao service principal anthropic-cmek-client-us.
Alternativa de vault dedicado: a Microsoft recomenda um vault dedicado por aplicativo com funções atribuídas no escopo do vault. Se você provisionar um vault que contenha apenas esta chave CMEK da Anthropic, você pode atribuir a função no escopo do vault e o efeito é idêntico. Use o escopo na chave individual quando a chave estiver em um vault compartilhado.

Verifique 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 for false ou null, habilite a proteção contra exclusão permanente no vault antes de prosseguir. Sem ela, uma chave excluída de forma reversível pode ser permanentemente eliminada 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 seu endpoint público do plano de dados e a validação falha.net é "Allow", ou, se for "Deny", que ipRules inclua os intervalos de saída 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 como tenant_id ao registrar a chave, não o tenant da sua assinatura atualmente ativa (os dois podem diferir em configurações entre tenants).Como você registra a chave depende de qual produto você usa.
Registre a chave com a Anthropic
Crie uma configuração de chave externa por meio da Admin API.
curl -sS https://api.anthropic.com/v1/organizations/external_keys \
-H "x-api-key: <anthropic-admin-api-key>" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"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>"
}
}'A resposta contém o ID da chave externa:
{
"type": "external_key",
"id": "ekey_<id>",
"display_name": "<friendly-name>"
}Valide a chave
Acione uma ida e volta de criptografia e descriptografia contra sua chave. Isso confirma que a Anthropic pode se autenticar no seu tenant e realizar operações de wrap e unwrap.
curl -sS -X POST https://api.anthropic.com/v1/organizations/external_keys/ekey_<id>/validate \
-H "x-api-key: <anthropic-admin-api-key>" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" -d '{}'Uma resposta bem-sucedida se parece com isto:
{ "type": "external_key_validation", "status": "success", "error": null }Se a validação falhar, o campo error descreve o problema. Causas comuns são:
ipRules conforme descrito na etapa de verificação.Anexe a chave a um workspace
Depois que a chave for validada, anexe-a a um workspace para habilitar CMEK para os dados desse workspace.
curl -sS -X POST https://api.anthropic.com/v1/organizations/workspaces/<workspace-id> \
-H "x-api-key: <anthropic-admin-api-key>" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"external_key_id": "ekey_<id>"
}'Para implantações de infraestrutura como código, as mesmas etapas mapeiam para os providers azurerm e azuread.
Was this page helpful?