通过API网关将IAM传递给Lambda,并使用传递的IAM将消息发送到SQS

时间:2016-03-20 02:11:57

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

我想使用通过API网关发出的来电者身份发布到SNS或从Lambda向SQS发送消息。

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

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

1 个答案:

答案 0 :(得分:1)

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

您也可以设置API网关,以便在启用了呼叫者凭据的情况下通过AWS service proxy直接呼叫SNS / SQS。这将确保调用者具有权限。你确实失去了Lambda功能提供的一些灵活性,但这是你必须考虑的权衡。