Claude Platform Docs
AdministrationClés de chiffrement (CMEK)

Configurer AWS KMS pour CMEK

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

Claude Code

Laissez Claude Code configurer cette fonctionnalité pour vous

/claude-api aide-moi à configurer une clé de chiffrement gérée par le client avec AWS KMS

Ce guide explique comment configurer une clé AWS KMS en tant que clé de chiffrement gérée par le client (CMEK) pour votre organisation Anthropic.

Prérequis

  • Un compte AWS avec les autorisations de créer des clés KMS et de définir des politiques de clé (kms:CreateKey et kms:PutKeyPolicy).
  • Une clé Admin API pour votre organisation Anthropic.
  • L'AWS CLI installée et authentifiée.

Amazon Resource Name (ARN) pour Anthropic

Pour qu'Anthropic utilise votre clé de chiffrement, vous devez donner au rôle IAM d'Anthropic une clé KMS qu'il peut utiliser pour chiffrer les données. L'ARN pour Anthropic CMEK est :

arn:aws:iam::915198916910:role/anthropic-cmek-client-us

Configuration de la clé de chiffrement

  1. Créer la clé KMS avec une politique de clé inter-comptes

    La politique de clé accorde au rôle IAM d'Anthropic un accès inter-comptes. Trois déclarations sont requises :

    1. Administrateur racine du compte : le modèle KMS standard. Votre compte conserve le contrôle administratif complet.
    2. Chiffrement et déchiffrement Anthropic : les actions kms:Encrypt et kms:Decrypt, 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 (chiffrement par enveloppe).
    3. Description Anthropic : la lecture des métadonnées qu'Anthropic effectue au démarrage. Elle est accordée séparément car DescribeKey n'a pas de paramètre EncryptionContext, donc une condition EncryptionContext sur cette action refuserait toujours.

    Pour trouver votre ID de compte AWS, exécutez aws sts get-caller-identity --query Account --output text.

    Dans la politique, remplacez <AWS_ACCOUNT_ID> par votre ID de compte AWS et <ORGANIZATION_UUID> par votre ID d'organisation. La condition StringEquals sur kms:EncryptionContext:anthropic:org_uuid lie la clé à votre organisation Anthropic, et la validation refuse une clé sans celle-ci. Pour partager une clé entre plusieurs organisations Anthropic, listez chaque ID d'organisation dans la valeur de la condition.

    Enregistrez la politique sous key-policy.json. Pour créer la clé dans la AWS Console à la place, collez-y la politique, comme décrit plus loin dans cette étape.

    key-policy.json
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AccountRootAdmin",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:root"
          },
          "Action": "kms:*",
          "Resource": "*"
        },
        {
          "Sid": "AllowAnthropicCMEKCrypto",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
          },
          "Action": ["kms:Encrypt", "kms:Decrypt"],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "kms:EncryptionContext:anthropic:org_uuid": ["<ORGANIZATION_UUID>"]
            }
          }
        },
        {
          "Sid": "AllowAnthropicCMEKDescribe",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
          },
          "Action": "kms:DescribeKey",
          "Resource": "*"
        }
      ]
    }
    aws kms create-key \
      --region <REGION> \
      --description "Anthropic CMEK" \
      --key-usage ENCRYPT_DECRYPT \
      --policy file://key-policy.json

    Capturez KeyMetadata.Arn depuis la sortie. Vous en avez besoin lorsque vous enregistrez la clé à l'étape suivante.

    Anthropic valide la clé lorsque vous la vérifiez ou l'attachez à un espace de travail. Chaque validation ajoute quatre erreurs d'accès refusé à CloudTrail. Celles-ci sont attendues. Si vous devez les filtrer, filtrez sur les trois valeurs suivantes. La première seule ne suffit pas, car n'importe quel appelant peut la définir :

    • requestParameters.encryptionContext.associatedData : Y21lay12YWxpZGF0aW9u
    • userIdentity.accountId : 915198916910
    • resources.ARN : arn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/<KEY_ID>

    Vous pouvez également créer la clé depuis la AWS Console. Choisissez une clé symétrique avec l'utilisation de clé de chiffrement et déchiffrement, une clé à région unique, et une origine de matériel de clé KMS. L'assistant de création de clé valide une politique de clé à son étape Review : Si vous ajoutez l'ID de compte d'Anthropic 915198916910 sous les autorisations d'utilisation de clé à cet endroit, la politique générée accorde à l'ensemble du compte Anthropic des actions plus larges (telles que kms:ReEncrypt* et kms:GenerateDataKey*) sans condition EncryptionContext, et la validation la refuse. Pour éviter de laisser une clé trop permissive, terminez l'assistant avec uniquement les autorisations administratives, puis ouvrez l'onglet Key policy de la clé et remplacez le JSON par la politique key-policy.json présentée plus tôt dans cette étape.

    Assistant de création de clé AWS KMS à l'étape Configure key, où sont sélectionnés le type de clé Symmetric (symétrique), l'utilisation de clé Encrypt and decrypt (chiffrement et déchiffrement) et l'option Single-Region key (clé à région unique).

    Configure key : symmetric, encrypt and decrypt, single-region key (clé symétrique, chiffrement et déchiffrement, clé à région unique).

    Étape Add labels d'AWS KMS, avec l'alias anthropic-cmek et la description Anthropic CMEK.

    Add labels : ajoutez un alias et une description pour la clé.

    Étape Define key administrative permissions d'AWS KMS, qui répertorie les rôles IAM pouvant administrer la clé.

    Define key administrative permissions (facultatif). Votre compte conserve le contrôle administratif complet.

    Étape Define key usage permissions d'AWS KMS, avec l'ID de compte d'Anthropic saisi sous Other AWS accounts (autres comptes AWS).

    N'ajoutez pas l'ID de compte d'Anthropic ici. Cette étape de l'assistant produit une politique trop permissive. Laissez les autorisations d'utilisation vides et modifiez le JSON de la Key policy après la création (voir la politique de clé précédente).

