Configurer Azure Key Vault pour CMEK
Utilisez Azure Key Vault pour fournir une clé de chiffrement à votre organisation.
claude "/claude-api help me configure a customer-managed encryption key with Azure Key Vault"Ce guide explique comment configurer une clé Azure Key Vault en tant que « customer-managed encryption key » (clé de chiffrement gérée par le client), ou CMEK pour votre organisation Anthropic.
Prérequis
- Un Azure Key Vault avec l'autorisation RBAC activée (
enableRbacAuthorization: true) et l'accès réseau public autorisé. Anthropic appelle votre coffre via le point de terminaison public du plan de données ; les points de terminaison privés ne sont pas pris en charge. - La protection contre la purge activée (
enablePurgeProtection: true) sur le coffre. Sans elle, une clé supprimée peut être purgée définitivement pendant la fenêtre de rétention de suppression réversible, entraînant une perte irréversible de vos données protégées par CMEK. La protection contre la purge ne peut pas être désactivée une fois activée. - Les autorisations nécessaires pour créer des clés dans le coffre et y attribuer des rôles RBAC.
- Les autorisations nécessaires pour créer des principaux de service dans votre locataire Entra (
Application Administrator,Cloud Application Administratorou un rôle personnalisé équivalent). - Une clé API Admin Anthropic pour votre organisation.
- La CLI
azinstallée et authentifiée. - Des paramètres de diagnostic (Diagnostic Settings) configurés sur le coffre pour acheminer la catégorie de journaux
AuditEventvers Log Analytics, un compte de stockage ou un hub d'événements. Azure Key Vault n'émet pas par défaut de journaux d'audit du plan de données (tels queKeyWrap,KeyUnwrapetKeyGet) ; sans cela, vous ne disposez donc d'aucune piste d'audit pour les opérations de clé effectuées par Anthropic.
Informations sur l'application Anthropic
Pour qu'Anthropic utilise votre clé de chiffrement, vous devez configurer un ID d'application multilocataire Anthropic et un nom d'affichage. Ces valeurs sont les suivantes :
| Champ | Valeur |
|---|---|
| ID client de l'application multilocataire (US) | 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 |
| Nom d'affichage de l'application | anthropic-cmek-client-us |
Configuration de la clé de chiffrement
Donner votre consentement à l'application multilocataire Anthropic
Cette opération crée un principal de service dans votre locataire Entra pour l'application cliente CMEK d'Anthropic. L'application ne demande aucune autorisation Microsoft Graph ; elle existe uniquement en tant que cible de fédération pour l'accès au plan de données de Key Vault.
az ad sp create --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87Dans la sortie, récupérez le champ
id. Il s'agit de l'ID d'objet du principal de service dans votre locataire, que vous utilisez lorsque vous attribuez le rôle RBAC.{ "appId": "8635ae1a-3e5d-44e8-a4ed-e0f614466f87", "displayName": "anthropic-cmek-client-us", "id": "<sp-object-id>" }Si le principal de service existe déjà dans votre locataire (suite à une tentative précédente ou à une autre intégration),
az ad sp createse termine avec une erreur « already exists ». Récupérez plutôt son ID d'objet :az ad sp show --id 8635ae1a-3e5d-44e8-a4ed-e0f614466f87 --query id -o tsvCette étape n'a pas d'équivalent dans le portail. Si la CLI Azure n'est pas installée localement, ouvrez Cloud Shell depuis la barre de navigation supérieure du portail. Une fois la commande exécutée avec succès, vous pouvez trouver l'ID d'objet du principal de service dans Microsoft Entra ID > Enterprise applications en supprimant le filtre de type d'application par défaut et en recherchant
anthropic-cmek-client-us.
Trouvez l'« Object ID » (ID d'objet) du principal de service sur la page de présentation de son application d'entreprise Entra. Créer une clé RSA dans votre coffre
Azure Key Vault ne prend pas en charge l'enveloppement de clé symétrique ; la clé doit donc être de type RSA (3072 bits ou plus) avec
wrapKeyetunwrapKeyparmi ses opérations autorisées.az keyvault key create \ --vault-name <your-vault-name> \ --name <your-key-name> \ --kty RSA --size 3072 \ --ops wrapKey unwrapKeyPour les clés adossées à un HSM, utilisez
--kty RSA-HSM(nécessite un coffre de SKU Premium). Les clés RSA protégées par logiciel sont acceptables pour cette intégration.Depuis le portail, ouvrez votre Key Vault, sélectionnez Keys, puis Generate/Import. Définissez le type de clé sur RSA et la taille sur 3072 ou plus. Pour restreindre la clé aux seules opérations d'enveloppement et de désenveloppement, ouvrez la version de la clé, faites défiler jusqu'à Permitted operations et décochez tout sauf Wrap Key et Unwrap Key.

