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 puisse utiliser votre clé de chiffrement, vous devez accorder au rôle IAM d'Anthropic l'accès à une clé KMS qu'il pourra 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 stratégie de clé inter-comptes
La stratégie de clé accorde au rôle IAM d'Anthropic un accès inter-comptes. Trois instructions 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 l'instruction 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. Vous le trouverez 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 stratégie 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é mono-région et l'origine du matériel de clé KMS. L'assistant de création de clé valide une stratégie de clé à son étape Review : si vous ajoutez l'ID de compte Anthropic 915198916910 sous les autorisations d'utilisation de la clé à cet endroit, la stratégie 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 stratégie limitée au rôle présentée ci-dessus (les trois instructions limitées au rôle anthropic-cmek-client-us, avec la condition EncryptionContext).




Enregistrer la clé auprès d'Anthropic
Créez une configuration de clé externe via l'API Admin.
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-step-1>",
"role_arn": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
}
}'La réponse contient l'ID de 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 stratégie de clé, vérifiez que vous avez remplacé <compartment-uuid> par l'ID de compartiment réel de votre espace de travail (voir étape 1). Une valeur incorrecte ou non substituée amène KMS à renvoyer une AccessDeniedException opaque. Pour écarter cette cause, supprimez temporairement le bloc Condition de l'instruction 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 stratégies de contrôle des services ne s'appliquent pas ici, car elles ne sont pas évaluées pour les principaux externes appelant via des stratégies 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?