SNS Topic should have access restrictions set for subscription
Description
Update your Amazon Simple Notification Service (SNS) topic resource-based policy to prevent unintended access to the resource.
Rationale
When a *
is specified as a Principal
, along with an Allow
Effect
it grants anyone the ability to perform actions on a resource. In this situation, if the policy includes the sns:Subscribe
Action
, it would permit anyone the ability to receive messages from the topic, resulting in an impact to the confidentiality of the application.
From the console
Follow the Preventative best practices docs to learn how to implement least-privilege access or use IAM roles for your applications and AWS services.
From the command line
Update your resource-based policy with an appropriate Principal
ARN or a Condition
element. Save the file as policy.json
.
{
...
"Statement": [
...
{
"Sid": "console_sub",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": [
"SNS:Subscribe"
],
...
}
]
}
Run set-topic-attributes
with the ARN of the SNS topic.
aws sns set-topic-attributes \
--topic-arn arn:aws:sns:region:123456789012:YourTopic \
--attribute-name Policy \
--attribute-value file://policy.json