Chiffrez les résultats des requêtes avec AWS Key Management Service - Amazon CloudWatch Logs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chiffrez les résultats des requêtes avec AWS Key Management Service

Par défaut, CloudWatch Logs chiffre les résultats enregistrés de vos requêtes CloudWatch Logs Insights en utilisant la méthode de chiffrement côté serveur CloudWatch Logs par défaut. Vous pouvez choisir d'utiliser un AWS KMS clé pour crypter ces résultats à la place. Si vous associez un AWS KMS clé avec vos résultats de chiffrement, puis CloudWatch Logs utilise cette clé pour chiffrer les résultats stockés de toutes les requêtes du compte.

Si vous dissociez ultérieurement une clé des résultats de votre requête, CloudWatch Logs revient à la méthode de cryptage par défaut pour les requêtes ultérieures. Mais les requêtes exécutées alors que la clé était associée sont toujours chiffrées avec cette clé. CloudWatch Les journaux peuvent toujours renvoyer ces résultats une fois la KMS clé dissociée, car ils CloudWatch peuvent continuer à faire référence à la clé. Toutefois, si la clé est désactivée ultérieurement, CloudWatch Logs ne pourra pas lire les résultats de la requête chiffrés avec cette clé.

Important

CloudWatch Logs ne prend en charge que les KMS clés symétriques. N'utilisez pas de clé asymétrique pour chiffrer vos résultats de requête. Pour plus d'informations, consultez Utilisation des clés symétriques et asymétriques.

Limites

  • Pour effectuer les étapes suivantes, vous devez disposer des autorisations suivantes : kms:CreateKey, kms:GetKeyPolicy et kms:PutKeyPolicy.

  • L'association d'une clé à vos résultats de requête ou sa dissociation peut mettre jusqu'à cinq minutes à prendre effet.

  • Si vous révoquez l'accès de CloudWatch Logs à une clé associée ou si vous supprimez une KMS clé associée, vos données chiffrées dans CloudWatch Logs ne peuvent plus être récupérées.

  • Vous ne pouvez pas utiliser la CloudWatch console pour associer une clé, vous devez utiliser AWS CLI ou CloudWatch LogsAPI.

Étape 1 : Création d'un AWS KMS key

Pour créer une KMS clé, utilisez la commande Create-Key suivante :

aws kms create-key

La sortie contient l'ID de clé et le nom de ressource Amazon (ARN) de la clé. Voici un exemple de sortie :

{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59", "AWSAccountId": "123456789012", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

Étape 2 : définir les autorisations sur la KMS clé

Par défaut, toutes les KMS clés sont privées. Seul le propriétaire de la ressource peut l'utiliser pour chiffrer et déchiffrer des données. Cependant, le propriétaire de la ressource peut accorder à d'autres utilisateurs et ressources des autorisations d'accès à la clé. Au cours de cette étape, vous autorisez le principal du service CloudWatch Logs à utiliser la clé. Ce principal de service doit être dans le même AWS Région dans laquelle la clé est stockée.

À titre de bonne pratique, nous vous recommandons de limiter l'utilisation de la clé aux seules AWS comptes que vous spécifiez.

Enregistrez d'abord la politique par défaut de votre KMS clé à l'policy.jsonaide de la get-key-policycommande suivante :

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

Ouvrez le fichier policy.json dans un éditeur de texte et ajoutez la section en gras à partir de l'une des instructions suivantes. Séparez l'instruction existante de la nouvelle instruction par une virgule. Ces déclarations utilisent Condition des sections destinées à renforcer la sécurité du AWS KMS clé. Pour de plus amples informations, veuillez consulter AWS KMS clés et contexte de chiffrement.

La Condition section de cet exemple limite l'utilisation du AWS KMS clé permettant d'accéder aux résultats de la requête CloudWatch Logs Insights dans le compte spécifié.

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_ID:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:logs:region:account_ID:query-result:*" }, "StringEquals": { "aws:SourceAccount": "Your_account_ID" } } } ] }

Enfin, ajoutez la politique mise à jour à l'aide de la put-key-policycommande suivante :

aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json

Étape 3 : associer une KMS clé aux résultats de votre requête

Associer la KMS clé aux résultats de la requête dans le compte

Utilisez la commande disassociate-kms-key comme suit :

aws logs associate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*" --kms-key-id "key-arn"

Étape 4 : Dissocier une clé des résultats de requête dans le compte

Pour dissocier la KMS clé associée aux résultats de la requête, utilisez la disassociate-kms-keycommande suivante :

aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*"