Enregistrer la clé auprès d'Anthropic

La façon dont vous enregistrez la clé dépend du produit que vous utilisez.

Vous pouvez configurer la clé dans la Claude Console ou via l'Admin API, avec le même résultat.

  1. Enregistrer la clé auprès d'Anthropic

    Dans la Claude Console, accédez à la page Data retention (platform.claude.com/settings/privacy). Si vous ne voyez pas Encryption keys, sélectionnez Organization dans le menu déroulant en haut de la page. Sous Encryption keys, cliquez sur Add key. Saisissez un nom d'affichage, choisissez AWS KMS, puis cliquez sur Continue. Collez l'ARN de la clé dans KMS key ARN, puis cliquez sur Add.

    L'étape des détails de la clé affiche votre ID d'organisation. Ajoutez-le à la politique de clé avant de cliquer sur Add.

  2. Valider la clé

    Dans la liste Encryption keys, cliquez sur Verify à côté de la clé. Connected s'affiche lorsque la vérification réussit. En cas d'échec, un message en indique la raison.

  3. Attacher la clé à un espace de travail

    Dans la Claude Console, accédez à la page Data retention (platform.claude.com/settings/privacy) et sélectionnez l'espace de travail dans le menu déroulant en haut de la page. Sous Encryption key, sélectionnez la clé, cliquez sur Save, puis confirmez. L'attachement d'une clé est irréversible. Pour un espace de travail qui reçoit déjà des requêtes, la clé peut mettre jusqu'à un jour pour prendre effet.

Configurer CMEK sur Claude Platform on AWS

