将SNS消息发布到AWS_IAM认证的Api网关端点

时间:2016-11-22 16:21:51

标签: amazon-web-services amazon-sns aws-api-gateway

  1. 我创建了SNS主题
  2. 我创建了调用Lambda函数的API网关端点
  3. 我创建了指向API网关端点的主题HTTPS订阅
  4. 问题:当AUTH = none时一切正常,但是当我启用AUTH = AWS_IAM时,订阅和消息都没有传递给我的lambda。它们也不会出现在Lambda OR Gateway云计算日志中,因为通常情况下会出现身份验证错误。

    问题:

    • HTTPS端点向AWS_IAM提供的身份是什么,所以它不允许它(我首先想到的是传递SNS海报令牌,但似乎并非如此)
    • 我找不到任何方法将HTTPS端点与任何身份相关联,有办法吗?
    • 有很多关于向SQS或SNS网关提供SNS的信息,但找不到任何有关实现我尝试做的信息。
    • 是否有任何方法可以调试AWS_IAM身份验证问题?文档我已经看到了“检查权限”的建议,这是我多年来一直在做的事情,但我没有更多的想法。

    我很高兴听到你的任何想法,谢谢。

3 个答案:

答案 0 :(得分:0)

为什么不让Lambda函数直接订阅SNS主题(不通过API网关)?

这应该是直截了当的:https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html

答案 1 :(得分:0)

以下是完整的链接,可帮助您解决身份验证问题。 https://aws.amazon.com/premiumsupport/knowledge-center/iam-authentication-api-gateway/

如果是“检查权限”问题,那么您的IAM用户没有足够的资源访问权限进行任何更改。

答案 2 :(得分:0)

正如您在文档中看到的那样,SNS只能进行基本/摘要验证http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html

文档中有一个部分用于验证邮件的有效性,但这是您必须自己编写或从后端的某个SNS SDK升级的代码。遗憾的是,实际上没有办法让SNS用AWS SigV4签署请求。