首页 > 解决方案 > 限制 VPC 内的 IAM 用户

问题描述

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

我需要在这个 VPC 上为用户公开 AWS 资源:比如允许用户调用 lambda 函数并访问 S3 存储桶。

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

现在要公开一个特定的 lambda 函数,我不能重用相同的技巧,因为 lambda 没有 VPC 端点。

如何在 VPC 中公开特定的 lambda 函数,而不打开lambda.amazonaws.com整体访问权限,从而允许用户在外国账户中使用自己的 lambda 函数从 VPC 泄漏信息?

在理想情况下,我希望能够将此 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 端点,我需要lambda.amazonaws.com在 iptables 中作为一个整体允许,这基本上意味着该 VPC 中的任何人都可以从任何 AWS 账户自由使用任何lambda,从而通过上传来泄漏他们想要的任何数据。在个人帐户中创建的个人 lambda。

标签: amazon-web-servicesamazon-iamamazon-vpc

解决方案


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

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

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


推荐阅读