Sur Claude Platform on AWS, CMEK utilise uniquement des clés AWS KMS, et la configuration diffère des sections précédentes de ces manières :

  • Principal : Votre politique de clé accorde l'accès au principal de service AWS aws-external-anthropic.amazonaws.com. Le rôle IAM et l'ID de compte d'Anthropic ne sont pas utilisés, donc l'ARN pour Anthropic ne s'applique pas.
  • Exigences de clé : La clé doit être une clé KMS symétrique avec utilisation de chiffrement et déchiffrement, à région unique, et dans le même compte et la même région AWS que l'espace de travail auquel vous l'attachez. Les clés inter-comptes ne sont pas prises en charge : la clé doit être dans le compte AWS qui héberge votre organisation. Les clés multi-régions (ID de clé commençant par mrk-) et les ARN d'alias sont rejetés lorsque vous enregistrez la clé ; utilisez l'ARN de la clé.
  • Pas d'étape de validation distincte : Hormis ces vérifications sur l'ARN de la clé lors de l'enregistrement, la clé est validée lorsque vous l'attachez à un espace de travail. L'appel d'attachement effectue un aller-retour de chiffrement/déchiffrement sur la clé avec l'ID de compartiment de cet espace de travail comme contexte de chiffrement, de sorte qu'un problème de politique de clé apparaît au moment de l'attachement plutôt qu'à l'enregistrement. Une condition EncryptionContext n'a donc pas besoin d'entrée tout à zéro.
  • Où vous gérez les clés : Enregistrez et attachez les clés dans la Claude Console, connecté via AWS avec le rôle Admin. Les points de terminaison de clé externe sont également disponibles sur Claude Platform on AWS, autorisés via les actions IAM ; là, une clé est identifiée par son ARN de clé KMS plutôt que par un ID ekey_.

Prérequis

  • Le compte AWS qui héberge votre organisation Claude Platform on AWS, avec les autorisations de créer des clés KMS et de définir des politiques de clé (kms:CreateKey et kms:PutKeyPolicy).
  • Le rôle Admin dans la Claude Console pour Claude Platform on AWS. Consultez Utiliser la Claude Console.
  • Pour le principal IAM avec lequel vous vous connectez à la Claude Console : en plus de aws-external-anthropic:AssumeConsole, les actions IAM correspondant aux opérations que vous y effectuez, car l'enregistrement, le listage et l'attachement des clés passent par la passerelle AWS. L'enregistrement d'une clé correspond à RegisterKey (avec ListKeys et GetKey pour afficher les enregistrements), et son attachement à UpdateWorkspace ou CreateWorkspace. Les actions de clés externes (et CreateWorkspace) sont à portée de compte, donc accordez-les sur Resource: "*" ; une politique limitée aux ARN d'espaces de travail ne les inclut pas.
  • Pour le principal IAM qui attache la clé à un espace de travail (l'identité avec laquelle vous vous êtes connecté à la Claude Console) : kms:DescribeKey, kms:Encrypt, et kms:Decrypt sur la clé. L'accès de votre principal à la clé est vérifié lorsque vous l'attachez, en plus de celui du principal de service.
  • Facultatif, pour le sélecteur de clé dans la Claude Console : kms:ListKeys et kms:DescribeKey pour le principal avec lequel vous vous connectez. Sans eux, collez l'ARN de la clé à la place.

Créer la clé KMS

La politique de clé comporte trois déclarations : la déclaration d'administrateur racine de votre compte ; une déclaration qui permet au principal de service de Claude Platform on AWS de chiffrer, de déchiffrer et de générer des clés de données ; et une déclaration distincte pour kms:DescribeKey. La déclaration cryptographique comporte une condition EncryptionContext facultative qui lie la clé aux espaces de travail que vous listez. DescribeKey est accordée séparément, car elle n'a pas de paramètre EncryptionContext ; une condition EncryptionContext sur cette action entraînerait donc toujours un refus.

Si vous prévoyez d'utiliser la condition EncryptionContext facultative présentée ici, créez d'abord l'espace de travail (sans clé), copiez son ID de compartiment et remplacez <compartment-uuid> par celui-ci. Pour trouver l'ID dans la Claude Console, accédez à la page Data retention (platform.claude.com/settings/privacy) et sélectionnez l'espace de travail dans le menu déroulant en haut de la page. L'ID se trouve sous Encryption key, dans le champ Compartment ID. Vous pouvez également le lire dans le champ compartment_id renvoyé par le point de terminaison Get Workspace. Si vous ne prévoyez pas d'utiliser la condition, supprimez le bloc Condition de cette déclaration.

export YOUR_ACCOUNT=$(aws sts get-caller-identity --query Account --output text)

aws kms create-key \
  --region <workspace-region> \
  --description "Anthropic CMEK (Claude Platform on AWS)" \
  --key-usage ENCRYPT_DECRYPT \
  --policy "{
    \"Version\": \"2012-10-17\",
    \"Statement\": [
      {
        \"Sid\": \"AccountRootAdmin\",
        \"Effect\": \"Allow\",
        \"Principal\": {\"AWS\": \"arn:aws:iam::${YOUR_ACCOUNT}:root\"},
        \"Action\": \"kms:*\",
        \"Resource\": \"*\"
      },
      {
        \"Sid\": \"AllowClaudePlatformOnAWSCrypto\",
        \"Effect\": \"Allow\",
        \"Principal\": {\"Service\": \"aws-external-anthropic.amazonaws.com\"},
        \"Action\": [\"kms:Encrypt\", \"kms:Decrypt\", \"kms:GenerateDataKey\"],
        \"Resource\": \"*\",
        \"Condition\": {
          \"StringEquals\": {
            \"kms:EncryptionContext:anthropic:compartment_uuid\": [
              \"<compartment-uuid>\"
            ]
          }
        }
      },
      {
        \"Sid\": \"AllowClaudePlatformOnAWSDescribe\",
        \"Effect\": \"Allow\",
        \"Principal\": {\"Service\": \"aws-external-anthropic.amazonaws.com\"},
        \"Action\": \"kms:DescribeKey\",
        \"Resource\": \"*\"
      }
    ]
  }"

