将 SNS 消息发布到 AWS_IAM 经过身份验证的 Api 网关端点
Posting SNS messages to AWS_IAM authenticated Api Gateway endpoint
- 我创建了 SNS 主题
- 我已经创建了 API 调用 Lambda 函数的网关端点
- 我创建了指向 API 网关端点的主题 HTTPS 订阅
问题:当 AUTH=none 时一切正常,但是当我启用 AUTH=AWS_IAM 时,订阅和消息都没有传送到我的 lambda。它们也不会出现在 Lambda OR Gateway cloudwatch 日志中,因为身份验证错误通常是这种情况。
问题:
- HTTPS 端点传递给 AWS_IAM 的身份是什么,所以它不允许(我的第一个想法是中继 SNS 海报令牌,但似乎并非如此)
- 我找不到任何方法将 HTTPS 端点与任何身份相关联,有什么办法吗?
- 有很多关于将 SNS 传递到 SQS 或将网关传递到 SNS 的信息,但找不到任何关于实现我尝试做的事情的信息。
- 有什么方法可以调试AWS_IAM身份验证问题吗?文档我已经看到 "check priviliges" 的建议,这是我已经做了很多小时但我没有更多的想法。
很高兴听到你的任何想法,谢谢。
为什么不让 Lambda 函数直接订阅 SNS 主题(不通过 API 网关)?
这应该很简单:https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html
这是完整的 link,它将帮助您解决身份验证问题。 https://aws.amazon.com/premiumsupport/knowledge-center/iam-authentication-api-gateway/
如果这是一个 "Check privileges" 问题,那么您的 IAM 用户没有足够的资源访问权限来进行任何更改。
正如您在文档中看到的那样,SNS 只能做 Basic/Digest Auth http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html
文档中有一节关于验证消息的有效性,但这是您必须自己编写或从后端的 SNS SDK 之一提取的代码。不幸的是,确实没有任何方法可以让 SNS 使用 AWS SigV4 对请求进行签名。
- 我创建了 SNS 主题
- 我已经创建了 API 调用 Lambda 函数的网关端点
- 我创建了指向 API 网关端点的主题 HTTPS 订阅
问题:当 AUTH=none 时一切正常,但是当我启用 AUTH=AWS_IAM 时,订阅和消息都没有传送到我的 lambda。它们也不会出现在 Lambda OR Gateway cloudwatch 日志中,因为身份验证错误通常是这种情况。
问题:
- HTTPS 端点传递给 AWS_IAM 的身份是什么,所以它不允许(我的第一个想法是中继 SNS 海报令牌,但似乎并非如此)
- 我找不到任何方法将 HTTPS 端点与任何身份相关联,有什么办法吗?
- 有很多关于将 SNS 传递到 SQS 或将网关传递到 SNS 的信息,但找不到任何关于实现我尝试做的事情的信息。
- 有什么方法可以调试AWS_IAM身份验证问题吗?文档我已经看到 "check priviliges" 的建议,这是我已经做了很多小时但我没有更多的想法。
很高兴听到你的任何想法,谢谢。
为什么不让 Lambda 函数直接订阅 SNS 主题(不通过 API 网关)?
这应该很简单:https://docs.aws.amazon.com/sns/latest/dg/sns-lambda.html
这是完整的 link,它将帮助您解决身份验证问题。 https://aws.amazon.com/premiumsupport/knowledge-center/iam-authentication-api-gateway/
如果这是一个 "Check privileges" 问题,那么您的 IAM 用户没有足够的资源访问权限来进行任何更改。
正如您在文档中看到的那样,SNS 只能做 Basic/Digest Auth http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html
文档中有一节关于验证消息的有效性,但这是您必须自己编写或从后端的 SNS SDK 之一提取的代码。不幸的是,确实没有任何方法可以让 SNS 使用 AWS SigV4 对请求进行签名。