Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
sns_topics_not_publicly_accessibleProvider: AWS
Service:
snsSeverity: HIGH
Categories:
internet-exposedResource type:
AwsSnsTopicWhat this check verifies
SNS topic policies are analyzed for public principals (e.g.,*). Topics that grant access without restrictive conditions such as aws:SourceArn, aws:SourceAccount, aws:PrincipalOrgID, or sns:Endpoint scoping are treated as publicly accessible.
Risk
Public SNS topics allow anyone or unknown accounts to:- Subscribe and siphon messages (confidentiality)
- Publish spoofed payloads that alter workflows (integrity)
- Flood messages causing outages and costs (availability) They also enable cross-account abuse and bypass expected trust boundaries.
Recommendation
Restrict the topic policy to specific principals and minimal actions:- Avoid
Principal:* - Allow only needed actions (e.g.,
sns:Publish) - Add conditions like
aws:SourceArn,aws:SourceAccount,aws:PrincipalOrgID, orsns:EndpointApply least privilege, separate duties, and review policies regularly.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/SNS/topics-everyone-publish.html
- https://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = sns_topics_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