【问题标题】:AWS Lambda - invoke restrictionsAWS Lambda - 调用限制
【发布时间】:2022-06-30 19:40:37
【问题描述】:

如何确保只有特定 EC2 实例(或至少特定 VPC 或 AWS 账户内的一个实例)才能调用我在同一账户中的 lambda?

【问题讨论】:

  • 您能否更具体一点,例如授权(您想限制某个资源调用另一个资源?通过策略完成)还是您的意思是如何调用 Lambda 函数来自同一 VPC 中的其他资源的一般情况?
  • 在应用程序代码易受攻击且无法轻易更改的情况下,我想确保 lambda 只能在我的基础设施(AWS 帐户)内调用

标签: amazon-web-services aws-lambda


【解决方案1】:

可以在 IAM 中配置调用 AWS Lambda 函数的能力。

默认情况下,没有人有权执行任何操作,因此您需要将权限授予与实例关联的 IAM 角色

但是,如果您有其他 IAM 用户或 IAM 角色对 Lambda 具有广泛的权限(例如 lambda:*),那么他们也可以调用 Lambda 函数。我不知道您可以赋予 Lambda 函数本身以覆盖这种广泛授予的权限的权限。

我查看了传递给 Lambda 函数的 context,但它似乎无法识别调用该函数的实体。这意味着函数本身也无法检查调用者的身份。

【讨论】:

    【解决方案2】:

    您可以将您的 Lambda 函数放在 Amazon API Gateway 中的私有 API 后面。

    文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html

    使用 Amazon API Gateway,您可以创建私有 REST API,这些 API 只能通过使用接口 VPC 终端节点从 Amazon VPC 中的虚拟私有云访问。这是您在 VPC 中创建的端点网络接口。

    【讨论】:

      【解决方案3】:

      我认为这将是基于资源的策略的一个用例: https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html

      这允许您定义谁可以调用 Lambda 函数。因此,您应该能够使用您的帐户作为委托人来实现您想要的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-09
        • 2018-07-10
        • 1970-01-01
        • 1970-01-01
        • 2017-06-21
        • 2018-01-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多