Capturez KeyMetadata.Arn depuis la sortie. Vous en avez besoin lorsque vous enregistrez la clé.

La condition EncryptionContext est facultative. Chaque appel de chiffrement, de déchiffrement et de clé de données effectué pour un espace de travail, y compris la vérification au moment de l'attachement, porte l'ID de compartiment de cet espace de travail sous la forme anthropic:compartment_uuid ; la condition liste donc l'ID de compartiment de chaque espace de travail auquel vous attachez la clé et n'a besoin d'aucune entrée tout à zéro. L'ajouter lie également la clé aux espaces de travail que vous listez au niveau IAM. Comme un ID de compartiment n'existe qu'une fois son espace de travail créé, l'ordre est le suivant : créez l'espace de travail, placez son ID de compartiment dans la condition (lors de la création de la clé, ou plus tard avec kms:PutKeyPolicy), puis attachez la clé. Avant d'attacher la clé à chaque espace de travail supplémentaire, ajoutez l'ID de compartiment de cet espace de travail de la même manière. Pour commencer sans elle, supprimez le bloc Condition de la déclaration AllowClaudePlatformOnAWSCrypto ; si vous l'ajoutez plus tard, incluez l'ID de compartiment de chaque espace de travail auquel la clé est déjà attachée.

Vous pouvez restreindre davantage les deux déclarations du principal de service avec une condition aws:SourceArn. Le service transmet l'ARN de l'espace de travail (arn:aws:aws-external-anthropic:<region>:<account-id>:workspace/<workspace-id>) comme ARN source à chaque appel qu'il effectue avec votre clé ; ainsi, "ArnLike": {"aws:SourceArn": "arn:aws:aws-external-anthropic:*:<account-id>:workspace/*"} limite l'autorisation aux espaces de travail de votre propre compte AWS, et une liste d'ARN complets d'espaces de travail la limite à ces espaces de travail. Cette condition n'est pas obligatoire ; la condition EncryptionContext suffit à elle seule à lier la clé aux espaces de travail que vous listez.

