Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
cloudwatch_log_group_not_publicly_accessibleProvider: AWS
Service:
cloudwatchSeverity: HIGH
Categories:
internet-exposed, identity-accessResource type:
OtherWhat this check verifies
CloudWatch Log Groups with resource policies that grant access to any principal are identified. Statements usingPrincipal:"*" or wildcard Resource that reference a log group ARN indicate that the log group is exposed through a public policy.
Risk
Public access to log groups enables unauthorized reading of logs, revealing secrets and operational metadata, harming confidentiality. If broad actions are allowed, attackers can modify subscriptions or logs, undermining integrity and disrupting availability of audit evidence.Recommendation
Remove public access from log group resource policies. ReplacePrincipal:"*" and Resource:"*" with narrowly scoped principals and specific ARNs. Grant only necessary actions, apply conditions to constrain use, and enforce least privilege and separation of duties with regular policy reviews.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws logs delete-resource-policy —policy-name <policy-name>
References
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = cloudwatch_log_group_not_publicly_accessible. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks