我在使用 AWS lambda 时遇到了与安全相关的问题,不确定解决此问题的正确方法是什么。
假设一个 EC2 实例 A 访问另一个 EC2 实例 B 上的数据库。如果我想将实例 B 上的数据库的可访问性限制为仅实例 A,我将修改安全组并添加自定义 TCP 规则以仅允许访问实例 A 的公有 IP。因此,通过这种方式,AWS将处理所有事情,并且无法从任何其他IP地址访问数据库服务器。
现在让我们用 lambda 函数替换实例 A。由于它不再是实例,因此没有明确的 IP 地址。那么,如何限制对 lambda 函数的访问并阻止任何其他流量?
让 Lambda 作业确定其 IP,并动态更新实例 B 安全组,然后在完成后重置安全组。
在支持 Lambda 在 VPC 中运行之前,这是唯一的选择。 今年晚些时候已宣布对此提供支持。以下引用来自上面的引用链接。
许多 AWS 客户在 Amazon Virtual Private 中托管微服务 云并希望能够从他们的 Lambda 访问它们 功能。也许他们使用查找数据运行MongoDB集群,或者 想要将 Amazon ElastiCache 用作 Lambda 的有状态存储 函数,但不想将这些资源暴露给互联网。
您很快就可以通过设置 目标 VPC 中的一个或多个安全组,将它们配置为 接受来自 Lambda 的入站流量,并将其附加到目标 VPC 子网。然后,您需要指定 VPC、子网和 创建 Lambda 函数时的安全组(您还可以 将它们添加到现有函数中(。您还需要提供您的 函数权限(通过其 IAM 角色(访问几个 EC2 与弹性网络相关的函数。
此功能将于今年晚些时候推出。我会有更多信息 (和演练(当我们启动它时。
下面的链接将为您解释lambda权限模型。
http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html