Configuration des politiques de clés AWS KMS pour CloudTrail - AWS CloudTrail

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.

Configuration des politiques de clés AWS KMS pour CloudTrail

Vous pouvez créer une AWS KMS key de trois manières :

  • La console CloudTrail

  • La console AWS Management

  • La AWS CLI

Note

Si vous créez une clé KMS dans la console CloudTrail, CloudTrail ajoutera la politique de clé KMS requise pour vous. Vous n’avez pas besoin d’ajouter manuellement les déclarations de politique. Consultez Politique de clé KMS par défaut créée dans la console CloudTrail.

Si vous créez une clé KMS dans AWS Management ou la AWS CLI, vous devez ajouter des sections de politique de clé afin que vous puissiez l’utiliser avec CloudTrail. La politique doit permettre à CloudTrail d'utiliser la clé pour chiffrer vos fichiers journaux et vos magasins de données d'événement, et autoriser les utilisateurs que vous spécifiez à lire les fichiers journaux sous forme non chiffrée.

Consultez les ressources suivantes :

Sections de politique de clé KMS obligatoires à utiliser avec CloudTrail

Si vous avez créé une clé KMS avec la console AWS Management ou la AWS CLI, vous devez par conséquent, tout au moins, ajouter ces déclarations suivantes à votre politique de clé KMS pour qu’elle fonctionne avec CloudTrail.

Éléments de politique clé KMS requis pour les journaux de suivi

  1. Activer les autorisations de chiffrement de journaux CloudTrail. Consultez Attribution des autorisations de chiffrement.

  2. Activer les autorisations de déchiffrement de journaux CloudTrail. Consultez Attribution des autorisations de déchiffrement. Si vous utilisez un compartiment S3 existant avec une clé S3 Bucket Key (Clé de compartiment S3), les autorisations kms:Decrypt sont nécessaires pour créer ou mettre à jour un journal de suivi en utilisant le chiffrement SSE-KMS activé.

  3. Activer CloudTrail pour décrire les propriétés des clés KMS. Consultez Activer CloudTrail pour décrire les propriétés des clés KMS.

Comme bonne pratique en matière de sécurité, ajoutez une clé de condition aws:SourceArn à la politique de clé KMS. La clé de condition globale IAM aws:SourceArn permet de s’assurer que CloudTrail utilise la clé KMS uniquement pour un ou plusieurs journaux d’activité spécifiques. La valeur de aws:SourceArn est toujours l’ARN du journal d’activité (ou tableau des ARN du journal d’activité) qui utilise la clé KMS. Veillez à ajouter la clé de condition aws:SourceArn des politiques de clé KMS pour les journaux d’activité existants.

La clé de condition aws:SourceAccount est également prise en charge, mais elle n’est pas recommandée. La valeur de aws:SourceAccount est l’ID de compte du propriétaire du journal d’activité ou, pour les journaux d’activité de l’organisation, l’ID du compte de gestion.

Important

Lorsque vous ajoutez les nouvelles sections à votre politique de clé KMS, ne changez pas les sections existantes dans la politique.

Si le chiffrement est activé sur un journal d’activité et que la clé KMS est désactivée ou que la politique de clé KMS n’est pas correctement configurée pour CloudTrail, CloudTrail ne livrera pas les journaux.

Éléments de politique clé KMS requis pour les magasins de données d'événement

  1. Activer les autorisations de chiffrement de journaux CloudTrail. Consultez Attribution des autorisations de chiffrement.

  2. Activer les autorisations de déchiffrement de journaux CloudTrail. Consultez Attribution des autorisations de déchiffrement.

  3. Accordez aux utilisateurs et aux rôles l'autorisation de chiffrer et de déchiffrer les données d'événement avec la clé KMS.

    Lorsque vous créez un magasin de données d'événement et le chiffrez avec une clé KMS, ou que vous exécutez des requêtes sur un magasin de données d'événement que vous chiffrez avec une clé KMS, vous devez avoir un accès en écriture à la clé KMS. La politique de clé KMS doit avoir accès à CloudTrail, et la clé KMS doit être administrable par les utilisateurs qui exécutent des opérations (telles que des requêtes) sur le magasin de données d'événement.

  4. Activer CloudTrail pour décrire les propriétés des clés KMS. Consultez Activer CloudTrail pour décrire les propriétés des clés KMS.

Les clés de condition aws:SourceArn et aws:SourceAccount ne sont pas prises en charge dans les politiques relatives aux clés KMS pour les magasins de données d'événement.

Important

Lorsque vous ajoutez les nouvelles sections à votre politique de clé KMS, ne changez pas les sections existantes dans la politique.

