Configurer Google Cloud KMS pour CMEK
Utilisez Google Cloud KMS pour fournir une clé de chiffrement à votre organisation.
claude "/claude-api help me configure a customer-managed encryption key with Google Cloud KMS"Ce guide explique comment configurer une clé Google Cloud KMS 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 projet Google Cloud avec la facturation activée.
- L'API Cloud KMS activée (
cloudkms.googleapis.com). - Les autorisations nécessaires pour créer des trousseaux de clés et des clés KMS, et pour définir des stratégies IAM sur ceux-ci (
roles/cloudkms.adminou équivalent). - Une clé API Admin Anthropic pour votre organisation.
- La CLI
gcloudinstallée et authentifiée. - Les journaux d'audit d'accès aux données (Data Access audit logs) de Cloud KMS activés pour le projet (IAM & Admin > Audit Logs > Cloud Key Management Service, avec
DATA_READetDATA_WRITE). Ils sont désactivés par défaut ; sans eux, les opérations de chiffrement et de déchiffrement d'Anthropic ne produisent aucune entrée dans Cloud Logging.
Adresse e-mail du compte de service Anthropic
Pour qu'Anthropic utilise votre clé de chiffrement, vous devez donner au compte de service d'Anthropic une clé qu'il peut utiliser pour chiffrer les données. L'adresse e-mail du compte de service pour CMEK Anthropic est :
anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.comConfiguration de la clé de chiffrement
Créer ou choisir un trousseau de clés
Ignorez cette étape si vous disposez déjà d'un trousseau de clés à réutiliser. Les trousseaux de clés sont régionaux. Choisissez un emplacement américain à région unique, tel que
us-east5, correspondant à la zone géographique Anthropic que vous configurez. Les emplacements multirégionaux commeusetglobalne sont pas pris en charge.gcloud kms keyrings create <your-keyring-name> \ --project=<your-project-id> \ --location=<region>Créer la clé cryptographique
Créez une clé symétrique avec l'objectif
ENCRYPT_DECRYPT. Anthropic recommande fortement la protection HSM : les clés HSM Cloud KMS sont validées FIPS 140-2 niveau 3, et la différence de coût par rapport aux clés logicielles est faible.gcloud kms keys create <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --purpose=encryption \ --protection-level=hsmPour une protection logicielle à la place, omettez
--protection-level=hsm. Rien d'autre ne change dans ce guide.Vous pouvez également créer la clé depuis la console Google Cloud. Ouvrez le trousseau de clés, cliquez sur Create key, sélectionnez Generated key, définissez l'objectif et l'algorithme sur chiffrement et déchiffrement symétriques, puis choisissez HSM sous le niveau de protection.

Créez une clé symétrique de chiffrement/déchiffrement (« Symmetric encrypt/decrypt ») protégée par HSM. Accorder au compte de service d'Anthropic l'accès à la clé
Deux liaisons IAM au niveau de la clé sont requises. Toutes deux sont limitées à la seule clé cryptographique, et non à l'ensemble du projet ou du trousseau de clés.
Chiffrement et déchiffrement, qu'Anthropic utilise pour chiffrer et déchiffrer les clés de données qui protègent les données de votre espace de travail (« envelope encryption », ou chiffrement par enveloppe) :
gcloud kms keys add-iam-policy-binding <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --member="serviceAccount:anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.com" \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypterLecteur (Viewer), pour la lecture des métadonnées (
cryptoKeys.get) qu'Anthropic effectue au démarrage afin de valider l'objectif et l'algorithme de la clé :gcloud kms keys add-iam-policy-binding <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --member="serviceAccount:anthropic-cmek-client-us@gcp-anthropic-cmek-clients.iam.gserviceaccount.com" \ --role=roles/cloudkms.viewerDepuis la console, sélectionnez la clé, ouvrez le panneau Permissions, cliquez sur Grant access, puis ajoutez le compte de service avec les deux rôles Cloud KMS CryptoKey Encrypter/Decrypter et Cloud KMS Viewer. Assurez-vous d'être sur la page des autorisations de la clé, et non sur celle du trousseau de clés ou du projet, afin que l'octroi soit limité à cette clé uniquement.

Accordez au compte de service Anthropic les deux rôles (« Grant access »), limités à la clé. Noter le nom de ressource complet de la clé
Vous le transmettez à Anthropic lorsque vous enregistrez la clé. Le format est le suivant :
projects/<your-project-id>/locations/<region>/keyRings/<your-keyring-name>/cryptoKeys/<your-key-name>Récupérez-le avec :
gcloud kms keys describe <your-key-name> \ --project=<your-project-id> \ --location=<region> \ --keyring=<your-keyring-name> \ --format="value(name)"Depuis la console, ouvrez la page de détails de la clé et cliquez sur Copy resource name.

Copiez le nom de ressource complet de la clé (« Copy resource name ») depuis le menu d'actions.
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, en utilisant le nom de ressource obtenu à l'étape « Noter le nom de ressource complet de la clé » de la section Configuration de la clé de chiffrement.
client = anthropic.Anthropic() external_key = client.beta.organization.external_keys.create( display_name="<friendly-name>", geo="us", provider_config={ "type": "gcp", "key_name": "projects/<your-project-id>/locations/<region>/keyRings/<your-keyring-name>/cryptoKeys/<your-key-name>", }, ) 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 avec votre clé.
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, les causes courantes sont les suivantes :
- VPC Service Controls : si un périmètre de service protège Cloud KMS dans votre projet, ajoutez Anthropic à un niveau d'accès sur le périmètre (ou excluez le projet de la clé) afin qu'Anthropic puisse atteindre la clé.
- Partage restreint au domaine : la stratégie d'organisation
constraints/iam.allowedPolicyMemberDomainspeut supprimer la liaison du compte de service Anthropic (voir la note précédente). Confirmez que la liaison est présente avecgcloud kms keys get-iam-policy <your-key-name> --project=<your-project-id> --location=<region> --keyring=<your-keyring-name>. - Version de clé désactivée ou détruite : confirmez que la version principale de la clé est activée, et non désactivée, planifiée pour destruction ou détruite.
Associer la clé à un espace de travail
Une fois la clé validée, associez-la à un nouvel espace de travail avant d'envoyer toute requête à cet espace de travail. Pour un espace de travail qui reçoit déjà des requêtes, la clé peut prendre jusqu'à un jour 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 d'infrastructure en tant que code (infrastructure-as-code), les mêmes étapes correspondent au fournisseur google avec les ressources google_kms_key_ring, google_kms_crypto_key et google_kms_crypto_key_iam_member.
Was this page helpful?