Comment AWS CloudTrail utilise AWS KMS - AWS Key Management Service

Comment AWS CloudTrail utilise AWS KMS

Vous pouvez utiliser AWS CloudTrail pour enregistrer les appels d'API AWS et d'autres activités pour votre Compte AWS et pour enregistrer les informations enregistrées dans des fichiers journaux, dans un compartiment Amazon Simple Storage Service (Amazon S3) de votre choix. Par défaut, les fichiers journaux placés par CloudTrail dans votre compartiment S3 sont chiffrés à l'aide d'un chiffrement côté serveur utilisant des clés de chiffrement gérées par Amazon S3 (SSE-S3). Mais vous pouvez choisir à la place d'utiliser un chiffrement côté serveur avec une clé gérée KMS (SSE-KMS). Pour découvrir comment chiffrer vos fichiers journaux CloudTrail avec AWS KMS, veuillez consulter Chiffrement des fichiers journaux de CloudTrail avec des AWS KMS keys (SSE-KMS) dans le Guide de l'utilisateur AWS CloudTrail.

Important

AWS CloudTrail et Amazon S3 prennent uniquement en charge les AWS KMS keys symétriques. Vous ne pouvez pas utiliser une clé KMS asymétrique pour chiffrer vos journaux CloudTrail. Pour obtenir de l'aide sur la détermination de la symétrie ou de l'asymétrie d'une clé KMS, veuillez consulter Identification des clés KMS asymétriques.

Vous ne payez pas de coût d'utilisation de clé lorsque CloudTrail lit ou écrit des fichiers journaux chiffrés avec une clé SSE-KMS. Toutefois, vous payez des coûts d'utilisation de clé lorsque vous accédez à des fichiers journaux CloudTrail chiffrés avec une clé SSE-KMS. Pour plus d'informations sur la tarification AWS KMS, consultez Tarification AWS Key Management Service. Pour plus d'informations sur la tarification CloudTrail, veuillez consulter Tarification AWS CloudTrail et gestion des coûts dans le Guide de l'utilisateur AWS CloudTrail.

Comprendre quand votre clé KMS est utilisée

Le chiffrement des fichiers journaux CloudTrail avec AWS KMS repose sur la fonction Amazon S3 appelée chiffrement côté serveur avec AWS KMS key (SSE-KMS). Pour en savoir plus sur SSE-KMS, veuillez consulter Comment Amazon Simple Storage Service (Amazon S3) utilise AWS KMS dans ce guide ou Protection des données grâce au chiffrement côté serveur avec des clés KMS (SSE-KMS) dans le guide du développeur Amazon Simple Storage Service.

Lorsque vous configurez AWS CloudTrail pour utiliser SSE-KMS afin de chiffrer vos fichiers journaux, CloudTrail et Amazon S3 utilisent votre AWS KMS keys lorsque vous effectuez certaines actions avec ces services. Les sections suivantes expliquent quand et comment ces services peuvent utiliser votre clé KMS, et fournissent des informations supplémentaires que vous pouvez utiliser pour valider cette explication.

Vous configurez CloudTrail pour chiffrer des fichiers journaux avec votre AWS KMS key

Lorsque vous mettez à jour votre configuration CloudTrail pour utiliser votre clé KMS, CloudTrail envoie une demande GenerateDataKey à AWS KMS pour vérifier que la clé KMS existe et que CloudTrail est autorisé à l'utiliser pour le chiffrement. CloudTrail n'utilise pas la clé de données résultante.

La demande GenerateDataKey inclut les informations suivantes pour le contexte de chiffrement :

  • Le nom Amazon Resource Name (ARN) du journal d'activité CloudTrail

  • L'ARN du compartiment S3 et chemin d'accès où les fichiers journaux CloudTrail sont livrés

La demande GenerateDataKey génère une entrée dans vos journaux CloudTrail, similaire à l'exemple suivant. Lorsque vous rencontrez une entrée de journal telle que celle-ci, vous pouvez déterminer que CloudTrail ( ) a appelé l'opération AWS KMS ( ) GenerateDataKey ( ) pour un journal d'activité spécifique ( ). AWS KMS a créé la clé de données sous une clé KMS spécifique ( ).

