60 lines
1.1 KiB
Terraform
60 lines
1.1 KiB
Terraform
|
provider "aws" {
|
||
|
region = "us-east-1"
|
||
|
}
|
||
|
|
||
|
resource "aws_sns_topic" "test" {
|
||
|
name = "my-topic-with-policy"
|
||
|
}
|
||
|
|
||
|
resource "aws_sns_topic_policy" "default" {
|
||
|
arn = aws_sns_topic.test.arn
|
||
|
|
||
|
policy = data.aws_iam_policy_document.sns_topic_policy.json
|
||
|
}
|
||
|
|
||
|
resource "aws_sns_topic" "test2" {
|
||
|
name = "my-topic-with-policy2"
|
||
|
}
|
||
|
|
||
|
resource "aws_sns_topic_policy" "default2" {
|
||
|
arn = aws_sns_topic.test2.arn
|
||
|
|
||
|
policy = data.aws_iam_policy_document.sns_topic_policy.json
|
||
|
}
|
||
|
|
||
|
data "aws_iam_policy_document" "sns_topic_policy" {
|
||
|
policy_id = "__default_policy_ID"
|
||
|
|
||
|
statement {
|
||
|
actions = [
|
||
|
"SNS:Subscribe",
|
||
|
"SNS:SetTopicAttributes",
|
||
|
"SNS:RemovePermission",
|
||
|
"SNS:Receive",
|
||
|
"SNS:Publish",
|
||
|
"SNS:ListSubscriptionsByTopic",
|
||
|
"SNS:GetTopicAttributes",
|
||
|
"SNS:DeleteTopic",
|
||
|
"SNS:AddPermission",
|
||
|
]
|
||
|
|
||
|
condition {
|
||
|
test = "StringEquals"
|
||
|
variable = "AWS:SourceOwner"
|
||
|
values = []
|
||
|
}
|
||
|
|
||
|
effect = "Allow"
|
||
|
|
||
|
principals {
|
||
|
type = "AWS"
|
||
|
identifiers = ["*"]
|
||
|
}
|
||
|
|
||
|
resources = [
|
||
|
aws_sns_topic.test.arn,
|
||
|
]
|
||
|
|
||
|
sid = "__default_statement_ID"
|
||
|
}
|
||
|
}
|