SNS topic access policies should not allow public access
Flags SNS topic access policies that allow public access.
- service
- SNS
- severity
- Critical
- scope
- evaluated in every region
How to fix it
Have the named topic's access policy name the principals allowed to publish to it and subscribe to it, with no statement granting every principal, and none allowing everyone EXCEPT a named list. The write replaces the policy whole rather than merging, so start from the current document and keep the statement that lets your own account manage the topic. Anonymous publishers stop the moment you save; existing subscriptions keep delivering. A condition clears the finding only if it bounds the grant to a principal you control.
In the console
Simple Notification Service → Topics → the topic → Access policy
With the AWS CLI
aws sns set-topic-attributes --topic-arn <topic-arn> --attribute-name Policy --attribute-value file://topic-policy.json --region <region>With Terraform
resource "aws_sns_topic_policy" "this" {
arn = var.topic_arn
policy = data.aws_iam_policy_document.no_public_access.json
}
See which of your accounts this check is failing on.
Book a demo