Check provider logo

Customer managed IAM policy does not allow cloudtrail:* privileges

iam_policy_no_full_access_to_cloudtrail

Severitymedium
Serviceiam
by Prowler

Custom IAM policies are reviewed for statements that grant full CloudTrail access via the cloudtrail:* wildcard, indicating unrestricted permission to all CloudTrail actions.

Risk

Unrestricted CloudTrail control lets principals stop or alter logging, delete or modify trails, and query events.

This enables log evasion, audit tampering, and reconnaissance, undermining the integrity, availability, and confidentiality of audit evidence and detection.

Run this check with Prowler CLI

prowler aws --checks iam_policy_no_full_access_to_cloudtrail

Recommendation

Apply least privilege: avoid cloudtrail:* and allow only required actions.

Enforce separation of duties for trail management. Use permissions boundaries or SCPs to block broad CloudTrail access, and validate policies regularly to refine scopes.

Remediation

CLI

aws iam create-policy-version --policy-arn <example_policy_arn> --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"cloudtrail:DescribeTrails","Resource":"*"}]}' --set-as-default

Native IaC
Terraform
Other
  1. In the AWS Console, go to IAM > Policies
  2. Open the custom managed policy that contains Action: "cloudtrail:*"
  3. Click Edit JSON
  4. Replace "cloudtrail:*" with only the specific CloudTrail actions needed (e.g., "cloudtrail:DescribeTrails" or "cloudtrail:LookupEvents"), or remove CloudTrail actions entirely
  5. Save changes to create/set the new default policy version
  6. Verify the policy no longer contains "cloudtrail:*"

Source Code

Resource Type

AwsIamPolicy

References