All checks
Critical SNS · regional

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