claude "/claude-api help me configure a customer-managed encryption key with AWS KMS"Ce guide vous accompagne dans la configuration d'une clé AWS KMS en tant que « customer-managed encryption key » (clé de chiffrement gérée par le client), ou CMEK, pour votre organisation Anthropic.
L'activation de CMEK est permanente. Si votre clé KMS est supprimée ou désactivée, Anthropic ne peut pas récupérer les données chiffrées avec celle-ci. Consultez les avertissements et limitations avant de commencer.
kms:CreateKey et kms:PutKeyPolicy).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-usUtilisez uniquement cet ARN publié. Ne faites jamais confiance à un identifiant fourni par e-mail, chat ou tout autre canal d'intégration.
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 :
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 d'enveloppe).DescribeKey n'a pas de paramètre EncryptionContext, donc une condition EncryptionContext sur cette action entraînerait toujours un refus.export YOUR_ACCOUNT=$(aws sts get-caller-identity --query Account --output text)
aws kms create-key \
--region <region> \
--description "Anthropic CMEK" \
--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\": \"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:compartment_uuid\": \"<compartment-uuid>\"
}
}
},
{
\"Sid\": \"AllowAnthropicCMEKDescribe\",
\"Effect\": \"Allow\",
\"Principal\": {\"AWS\": \"arn:aws:iam::915198916910:role/anthropic-cmek-client-us\"},
\"Action\": \"kms:DescribeKey\",
\"Resource\": \"*\"
}
]
}"Récupérez KeyMetadata.Arn dans la sortie. Vous en aurez besoin lors de l'enregistrement de la clé à l'étape suivante.
La condition EncryptionContext est recommandée mais facultative. Anthropic inclut toujours l'ID de compartiment de votre espace de travail dans le contexte de chiffrement, de sorte que le texte chiffré est cryptographiquement lié à ce compartiment dans tous les cas. L'ajout de la condition fournit une défense en profondeur au niveau de la couche IAM. Pour commencer sans elle, omettez le bloc Condition de la déclaration AllowAnthropicCMEKCrypto et ajoutez-le ultérieurement avec kms:PutKeyPolicy.
Trouver votre ID de compartiment : Chaque espace de travail possède un ID de compartiment qui délimite ses données CMEK. Trouvez-le dans la Claude Console sous Workspace > Security > Encryption keys (le champ Compartment ID), ou lisez le champ compartment_id renvoyé par le point de terminaison Get Workspace. Substituez cette valeur à <compartment-uuid> dans la politique de clé ci-dessus. Anthropic l'envoie également comme contexte de chiffrement lors de la validation de la clé, donc la valeur de la condition doit correspondre pour que la validation réussisse.
Vous pouvez également créer la clé depuis la console AWS. Choisissez une clé symétrique avec l'utilisation de clé « encrypt and decrypt » (chiffrer et déchiffrer), 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 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 réussirait quand même avec celle-ci. 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 limitée au rôle présentée ci-dessus (les trois déclarations limitées au rôle anthropic-cmek-client-us, avec la condition EncryptionContext).




La manière dont vous enregistrez 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.
Pour les organisations utilisant Claude Platform sur AWS, les points de terminaison de clé externe ne sont pas encore disponibles. Enregistrez, validez et attachez votre clé dans la Claude Console à la place.
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": "aws",
"kms_arn": "<key-arn-from-create-key-step>",
"role_arn": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
}
}'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 déchiffrement sur votre clé.
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 '{}'Une réponse réussie ressemble à ceci :
{ "type": "external_key_validation", "status": "success", "error": null }Si la validation échoue, les causes courantes sont :
EncryptionContext dans la politique de clé, confirmez que vous avez remplacé <compartment-uuid> par l'ID de compartiment réel de votre espace de travail (voir l'étape Créer la clé KMS sous Configuration de la clé de chiffrement). Une valeur incorrecte ou non substituée fait que KMS renvoie une AccessDeniedException opaque. Pour l'écarter, supprimez temporairement le bloc Condition de la déclaration AllowAnthropicCMEKCrypto et relancez la validation.aws:PrincipalOrgID ne correspond pas à votre organisation, elle bloque le rôle inter-comptes d'Anthropic. La RCP nécessite une exception pour cette clé ou pour l'ARN du rôle d'Anthropic. Les politiques de contrôle de service ne s'appliquent pas ici, car elles ne sont pas évaluées pour les principaux externes appelant via des politiques basées sur les ressources.aws kms get-key-policy --key-id <id> --policy-name default.Attacher la clé à un espace de travail
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>"
}'Pour les déploiements d'infrastructure en tant que code, les mêmes étapes correspondent au fournisseur aws avec les ressources aws_kms_key et aws_kms_alias.
Was this page helpful?