claude "/claude-api help me configure a customer-managed encryption key with Azure Key Vault"Este guia orienta você na configuração de uma chave do Azure Key Vault como uma "customer-managed encryption key" (chave de criptografia gerenciada pelo cliente), ou CMEK, para sua organização da 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 de rede pública permitido. A Anthropic chama seu vault pelo endpoint público do data plane; endpoints privados não são suportados.enablePurgeProtection: true) no vault. Sem ela, uma chave excluída pode ser permanentemente removida 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.Application Administrator, Cloud Application Administrator ou uma função personalizada equivalente).az CLI instalada e autenticada.AuditEvent para o Log Analytics, uma conta de armazenamento ou um event hub. O Azure Key Vault não emite logs de auditoria do data plane (como KeyWrap, KeyUnwrap e KeyGet) por padrão, então sem isso você não terá 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 multi-tenant da Anthropic e um nome de exibição. Esses valores são:
| Campo | Valor |
|---|---|
| ID do cliente do aplicativo multi-tenant (EUA) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| Nome de exibição do aplicativo | anthropic-cmek-client-us |
Use apenas este ID de cliente e nome de exibição publicados. Nunca confie em um identificador fornecido por e-mail, chat ou qualquer canal de onboarding.
Consentir com o aplicativo multi-tenant 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 data plane do Key Vault.
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87Na saída, capture o campo id. Este é o object ID do service principal no seu tenant, que você usará 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 outra integração), az ad sp create encerra com um erro "already exists". Em vez disso, obtenha o object ID dele:
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 executado com sucesso, 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.

Criar 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.


Conceder 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) além de leitura de chave no escopo atribuído. A restrição --ops wrapKey unwrapKey que você definiu na chave na etapa anterior limita ainda mais quais dessas operações podem ser executadas com 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 a 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, poderá atribuir a função no escopo do vault e o efeito será idêntico. Use o escopo da chave individual quando a chave estiver em um vault compartilhado.

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 for false ou null, habilite a proteção contra limpeza no vault antes de prosseguir. Sem ela, uma chave excluída de forma reversível pode ser permanentemente removida durante a janela de retenção, tornando seus dados protegidos por CMEK irrecuperáveis.pub é "Enabled". Se for "Disabled", a Anthropic não conseguirá acessar o vault pelo endpoint público do data plane e a validação falhará.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ê usará 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 cross-tenant).Registrar a chave na 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>"
}Validar a chave
Acione uma operação completa de criptografia e descriptografia na sua chave. Isso confirma que a Anthropic pode se autenticar no seu tenant e executar 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.Anexar 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 são mapeadas para os providers azurerm e azuread.
Was this page helpful?