限制VPC内的IAM用户

问题描述

我有一个VPC,用户可以在其中访问机密数据和计算资源。出于安全和知识产权的原因,此VPC不应允许用户将信息泄漏到外部世界(互联网)。

我需要向用户公开此VPC上的AWS资源:说允许用户调用lambda函数并访问S3存储桶。

暴露S3存储桶很简单。我创建了一个S3 VPC端点,并在其上附加了仅向特定存储桶授予s3:*的策略。然后,我在防火墙中打开了对该特定终结点的访问权限。如果我总体上授予了s3.amazonaws.com的访问权限,则用户可以在一个外部AWS账户上创建一个个人存储桶,并使用该存储桶将数据从VPC内部泄漏到其存储桶。

现在要公开特定的lambda函数,由于没有针对lambda的VPC端点,因此我无法重用相同的技巧。

如何在不打开对lambda.amazonaws.com整体访问权限的情况下,在VPC中公开特定的lambda函数,从而允许用户潜在地使用自己在外部帐户中的lambda来泄漏来自VPC的信息? / p>

在理想情况下,我希望能够将此VPC中的所有IAM / STS限制为我的帐户用户。这样可以防止任何人使用VPC内部的外部AWS凭证泄漏信息。

---编辑

显然,我在这里试图避免的事情有些混乱,所以让我详细解释一下。

假设您在X公司工作,该公司可以访问非常敏感的数据。此数据不应泄漏到外部世界(互联网)。

X公司使您可以访问VPC中的计算机,该计算机包含一些进行计算所需的机密文件。此VPC中有一个NAT和Internet网关,但是iptables阻止您访问非白名单的地址。

说您的计算需要访问S3存储桶。如果在iptables中自由打开对s3.amazonaws.com的访问,则可能会泄漏数据。恶意员工可以创建一个个人AWS账户,并在X公司的VPC中使用该账户将敏感数据上传到其个人存储桶中。 X公司可以通过在VPC中创建一个S3 VPC终结点来缓解此问题,该策略仅允许允许的S3存储桶,并仅为此VPC终结点打开iptables。

我的问题是:AWS lambda怎么样?

由于没有适用于AWS Lambda的VPC终端节点,因此我需要在iptables中整体允许lambda.amazonaws.com,这基本上意味着该VPC中的任何人都可以自由使用 any 中的lambda任何AWS帐户,并通过将其上载到在个人帐户中创建的个人Lambda泄漏其所需的任何数据。

解决方法

AWS不维护VPC与用户之间的关系。

资源已连接到VPC。权限被授予用户。这两个概念并没有真正相交。

如果您有一些只想提供给某些用户的特别敏感的资源,另一种方法是创建另一个AWS账户,并且仅为该账户创建一小部分用户,或者仅允许一部分用户在该帐户中承担IAM角色。这样,“ VPC /资源”和“用户”之间就有直接的关系。

,

您可以向Lambda添加基于资源的策略,并且仅允许某些特定的EC2实例或用户访问该功能。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...