Vous pouvez également créer la clé depuis la AWS Console : choisissez une clé symétrique avec l'utilisation de clé de chiffrement et déchiffrement, une clé à région unique, et une origine de matériel de clé KMS, dans la région de l'espace de travail. Laissez les autorisations d'utilisation de clé vides dans l'assistant de création de clé, puis ouvrez l'onglet Key policy de la clé et remplacez le JSON par la politique présentée ici.

Enregistrer et attacher la clé

  1. Enregistrer la clé

    Dans la Claude Console, accédez à la page Data retention (platform.claude.com/settings/privacy). Si vous ne voyez pas Encryption keys, sélectionnez Organization dans le menu déroulant en haut de la page. Sous Encryption keys, cliquez sur Add key. Saisissez un nom d'affichage, puis choisissez la clé dans le sélecteur de clé ou choisissez Enter ARN manually et collez l'ARN de la clé, puis cliquez sur Add. La clé doit se trouver dans le compte AWS qui héberge votre organisation ; les clés inter-comptes ne sont pas prises en charge. Le sélecteur liste les clés activées, gérées par le client, symétriques et à région unique de votre compte dans l'une des régions de votre organisation ; pour une clé que le sélecteur ne liste pas, saisissez l'ARN. Il ne liste les clés que si le principal avec lequel vous vous êtes connecté peut appeler kms:ListKeys et kms:DescribeKey.

  2. Attacher la clé à un espace de travail

    Attachez la clé à un nouvel espace de travail avant d'envoyer des requêtes à cet espace de travail. Pour un espace de travail qui reçoit déjà des requêtes, la clé peut mettre jusqu'à un jour pour prendre effet. Dans la Claude Console, accédez à la page Data retention (platform.claude.com/settings/privacy) et sélectionnez l'espace de travail dans le menu déroulant en haut de la page. Sous Encryption key, sélectionnez la clé, cliquez sur Save, puis confirmez. Vous pouvez également sélectionner une clé lors de la création d'un espace de travail dans la Claude Console, mais uniquement si votre politique de clé ne nomme pas encore d'espaces de travail spécifiques (pas de condition EncryptionContext), car l'ID de compartiment de l'espace de travail est attribué lors de sa création. Une fois attachée, la clé d'un espace de travail ne peut pas être modifiée.

    C'est à ce moment que la clé est validée : l'appel d'attachement vérifie l'accès de votre principal à la clé et effectue un aller-retour de chiffrement/déchiffrement sur celle-ci avec l'ID de compartiment de l'espace de travail comme contexte de chiffrement, de sorte qu'un problème avec la politique de clé ou les autorisations de votre principal apparaît comme une erreur sur cet appel. Si l'attachement échoue avec une erreur d'accès KMS, vérifiez ce qui suit :

    • La politique de clé nomme le principal de service aws-external-anthropic.amazonaws.com et accorde kms:Encrypt, kms:Decrypt, et kms:GenerateDataKey, plus kms:DescribeKey dans une déclaration distincte qui n'a pas de condition EncryptionContext.
    • Toute condition EncryptionContext inclut l'ID de compartiment de cet espace de travail, et toute condition aws:SourceArn que vous avez ajoutée correspond à l'ARN de cet espace de travail.
    • La clé est activée, à région unique, et dans le même compte et la même région AWS que l'espace de travail.
    • Le principal avec lequel vous êtes connecté a kms:DescribeKey, kms:Encrypt, et kms:Decrypt sur la clé.
    • Aucune service control policy ou resource control policy dans votre organisation AWS n'empêche le principal de service ou votre principal d'utiliser la clé.
    • Si la politique semble correcte et que l'attachement échoue toujours, recherchez l'événement kms: refusé dans CloudTrail dans le compte de la clé (il indique le principal appelant et, pour les appels cryptographiques, le contexte de chiffrement), puis corrigez la condition avec kms:PutKeyPolicy et réessayez.

Terraform

Pour les déploiements infrastructure-as-code, les mêmes étapes correspondent au fournisseur aws avec les ressources aws_kms_key et aws_kms_alias.

Was this page helpful?