CloudTrail log deliveries must be encrypted with an AWS KMS customer-managed key to protect audit logs at rest and ensure strict key access control, rotation, and usage auditing. In Ansible tasks using the amazon.aws.cloudtrail or cloudtrail module, the kms_key_id parameter must be defined and set to a KMS key ARN or alias (for example arn:aws:kms:region:account-id:key/KEY-ID or alias/my-key).
Tasks missing kms_key_id are flagged. Without a customer-managed key, you lose control over key access, rotation, and usage auditing.
Secure configuration example:
- name:Create CloudTrail with KMS encryptionamazon.aws.cloudtrail:name:my-trails3_bucket_name:my-cloudtrail-bucketkms_key_id:arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-7890-abcd-EXAMPLE
Compliant Code Examples
- name:create multi-region trail with validation and tags v2amazon.aws.cloudtrail:state:presentname:defaults3_bucket_name:mylogbucketregion:us-east-1is_multi_region_trail:trueenable_log_file_validation:truecloudwatch_logs_role_arn:arn:aws:iam::123456789012:role/CloudTrail_CloudWatchLogs_Rolecloudwatch_logs_log_group_arn:arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail/DefaultLogGroup:*kms_key_id:alias/MyAliasNametags:environment:devName:default