- 我已经创建了SNS主题
- 我已经创建了调用lambda函数的API网关端点
- 我已经创建了主题https订阅,该订阅指向API网关端点
问题:当auth = none时,一切正常,但是当我启用auth = aws_iam时,订阅和消息都不会传递到我的lambda。它们也不会出现在lambda或Gateway CloudWatch日志中,因为经过身份验证错误通常是这种情况。
问题:
- HTTPS端点传递给AWS_IAM的身份是什么,因此不允许它(我的第一个想法是中继SNS海报令牌,但似乎并非如此)
- 我找不到将HTTPS端点与任何身份相关联的方法,有没有办法?
- 有很多有关将SNS传递到SQ或通往SN的网关的信息,但找不到有关实现我尝试做的事情的任何信息。
- 有什么方法可以调试AWS_IAM身份验证问题?我看到的文档已经看到了"检查特权"的建议,这是我已经做了很多小时的事情,但我没有更多的想法。
我很高兴听到您的想法,谢谢。
正如您在文档中看到的那样,SNS只能做基本/摘要auth http://docs.aws.amazon.com/sns/latest/latest/dg/sendmessagethttp.html
文档中有一个有关验证消息有效性的部分,但这是代码,您必须写下自己或从后端上的一个SNS SDK中抬起。不幸的是,确实没有任何方法可以通过AWS SIGV4签署请求。
为什么不让lambda函数直接订阅SNS主题(不浏览API网关)?
应该很简单:https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html
这是一个完整的链接,它将帮助您解决身份验证问题。https://aws.amazon.com/premuimsupport/knowledge-center/iam-authentication-api-gateway/
如果是"检查特权"问题,那么您的IAM用户将无法对资源进行任何更改。