Créez une clé RSA de taille 3072 ou plus. 
Restreignez les « Permitted operations » (opérations autorisées) à « Wrap Key » (envelopper la clé) et « Unwrap Key » (désenvelopper la clé). Accorder au principal de service Anthropic l'accès à votre clé
Attribuez le rôle
Key Vault Crypto Userau principal de service de la première étape, avec une portée limitée à la clé individuelle plutôt qu'à l'ensemble du coffre.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>"Le rôle intégré
Key Vault Crypto Useraccorde les opérations cryptographiques sur les clés (chiffrer, déchiffrer, envelopper, désenvelopper, signer, vérifier) ainsi que la lecture des clés sur la portée qui lui est attribuée. La restriction--ops wrapKey unwrapKeyque vous avez définie sur la clé à l'étape précédente limite davantage les opérations pouvant réussir sur cette clé ; en pratique, Anthropic ne peut donc qu'envelopper et désenvelopper.Depuis le portail, ouvrez la clé (et non le coffre), sélectionnez son onglet Access control (IAM), cliquez sur Add > Add role assignment, sélectionnez Key Vault Crypto User et attribuez-le au principal de service
anthropic-cmek-client-us.
Attribuez le rôle « Key Vault Crypto User » au principal de service Anthropic, avec une portée limitée à la clé. Vérifier la configuration de votre coffre
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}"Vérifiez que :
rbacvauttrue.purgevauttrue. S'il vautfalseounull, activez la protection contre la purge sur le coffre avant de continuer. Sans elle, une clé supprimée de manière réversible peut être purgée définitivement pendant la fenêtre de rétention, rendant vos données protégées par CMEK irrécupérables.pubvaut"Enabled". S'il vaut"Disabled", Anthropic ne peut pas atteindre le coffre via son point de terminaison public du plan de données et la validation échoue.netvaut"Allow"ou, s'il vaut"Deny", que lesipRulesincluent les plages de sortie d'Anthropic (contactez Anthropic pour obtenir la liste actuelle).uriest l'URI du coffre que vous utilisez lorsque vous enregistrez la clé.tenantIdest le locataire qui régit le coffre. Utilisez cette valeur commetenant_idlorsque vous enregistrez la clé, et non le locataire de votre abonnement actuellement actif (les deux peuvent différer dans les configurations inter-locataires).
Enregistrer la clé auprès d'Anthropic
La manière d'enregistrer la clé dépend du produit que vous utilisez.
Enregistrer la clé auprès d'Anthropic
Créez une configuration de clé externe via l'API Admin.
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}")La réponse contient l'ID de la clé externe :
{ "type": "external_key", "id": "ekey_<id>", "display_name": "<friendly-name>" }Valider la clé
Déclenchez un aller-retour de chiffrement et de déchiffrement sur votre clé. Cela confirme qu'Anthropic peut s'authentifier auprès de votre locataire et effectuer des opérations d'enveloppement et de désenveloppement.
client = anthropic.Anthropic() validation = client.beta.organization.external_keys.validate("ekey_<id>") print(f"status: {validation.status}") print(f"error: {validation.error}")Une réponse réussie ressemble à ceci :
{ "type": "external_key_validation", "status": "success", "error": null }Si la validation échoue, le champ
errordécrit le problème. Les causes courantes sont les suivantes :- Délai de propagation RBAC : les attributions de rôles peuvent prendre quelques minutes pour prendre effet. Patientez, puis réessayez.
- ACL réseau bloquant Anthropic : vérifiez l'accès réseau public et les
ipRulescomme décrit à l'étape de vérification. - Stratégies d'accès conditionnel sur les identités de charge de travail : si votre locataire dispose de stratégies d'accès conditionnel ciblant les principaux de service, excluez le principal de service Anthropic ou ajoutez les plages de sortie d'Anthropic aux emplacements nommés de la stratégie.
Associer la clé à un espace de travail
Une fois la clé validée, associez-la à un nouvel espace de travail avant d'envoyer la moindre requête à cet espace de travail. Pour un espace de travail qui reçoit déjà des requêtes, la clé peut prendre jusqu'à une journée pour prendre effet.
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
Pour les déploiements en infrastructure en tant que code, les mêmes étapes correspondent aux fournisseurs azurerm et azuread.
Was this page helpful?