控制第三方的 EC2 和 RDS 访问

Controlling EC2 and RDS access for third party

我正在设置一个 EC2 实例和一个 Amazon RDS 数据库来托管一个 .NET 网站。我希望我的第三方网站管理员处理它的设置,但是一旦他完成设置并且网站是 运行,我想完全删除他对 EC2 和 RDS 的访问。

我只想让他访问 EC2 中的 RDP 并具有根访问权限,以防他需要安装额外的软件以及在 RDS 的 SQL 数据库中创建和编辑表的能力。他在管理和修改 EC2/RDS 个实例方面没有任何作用。

我试过为组分配 IAM 访问权限,但我无法弄清楚如何在他完成 Web 服务器和 SQL 数据库设置后删除他时自己保留超级用户访问权限。我如何在保持超级用户访问权限的同时给他临时可撤销的访问权限,即使我将他从 IAM 中删除也不会受到影响?

Amazon IAM 不会帮助您完成您想做的事情。

IAM用于限制and/or允许通过AWS管理控制台访问上层管理的资源and/orAWSAPI.

但是,您想要做的是控制对资源内部(EC2 实例和 RDS 实例)的访问。对于这些,您需要使用他们自己的内部安全控制来完成它们:

  1. 对于您的 RDS 实例,创建一个具有足够权限的非管理员用户来完成他们想做的事情。比如你的RDS实例是MySQL,那么给他们INSERT、SELECT、UPDATE、DELETE、CREATE TABLE等权限。不要给他们 create/modify 用户或任何类似管理的能力。最佳做法是尽可能少地授予他们权限,并在他们要求时添加权限(如果您认为可以)。

  2. 对于您的 EC2 实例,不要给它们 root 访问权限。专门为您的网站管理员创建一个非根用户。授予该用户 "just enough" 安装该网站的权限。不允许他们使用 yumapt。相反,如果他们需要,他们应该告诉您,您可以以 root 身份执行。

在这两种情况下,一旦您的网站管理员完成,删除他们的用户并关闭对他们的安全组。

切勿将 root/admin 访问权限授予第三方。原因有很多,但主要的是这些:

  1. 使用 root 访问权限,您的网站管理员可以创建其他用户 and/or 后门,即使在您撤销他们的访问权限后也允许他们访问。不要给他们这样做的机会。
  2. 由于您对这些资源负责,因此您应该了解对它们所做的一切:创建的所有用户、安装的所有软件等。