这是个抓头的:
sns_policy = {
"Version":"2012-10-17",
"Statement":[{
"Effect" : "Allow",
"Principal" : { "AWS": "*" },
"Action" : ["sns:Publish", "sns:ListSubscriptionsByTopic", "sns:Unsubscribe"],
"Resource" : "arn:aws:sns:us-west-2:234234234:test",
"Condition" : {
"ArnEquals" : {
"aws:SourceArn" : "arn:aws:lambda:us-west-2:234234234:function:*"
}
}
}]
}
sns.set_topic_attributes(TopicArn = "arn:aws:sns:us-west-2:234234234:test",
AttributeName = "Policy",
AttributeValue = json.dumps(sns_policy)
) 添加第三个Action数组项,sns:Unsubscribe将导致Invalid parameter: Policy statement action out of service scope! (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter;并删除sns:Unsubscribe。
为什么AWS不允许这样做?我需要我的lambda函数才能订阅和取消订阅SNS::test主题的队列。
发布于 2019-06-08 08:45:17
根据亚马逊SNS策略的特殊信息的说法,sns:Unsubscribe没有被列为有效的SNS策略操作。
尝试使用client.unsubscribe(SubscriptionArn='string')代替Boto3文档。
https://stackoverflow.com/questions/56503754
复制相似问题