【问题标题】:Allow Lambda execution only by another Lambda仅允许另一个 Lambda 执行 Lambda
【发布时间】:2018-07-23 15:18:05
【问题描述】:

我遇到了以下问题: 我编写了一个不应被 API 网关、Kinesis Firehose 转换等调用的 Lambda 函数。

调用此 Lambda 的唯一方法是通过另一个 Lambda 函数。

如何限制此访问权限?

最好的问候

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    这实际上不是“限制访问”的问题,而是首先“不允许”访问的问题。

    默认情况下,所有用户、功能等都没有权限。对于调用 Lambda 函数的用户或服务,必须明确授予它该权限。 所以...不要给予任何许可!

    “但是,”你说,“我将在Resource: * 上向我的所有用户授予lambda:invoke!”

    那么,这不是一个好主意!

    如果是这种情况,最简单的方法可能是让 Lambda 函数检查它是如何被调用的,如果它不是您想要的调用方式则退出。

    或者,您必须更改向您的用户和服务授予 invoke 权限的方式。

    【讨论】:

    • 感谢您的回答。我对该行有一个问题:“如果是这样的话,让 Lambda 函数检查它是如何被调用的,如果它不是你希望它被调用的方式,则退出它可能是最简单的。”我怎么做?上下文对象没有给我关于调用者的信息吗?
    • 似乎没有保证方法可以发现调用实体。见:How to know event souce of lambda function in itself
    • @Johnny90 John 的链接的替代方案是您以某种方式确保函数有效负载包含识别调用者所需的信息,例如您可以使用密钥对函数有效负载进行签名并进行验证。但是,我宁愿采用他最初建议的方式,只授予那些应该能够调用 Lambda 函数的资源的权限。这就是这些权限存在的原因。
    猜你喜欢
    • 2013-02-11
    • 2020-08-07
    • 2020-11-06
    • 1970-01-01
    • 2022-10-14
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多