【问题标题】:Limit Amazon AWS Access of Specific EC2/RDS Instances限制特定 EC2/RDS 实例的 Amazon AWS 访问
【发布时间】:2017-12-10 23:20:10
【问题描述】:

我有一个 Amazon EC2 实例和一个相应的 RDS 实例,我想保持私有。我想保留它,以便只有我自己和系统管理员可以访问这些实例。我不想向其他开发人员提供访问权限。

但是,我的一位开发人员现在正在开发一个项目,他需要创建/配置他自己的 EC2/RDS 实例。我可以让我的系统管理员来完成这项工作,但为了方便起见,我宁愿让开发人员来做。

有没有什么方法可以配置组/角色/策略,让我对新开发人员保持私有状态,但允许他创建自己的 EC2 和 RDS 实例?

【问题讨论】:

  • 您的实例将在互联网上可用还是将在 VPN 中使用?您的开发人员实例也有同样的问题:它们将在 Internet 上可用还是将通过 VPN 连接?
  • 实例在互联网上可用,但它们隐藏在防火墙后面,只有特定的 IP 地址可以访问它们。开发者的实例将在互联网上可用,不会被防火墙隐藏。

标签: amazon-web-services amazon-ec2 amazon-rds


【解决方案1】:

好的,关于事情如何运作的最佳解释是在@John Rotestein 回复中。但这里有一些实用的建议(必须被视为对约翰回应的补充):

  1. 您可以创建单独的子网并授予您的权限 开发人员使用 IAM 仅在其中一个子网中运行实例 政策;但是您的开发人员仍然可以访问您的实例和您 必须配置 so/db/application 限制。
  2. 如果您的公司不使用共享网关到 Internet,您可以 定义网络 ACL 以限制对您的专属网络的访问 使用您的 IP 地址。如果您使用共享网关,您将不会 能够使用此解决方案;
  3. 在第二种情况下,限制访问的一种方法是将您的实例 在私有子网中并在您的公共子网中创建堡垒主机 仅供您使用(此解决方案必须配置到您的 RDS 实例)。您可以访问堡垒主机 开发人员,但您可以使用只有您拥有的特定密钥对 使用权。请记住,您的实例和 RDS 不会 可上网;
  4. 但我认为简单的解决方案是创建不同的 VPC,一个用于您的团队,另一个用于开发团队。在 此解决方案您可以限制对所有 VPC 资源的访问 “主”VPC 中的开发人员。当然,这也意味着您的实例没有互联网连接。

【讨论】:

  • 非常感谢!我会对此进行探索,如果我还有其他问题,请告诉您。
【解决方案2】:

您的问题似乎混合了几个安全概念,例如“私有”、“组/角色/策略”和“防火墙”。

Amazon EC2 实例具有多个安全层:

  • 首先,可以登录到 EC2 实例。这由管理,通常通过在实例上创建用户(在 Linux 或 Windows 中)并关联密码或公共/私人。只有拥有登录凭据的人才能访问该实例。
  • 其次,可以到达实例。 安全组控制从哪个 IP 地址范围打开哪些端口。因此,您可以配置一个安全组,使实例只能从您自己的 IP 地址或您自己的私有网络访问。您的实例也可能位于没有互联网连接的私有子网中。这再次限制了对实例的访问。

因此,只有拥有登录凭据、安全组允许访问正在使用的协议(RDP 或 SSH)以及用户可以从 Internet 或专用网络。

同样,Amazon Relational Database Service (RDS) 实例受以下保护:

  • 登录凭据:启动数据库时会创建主用户登录,但可以通过普通的CREATE USER 数据库命令添加其他用户
  • 安全组:与 EC2 实例一样,安全组控制对特定 IP 地址范围开放的端口
  • 网络安全:与 EC2 实例一样,RDS 实例可以放置在无法从 Internet 访问的私有子网中。

请注意,上述控制均不涉及身份和访问管理 (IAM) 用户/组/角色/策略,它们用于授予对 AWS 服务的访问权限,例如启动的能力Amazon EC2 实例或 Amazon RDS 实例。

因此,您拥有现有的 Amazon EC2 和 Amazon RDS 实例这一事实不会影响您选择启动的任何其他实例的安全性。如果用户无法访问您现有的服务,那么启动更多服务不会改变这种情况。

如果您希望授予其他人启动新 EC2/RDS 实例的能力,您可以通过对其 IAM 用户实体应用适当的策略来实现。但是,您可能需要注意您授予他们多少权限,因为您可能还授予他们删除现有实例、更改主密码、创建和恢复快照(从而可能访问您的数据)和更改网络的能力配置(可能会将您的实例暴露在 Internet 上)。

向某人授予 IAM 权限时,建议您授予最低权限,这意味着您应该只授予他们所需的权限,而仅此而已。如果您不确定授予他们多少权限或如何配置这些权限,您最好让系统管理员代表他们创建实例。这样一来,您就可以完全了解所做的事情,并且不会暴露您的系统。

【讨论】:

  • 非常感谢!我会对此进行探索,如果我还有其他问题,请告诉您。
猜你喜欢
  • 2020-07-23
  • 2017-08-16
  • 2014-04-22
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多