Tim*_*don 8 amazon-web-services node.js amazon-sns
我正在编写一个简单的SNS客户端,用于订阅自己的SNS主题,然后收听通知.我可以成功提交sns.subscribe请求,但是当我SubscriptionConfirmation从AWS sns.confirmSubscription获取POST消息并尝试回复时,我得到一个AuthorizationError返回:
[AuthorizationError: User: arn:aws:iam::xxx:user/mv-user is not authorized to perform: SNS:ConfirmSubscription on resource: arn:aws:sns:us-east-1:xxx:*]
Run Code Online (Sandbox Code Playgroud)
如果我在服务器的GET查询中使用完全相同的Token和TopicArn,则订阅确认工作正常,没有身份验证.
任何想法为什么它不起作用?我的SNS主题是公开的,发布/订阅权限设置为"Everyone".
作为参考,我的代码是这样的:
var params = {
TopicArn: topicArn, // e.g. arn:aws:sns:us-east-1:xxx:yyy
Token: token // long token extracted from POST body
};
sns.confirmSubscription(params, function (err, data) {
if (err) {
// BOOOM - keep getting here with AuthorizationError
} else {
// Yay. Worked, but never seem to get here :(
}
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我在浏览器中导航到与此类似的URL(即完全未经身份验证),则它可以完美地运行:
http://sns.us-east-1.amazonaws.com/?Action=ConfirmSubscription&Token=<token>&TopicArn=arn%3Aaws%3Asns%3Aus-east-1%3Axxx%3Ayyy&Version=2010-03-31
Run Code Online (Sandbox Code Playgroud)
唯一的区别似乎是在程序化版本中包含"授权"和"签名"标题(使用Wireshark检查).
有任何想法吗?提前致谢!
在我的代码中,如果我只是以编程方式SubscribeURL对SubscriptionConfirmation消息中的一个简单的GET请求,这可以正常工作.看起来很奇怪,confirmSubscriptionAPI调用不起作用.现在可能会坚持这种解决方法.
调用时也会出现相同的错误,sns.unsubscribe但再次调用UnsubscribeURL每个通知都有效.似乎其他人也遇到了这个问题,但找不到任何解决方案.
我在开发应用程序时遇到了类似的问题。我最终解决它的方式如下:
以上应该照顾它。
如果您想变得更漂亮,您可以创建一个基于“AmazonSNSFullAccess”的自定义策略并将其应用于您的用户。
自定义策略类似于以下内容:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sns:ConfirmSubscription"
],
"Effect": "Allow",
"Resource": "YOUR_RESOURCE_ARN_SHOULD_BE_HERE"
}
]
}
Run Code Online (Sandbox Code Playgroud)
错误说明了一切:
[AuthorizationError: User: arn:aws:iam::xxx:user/mv-user is not authorized to perform: SNS:ConfirmSubscription on resource: arn:aws:sns:us-east-1:xxx:*]
Run Code Online (Sandbox Code Playgroud)
基本上是告诉您,您用来调用ConfirmSubscription 的IAM 用户没有执行此操作的适当权限。最好的办法是更新该 IAM 用户的权限,特别是添加ConfirmSubscription权限。
(根据您的评论,即使文档另有说明,错误也非常具体......可能值得直接与 AWS 跟进此问题,因为错误消息或文档不正确)。
| 归档时间: |
|
| 查看次数: |
4016 次 |
| 最近记录: |