Note

Vous devrez peut-être faire défiler l'affichage vers la droite pour voir certaines des alertes dans l'exemple suivant d'entrée de journal.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:user/AWSCloudTrail", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "AWSCloudTrail", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T21:15:33Z" }}, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:33Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:alias/ExampleAliasForCloudTrailKMS key", "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "581f1f11-88b9-11e5-9c9c-595a1fb59ac0", "eventID": "3cdb2457-c035-4890-93b6-181832b9e766", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333" }

CloudTrail place un fichier journal dans votre compartiment S3

Chaque fois que CloudTrail place un fichier journal dans votre compartiment S3, Amazon S3 envoie une demande GenerateDataKey à AWS KMS au nom de CloudTrail. En réponse à cette demande, AWS KMS génère une clé de données unique, puis envoie à Amazon S3 deux copies de la clé de données : l'une en texte brut et l'autre chiffrée avec la clé KMS spécifiée. Amazon S3 utilise la clé de données en texte brut pour chiffrer le fichier journal CloudTrail, puis supprime la clé de données en texte brut de la mémoire dès que possible après l'utilisation. Amazon S3 stocke la clé de données chiffrée sous forme de métadonnées avec le fichier journal CloudTrail chiffré.

La demande GenerateDataKey inclut les informations suivantes pour le contexte de chiffrement :

Chaque demande GenerateDataKey génère une entrée dans vos journaux CloudTrail, similaire à l'exemple suivant. Lorsque vous voyez une entrée de journal comme celle-ci, vous pouvez déterminer que CloudTrail ( ) a appelé l'opération AWS KMS ( ) GenerateDataKey ( ) pour obtenir un journal de suivi spécifique ( ) afin de protéger un fichier journal spécifique ( ). AWS KMS a créé la clé de données sous la clé KMS spécifiée ( ), affichée deux fois dans la même entrée de journal.

Note

Vous devrez peut-être faire défiler l'affichage vers la droite pour voir certaines des alertes dans l'exemple suivant d'entrée de journal.

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:i-34755b85", "arn": "arn:aws:sts::086441151436:assumed-role/AWSCloudTrail/i-34755b85", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:45:25Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:role/AWSCloudTrail", "accountId": "086441151436", "userName": "AWSCloudTrail" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:58Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256" }, "responseElements": null, "requestID": "66f3f74a-88b9-11e5-b7fb-63d925c72ffe", "eventID": "7738554f-92ab-4e27-83e3-03354b1aa898", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333" }

Vous obtenez un fichier journal chiffré à partir de votre compartiment S3

Chaque fois que vous obtenez un fichier journal CloudTrail chiffré à partir de votre compartiment S3, Amazon S3 envoie une demande Decrypt à AWS KMS en votre nom, afin de déchiffrer la clé de données chiffrée du fichier journal. En réponse à cette demande, AWS KMS utilise votre clé KMS pour déchiffrer la clé de données, puis envoie la clé de données en texte brut à Amazon S3. Amazon S3 utilise la clé de données en texte brut pour déchiffrer le fichier journal CloudTrail, puis supprime la clé de données en texte brut de la mémoire dès que possible après l'utilisation.

La demande Decrypt inclut les informations suivantes pour le contexte de chiffrement :

Chaque demande Decrypt génère une entrée dans vos journaux CloudTrail, similaire à l'exemple suivant. Lorsque vous voyez une entrée de journal comme celle-ci, vous pouvez déterminer qu'un utilisateur de votre Compte AWS ( ) a appelé l'opération AWS KMS ( ) Decrypt ( ) pour obtenir un journal de suivi spécifique ( ) et un fichier journal spécifique ( ). AWS KMS a déchiffré la clé de données sous une clé KMS spécifique ( ).

Note

Vous devrez peut-être faire défiler l'affichage vers la droite pour voir certaines des alertes dans l'exemple suivant d'entrée de journal.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/cloudtrail-admin", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "cloudtrail-admin", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:48:04Z" }}, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2015-11-11T21:20:52Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" } }, "responseElements": null, "requestID": "16a0590a-88ba-11e5-b406-436f15c3ac01", "eventID": "9525bee7-5145-42b0-bed5-ab7196a16daa", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }