我想使用通过API网关发出的来电者身份发布到SNS或从Lambda向SQS发送消息。
在我们的例子中,我们通过API网关接收消息和队列数组。 Lambda获取消息并开始将其发送到消息本身中提到的不同队列。调用者可以访问或不访问请求中指定的实际队列。我们如何确保每个调用者只能发送自己的队列?
来电者可能会发送他们无权访问的队列名称,我想使用lambda中的来电者身份发送消息。
答案 0 :(得分:1)
无法在Lambda集成中使用调用者凭据。您的lambda将始终使用分配给Lambda函数的角色的凭据。您可以在API网关转换中使用$ context.identity为调用者提供Lambda函数,然后在Lambda中做出决定,无论调用者是否具有访问权限。
您也可以设置API网关,以便在启用了呼叫者凭据的情况下通过AWS service proxy直接呼叫SNS / SQS。这将确保调用者具有权限。你确实失去了Lambda功能提供的一些灵活性,但这是你必须考虑的权衡。