AWS按用户管理ec2入站/出站规则

时间:2019-12-10 23:04:23

标签: amazon-web-services amazon-ec2 aws-security-group

作为管理员,我正在寻找一种允许用户管理特定安全组自己的入站/出站规则,但不允许他们修改其他安全组的入站/出站规则的方法。现在可以使用策略来实现,但是,这种方法的唯一问题是,您必须将每个员工的安全组添加到每个EC2实例。

例如(用于双关语),如果我有20个EC2和50名员工,则需要手动添加50 * 20个安全组。那不切实际。

对于此问题,什么是更易于管理的解决方案?

2 个答案:

答案 0 :(得分:1)

基于OP反馈进行编辑

好的,如果我正确了解您的情况,

  • 您有N个工程师需要连接到VPC中的后端EC2实例。

  • 您可以根据IP调节往返EC2实例的流量

  • 工程师们四处走动,因此IP地址发生了变化。因此,他们需要能够使用其新IP地址进行更新。

我认为AWS首选响应(他们对DevOps Pro证书的要求,以及对白皮书的要求)是您设置了堡垒主机或Jumpbox。取决于网络连接的工作方式。

无论哪种方式,您都可以将与后端服务的所有连接限制为Bastion主机,并要求工程师首先在此处连接,然后再SSH到其他服务器。这简化了应用程序实例上的安全组。显然,这假定您使用的是SSH,但是我敢肯定,您可以使用RDP做类似的事情。

如果您要继续使用基于IP的规则,我想这会起作用-只需将每个安全组附加到堡垒主机上,然后工程师就可以像这样管理它。

但是,安全性不仅仅限于此。现在,您只回答“授权”问题,而不是身份验证,还需要考虑治理

身份验证

如果仅通过IP设置,则该IP上的任何人都可以连接。 AWS的建议是让每位工程师产生一个SSH密钥对。他们将其公共证书上传到S3并保留其私钥。然后每隔几分钟运行CRON作业,以拉下S3上的公共密钥,并使用该密钥为其输入用户信息。

这样,只有将公钥上传到S3的人才能访问您的堡垒主机,然后进入后端服务器。

治理

您还应该确保跟踪谁在登录以及他们在做什么。由于您现在有了中央连接点,因此可以将用户操作的日志发送到S3和CloudWatch。我认为,如果有人执行了他们不应该执行的操作,您甚至可以触发CloudWatch事件。应该很容易分辨出它们的起源和试图去的地方。

总的来说,我认为您应该考虑删除整个IP过滤策略并获得VPN连接。也许每月花费40〜100美元,但它的安全性更高。如果您有工程师手动设置IP,那只是时间问题,直到有人弄乱了,巨大的CIDR块向世界敞开。另外,请考虑返回工程师时间中的值。必须获取IP并将其设置在AWS中是一项非增值工作


初始帖子

因此,我不太确定我是否了解您要完成的工作。但是我想您想为每个员工提供一个独特的环境,他们可以根据自己的意愿进行更改。您可以为此选择两个选项

CloudFormation-最佳选择,IMO 构建一个主CloudFormation模板,该模板用于构建您需要的所有组件:

  • EC2实例
  • 安全组
  • 政策

确保它具有用于用户的IAM角色的参数,该参数将与策略绑定。

接下来,将堆栈注册为带有服务目录的应用程序。使您的IAM用户能够启动该应用程序,并让其提供其IAM角色作为参数。这样就可以为他们提供实例,并具有编辑安全组的能力(假设策略设置正确)

启动配置。 hacky,但可能会起作用

  1. 为每个员工建立一个安全组,并为每个员工制定一个策略。
  2. 定义自动伸缩组的启动配置。
  3. 然后,使用“启动配置”启动所有EC2实例,并在配置中提供所有安全组。
  4. 根据需要扩展EC2实例的数量。每个安全组将应用于每个EC2实例。

答案 1 :(得分:1)

使用AWS Client VPN。

https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html

在其设备上安装了VPN客户端的用户可以从任何公共网络VPN到vpc,并且可以安全地访问资源。无需维护和更新每个用户的安全组。