我有一系列 AWS 账户,它们都属于一个组织实体。我想阻止我账户中的其他用户通过 HTTP 或 FTP 将数据复制或发送到不属于我组织的账户。所有账户都将在其内部运行 VPC,并且 VPC Peering 可以跨账户连接到其他 VPC。在这种设置下,我如何实现此目标以限制数据泄露?
预先感谢您的帮助。
答案1
设置阻止相关端口的安全组/NACL,并使用 IAM 确保用户无权修改防火墙。最好只将需要服务器访问的端口/主机列入白名单。有时这很困难,例如,如果您需要联系 Windows 更新,则可能需要联系大量主机。您还应该使用服务控制策略将您希望人们访问的 AWS 服务列入白名单,并确保为人们提供完成其工作的最低权限。
但是我认为你会发现想要窃取数据的人总会找到方法。将数据放入 S3、Route53 DNS、通过众多 AWS 服务之一、放入在非标准端口上运行的服务器、通过控制台下载,有很多方法可以窃取数据。你所能做的就是让它变得更加困难,并尽可能设置警报,这样你就能知道什么时候会发生这种情况。
答案2
你可以做这样的事情:
从 VPC 中删除直接外部访问。这意味着没有互联网网关(IGW)并且没有到 0.0.0.0/0 的路由。
VPC 之间的通信在您的帐户中VPC 对等连接(但不能扩展到少数 VPC 之外)或通过中转网关。这将允许您的 VPC 相互通信。
设置带 URL 白名单的代理(例如使用乌贼)并使其成为 VPC 的唯一出口。这样你就会有一些控制实例可以连接的位置。
但这会带来一些复杂情况 - 您必须为实例上运行的每个进程设置代理,例如yum
或apt
、Docker、所有 Amazon 工具(如 Systems Manager Agent)以及实际上访问所有 AWS 服务。
此外,某些 AWS 服务无法通过代理运行(例如 Fargate),因此你必须提供VPC 终端节点对他们来说。其他一些甚至没有端点,但您仍然必须向他们提供直接的外部访问权限 - 例如具有 Cognito 身份验证的 ALB。
删除直接外部访问会带来很多麻烦,但在某种程度上可以实现您的目标。我们的一些客户就是这么做的。问题是,有创造力的人仍然可以找到解决方法,所以问题是这样做是否值得。
希望有帮助:)