Claude Platform Docs
AdministrationClés de chiffrement

Configurer Google Cloud KMS pour CMEK

Utilisez Google Cloud KMS pour fournir une clé de chiffrement à votre organisation.

Configure with the /claude-api skill in Claude Code
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.admin ou équivalent).
  • Une clé API Admin Anthropic pour votre organisation.
  • La CLI gcloud installé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_READ et DATA_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.com

Configuration de la clé de chiffrement

  1. 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 comme us et global ne sont pas pris en charge.

    gcloud kms keyrings create <your-keyring-name> \
      --project=<your-project-id> \
      --location=<region>
  2. 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=hsm

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

    Page Create key de Google Cloud KMS avec le niveau de protection HSM et l'objectif Symmetric encrypt/decrypt.
    Créez une clé symétrique de chiffrement/déchiffrement (« Symmetric encrypt/decrypt ») protégée par HSM.
  3. 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.cryptoKeyEncrypterDecrypter

    Lecteur (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.viewer

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

    Boîte de dialogue Grant access avec le compte de service Anthropic auquel sont attribués les rôles Cloud KMS CryptoKey Encrypter/Decrypter et Viewer.
    Accordez au compte de service Anthropic les deux rôles (« Grant access »), limités à la clé.
  4. 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.

    Détails du trousseau de clés Google Cloud avec l'action Copy resource name mise en évidence dans le menu d'actions de la clé.
    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.

  1. 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>"
    }
  2. 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.allowedPolicyMemberDomains peut supprimer la liaison du compte de service Anthropic (voir la note précédente). Confirmez que la liaison est présente avec gcloud 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.
  3. 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?