How to Find AWS CloudTrail Trails Not Encrypted with KMS Keys
By default, the log files delivered by CloudTrail to your bucket are encrypted by Amazon server-side encryption with Amazon S3-managed encryption keys (SSE-S3). To provide a security layer that is directly manageable, you can instead use server-side encryption with AWS KMS–managed keys (SSE-KMS) for your CloudTrail log files.
This security check is part of the CIS Amazon Web Services Benchmarks and is rated severity medium.
Prerequisites
This guide assumes that you have already installed and configured Fix Inventory to collect your AWS resources.
Directions
-
Execute the following
search
command in Fix Inventory Shell:> search is(aws_cloud_trail) and trail_kms_key_id==null
kind=aws_cloud_trail, ..., region=fixinventory-poweruser
kind=aws_cloud_trail, ..., account=poweruser-team -
Pipe the
search
command into thedump
command:> search is(aws_cloud_trail) and trail_kms_key_id==null | dump
reported:
id: /aws/cloudtrail/123
name: some-name
ctime: '2022-12-05T22:53:14Z'
kind: aws_cloud_trail
age: 2mo28dThe command output will list the details of all non-compliant
aws_cloud_trail
resources.
Remediation
- Create and manage the CMK encryption keys.
- Use a single CMK to encrypt and decrypt log files for multiple accounts across all regions.
- Control who can use your key for encrypting and decrypting CloudTrail log files.
- Assign permissions for the key to the users.
Please refer to the AWS CloudTrail documentation for details.