Добавление дополнительных sns: Отмена подписки на политику доступа SNS приводит к ошибке InvalidParameter - PullRequest
0 голосов
/ 08 июня 2019

Это скребок для головы:

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?Мне нужна моя лямбда-функция, чтобы иметь возможность подписываться и отписываться от очередей на SNS :: test topic.

1 Ответ

1 голос
/ 08 июня 2019

Согласно Специальная информация для политик Amazon SNS sns:Unsubscribe не указан в качестве действующего действия политики SNS.

Попробуйте использовать client.unsubscribe(SubscriptionArn='string') вместо этого согласно документации Boto3 .

...