Comment puis-je utiliser AWS KMS pour chiffrer les données de journal dans CloudWatch Logs ?

Lecture de 4 minute(s)
0

Je souhaite utiliser AWS Key Management Service (AWS KMS) pour chiffrer les données du journal dans Amazon CloudWatch Logs.

Brève description

Par défaut, CloudWatch Logs utilise des clés de chiffrement côté serveur pour chiffrer les données des groupes de journaux. Pour contrôler le chiffrement des données des journaux ou respecter votre politique de sécurité, vous pouvez également utiliser des clés gérées par le client dans AWS KMS.

Remarque : L'utilisation du chiffrement AWS KMS peut entraîner des coûts supplémentaires.

Résolution

Pour utiliser une clé gérée par le client existante pour le chiffrement des données de journal dans un groupe de journaux, procédez comme suit.

Remarque : Si vous ne possédez pas de clé gérée par le client, créez-en une avant de commencer. CloudWatch Logs prend uniquement en charge les clés AWS KMS symétriques.

Accorder à CloudWatch Logs les autorisations nécessaires pour accéder à la clé AWS KMS

Pour accorder à CloudWatch Logs l'autorisation d'accéder à la clé AWS KMS, modifiez la stratégie de clé afin qu'elle inclue l'instruction suivante. Pour autoriser d'autres groupes de journaux à utiliser la clé, remplacez l'ARN du groupe de journaux dans la section Condition arn:aws:logs :<region>:<account-id>:log-group:*.

Exemple d’instruction :

Remarque : Remplacez example-region par votre région AWS, example-account-id par votre ID de compte AWS et example-log-group par le nom de votre groupe de journaux.

{
    "Effect": "Allow",
    "Principal": {
        "Service": "logs.<region>.amazonaws.com"
    },
    "Action": [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*"
    ],
    "Resource": "*",
    "Condition": {
        "ArnEquals": {
            "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:example-region:example-account-id:log-group:example-log-group"
        }
    }
}

Associer une clé AWS KMS à un groupe de journaux

Vous pouvez associer une clé AWS KMS lorsque vous la créez ou après l'avoir créée. L'association de votre clé au moment du chiffrement peut prendre jusqu'à 5 minutes.

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la page Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Associer une clé AWS KMS lors de la création

Pour associer une clé AWS KMS lorsque vous créez la clé, procédez comme suit :

  1. Ouvrez la console CloudWatch.
  2. Dans le volet de navigation, sélectionnez Groupes de journaux.
  3. Sélectionnez Créer un groupe de journaux.
  4. Saisissez un nom et l'ARN de la clé AWS KMS pour le groupe de journaux, puis sélectionnez Créer. Vous pouvez également exécuter la commande create-log-group suivante :
    Remarque : Remplacez example-log-group par le nom du groupe et example-key-arn avec l’ID de clé AWS KMS.
    aws logs create-log-group --log-group-name example-log-group --kms-key-id example-key-arn

Associer une clé AWS KMS après sa création

Remarque : Vous ne pouvez pas utiliser la console CloudWatch pour associer une clé AWS KMS à un groupe de journaux existant.

Pour associer une clé AWS KMS après l'avoir créée, exécutez la commande associate-kms-key suivante :

Remarque : Remplacez example-log-group par le nom du groupe et example-key-arn avec l’ID de clé AWS KMS.

aws logs associate-kms-key --log-group-name example-log-group --kms-key-id example-key-arn

Vous pouvez dissocier une clé AWS KMS d'un groupe de journaux. Une fois que vous avez dissocié ou modifié une clé AWS KMS, CloudWatch Logs peut déchiffrer et renvoyer les données du journal. Toutefois, si vous désactivez une clé AWS KMS, CloudWatch Logs ne peut pas lire les journaux que vous avez chiffrés avec cette clé.

Informations connexes

Chiffrer les données des journaux dans CloudWatch Logs à l'aide d'AWS Key Management Service

Protection des données dans Amazon CloudWatch Logs