Si le chiffrement est activé sur un magasin de données d'événement, et que la clé KMS est désactivée ou supprimée, ou que la politique de clé KMS n'est pas correctement configurée pour CloudTrail, ce dernier ne peut pas livrer les événements à votre magasin de données d'événement.

Attribution des autorisations de chiffrement

Exemple Autoriser CloudTrail à chiffrer les journaux pour le compte de comptes spécifiques

CloudTrail a besoin d’une autorisation explicite pour utiliser la clé KMS afin de chiffrer les journaux au nom de comptes spécifiques. Afin de spécifier un compte, ajoutez l'instruction requise suivante à votre politique de clé KMS et remplacez account-id, region et trailName par les valeurs appropriées pour votre configuration. Vous pouvez ajouter des ID de compte supplémentaires à la section EncryptionContext pour permettre à ces comptes d’utiliser CloudTrail pour utiliser votre clé KMS afin de chiffrer les fichiers journaux.

Comme bonne pratique en matière de sécurité, ajoutez une clé de condition aws:SourceArn à la politique de clé KMS pour un journal de suivi. La clé de condition globale IAM aws:SourceArn permet de s’assurer que CloudTrail utilise la clé KMS uniquement pour un ou plusieurs journaux d’activité spécifiques.

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*" } } }

Une politique pour une clé KMS utilisée pour chiffrer les journaux du magasin de données d'événement CloudTrail Lake ne peut pas utiliser les clés de condition aws:SourceArn ou aws:SourceAccount. Voici un exemple de politique de clé KMS pour un magasin de données d'événement.

{ "Sid": "Allow CloudTrail to encrypt event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

Voici un exemple de déclaration de politique qui illustre la façon dont un autre compte peut utiliser votre clé KMS pour chiffrer les journaux CloudTrail.

Scénario
  • Votre clé KMS se trouve dans le compte 111111111111.

  • Le compte 222222222222 et vous-même chiffrerez les journaux.

Dans la politique, vous ajoutez au CloudTrail EncryptionContext un ou plusieurs comptes qui procèdent au chiffrement avec votre clé. Cela contraint CloudTrail à n'utiliser votre clé pour chiffrer les journaux que pour les comptes que vous spécifiez. Lorsque vous donnez au root du compte 222222222222 l'autorisation de chiffrer les journaux, il délègue à l'administrateur du compte l'autorisation de chiffrer les autorisations nécessaires aux autres utilisateurs de ce compte. Pour ce faire, l'administrateur du compte modifie les politiques associées à ces utilisateurs IAM.

Comme bonne pratique en matière de sécurité, ajoutez une clé de condition aws:SourceArn à la politique de clé KMS. La clé de condition globale IAM aws:SourceArn permet de s'assurer que CloudTrail n'utilise la clé KMS que pour les journaux de suivi spécifiés. Cette condition n'est pas prise en charge dans les stratégies de clé KMS pour les stockages de données d'événement.

Déclaration de politique de clé KMS :

{ "Sid": "Enable CloudTrail encrypt permissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111111111111:trail/*", "arn:aws:cloudtrail:*:222222222222:trail/*" ] }, "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

Pour plus d'informations sur la modification d'une stratégie de clé KMS à utiliser avec CloudTrail, veuillez consulter Editing a Key Policy dans le Guide du développeur AWS Key Management Service.

Attribution des autorisations de déchiffrement

Avant d’ajouter votre clé KMS à votre configuration CloudTrail, il est important d’accorder des autorisations de déchiffrement à tous les utilisateurs qui en ont besoin. Les utilisateurs disposant d'autorisations de chiffrement, mais pas de déchiffrement ne peuvent pas lire les journaux chiffrés. Si vous utilisez un compartiment S3 existant avec une cléClé de compartiment S3, les autorisations kms:Decrypt sont requises pour créer ou mettre à jour un journal d’activité avec le chiffrement SSE-KMS activé.

Activer les autorisations de déchiffrement de journaux CloudTrail

Les utilisateurs de votre clé doivent détenir des autorisations explicites pour être en mesure de lire les fichiers journaux que CloudTrail a chiffrés. Pour permettre aux utilisateurs de lire les journaux chiffrés, ajoutez l'instruction obligatoire suivante à votre stratégie de clé KMS, en modifiant la section Principal pour ajouter une ligne pour chaque principal que vous souhaitez pouvoir déchiffrer en utilisant votre clé KMS.

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

Voici un exemple de politique requise pour permettre au principal du service CloudTrail de déchiffrer les journaux de suivi.

