【问题标题】:Pass IAM to Lambda through API gateway and send message to SQS using passed IAM通过 API 网关将 IAM 传递给 Lambda,并使用传递的 IAM 向 SQS 发送消息
【发布时间】:2023-03-13 21:26:01
【问题描述】:

我想使用来自 API Gateway 的调用者身份从 Lambda 发布到 SNS 或向 SQS 发送消息。

在我们的例子中,我们通过 API Gateway 收到一条消息和一个队列数组。 Lambda 获取消息并开始将其发送到消息本身中提到的不同队列。调用者可能有权访问请求中指定的实际队列,也可能无权访问。我们如何确保每个调用者只能发送自己的队列?

调用者可能会发送他们无权访问的队列名称,我想使用 lambda 中的调用者身份发送消息。

【问题讨论】:

    标签: node.js amazon-web-services lambda aws-api-gateway


    【解决方案1】:

    无法在您的 Lambda 集成中使用调用方凭证。您的 lambda 将始终使用分配给您的 Lambda 函数的角色的凭证。您可以在 API Gateway 转换中使用 $context.identity 向您的 Lambda 函数提供调用方,然后在您的 Lambda 中决定调用方是否具有访问权限。

    您也可以将 API 网关设置为通过 AWS service proxy 直接调用 SNS/SQS,并启用调用者凭据。这将确保调用者具有权限。您确实会失去 Lambda 函数提供的一些灵活性,但这是您必须考虑的权衡。

    【讨论】:

      猜你喜欢
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 2021-03-16
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 2016-09-21
      相关资源
      最近更新 更多