限制特定EC2 / RDS实例的Amazon AWS访问

时间:2017-07-06 19:41:31

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

我有一个Amazon EC2实例和一个我希望保密的相应RDS实例。我想保留它,以便只有我自己和系统管理员才能访问这些实例。我不想提供对其他开发者的访问权限。

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

有没有办法以允许我将当前实例与新开发人员保密的方式配置组/角色/策略,但是是否允许他创建自己的EC2和RDS实例?

2 个答案:

答案 0 :(得分:1)

您的问题似乎是混合了几个安全概念,例如“私人'群组/角色/政策'和防火墙'。

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

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

因此,如果某个人拥有登录凭据,安全组允许访问正在使用的协议(RDP或SSH),并且用户可以从Internet访问该实例,则该人员只能登录实例。私人网络。

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

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

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

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

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

在向某人授予IAM权限时,建议您授予最低权限,这意味着您应该只向他们提供所需的权限,不再是。如果您不确定授予它们的权限或如何配置这些权限,那么让您的系统管理员代表他们创建实例是明智之举。这样,您就完全了解已完成的工作,并且您没有可能暴露您的系统。

答案 1 :(得分:0)

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

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