{ "Sid": "Allow CloudTrail to decrypt a trail", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Une politique de déchiffrage pour une clé KMS utilisée avec un magasin de données d'événement CloudTrail Lake est similaire à ce qui suit. Les ARN d'utilisateur ou de rôle spécifiés comme valeurs pour Principal doivent déchiffrer les autorisations pour créer ou mettre à jour des magasins de données d'événement, exécuter des requêtes ou obtenir des résultats de requêtes.

{ "Sid": "Enable user key permissions for event data stores" "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Voici un exemple de politique requise pour permettre au principal du service CloudTrail de déchiffrer les journaux du magasin de données d'événement.

{ "Sid": "Allow CloudTrail to decrypt an event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Autoriser les utilisateurs de votre compte à déchiffrer les journaux de suivi avec votre clé KMS

Exemple

Cette déclaration de politique illustre la façon d'autoriser un utilisateur ou un rôle dans votre compte à utiliser votre clé pour lire les journaux chiffrés dans le compartiment S3 de votre compte.

Exemple Scénario
  • Votre clé KMS, votre compartiment S3 et l'utilisateur IAM Bob se trouvent dans le compte 111111111111.

  • Vous accordez à l’utilisateur IAM Bob l’autorisation de déchiffrer les journaux CloudTrail dans le compartiment S3.

Dans la politique de clé, vous activez les autorisations de déchiffrement de journaux CloudTrail pour l’utilisateur IAM Bob.

Déclaration de politique de clé KMS :

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }
Rubriques

    Autoriser les utilisateurs d'autres comptes à déchiffrer les journaux de suivi avec votre clé KMS

    Vous pouvez autoriser les utilisateurs d'autres comptes à utiliser votre clé KMS pour déchiffrer les journaux de suivi, mais pas les journaux du magasin de données d'événement. Les modifications à apporter à votre politique de clé dépendent du fait que le compartiment S3 se trouve dans votre compte ou dans un autre compte.

    Autoriser les utilisateurs d’un compartiment dans un autre compte à déchiffrer les journaux

    Exemple

    Cette déclaration de politique montre comment autoriser un utilisateur IAM ou un rôle dans un autre compte à utiliser votre clé pour lire des journaux chiffrés d’un compartiment S3 dans l’autre compte.

    Scénario
    • Votre clé KMS se trouve dans le compte 111111111111.

    • L'utilisatrice IAM Alice et le compartiment S3 sont dans le compte 222222222222.

    Dans ce cas, vous accordez à CloudTrail l'autorisation de déchiffrer les journaux sous le compte 222222222222, et à Alice l'autorisation de politique d'utilisateur IAM d'utiliser votre clé KeyA, qui est dans le compte 111111111111.

    Déclaration de stratégie de clé KMS :

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Déclaration de politique utilisateur IAM d’Alice :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA" } ] }

    Autoriser les utilisateurs d'un autre compte à déchiffrer les journaux de suivi de votre compartiment

    Exemple

    Cette politique illustre la façon dont un autre compte peut utiliser votre clé pour lire les journaux chiffrés à partir de votre compartiment S3.

    Exemple Scénario
    • Votre clé KMS et le compartiment S3 sont dans le compte 111111111111.

    • L'utilisateur qui lit les journaux dans votre compartiment est dans le compte 222222222222.

    Pour activer ce scénario, vous activez les autorisations de déchiffrement pour le rôle IAM CloudTrailReadRole dans votre compte, et puis vous accordez à l’autre compte l’autorisation d’assumer ce rôle.

    Déclaration de politique de clé KMS :

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Déclaration de politique d’entité de confiance CloudTrailReadRole :

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "sts:AssumeRole" } ] }

    Pour plus d'informations sur la modification d'une politique de clé KMS à utiliser avec CloudTrail, consultez Modification d'une politique de clé dans le Guide du développeur AWS Key Management Service.

    Activer CloudTrail pour décrire les propriétés des clés KMS

    CloudTrail nécessite la capacité à décrire les propriétés de la clé KMS. Pour activer cette fonctionnalité, ajoutez l’instruction obligatoire suivante telle quelle à votre politique de clé KMS. Cette instruction n’accorde à CloudTrail aucune autorisation au-delà des autres autorisations que vous spécifiez.

    Comme bonne pratique en matière de sécurité, ajoutez une clé de condition aws:SourceArn à la politique de clé KMS. La clé de condition globale IAM aws:SourceArn permet de s’assurer que CloudTrail utilise la clé KMS uniquement pour un ou plusieurs journaux d’activité spécifiques.

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

    Pour plus d’informations sur la modification des politiques de clé KMS, consultez Modification d’une politique de clé dans le Guide du développeurAWS Key Management Service.