作为管理员,我正在寻找一种允许用户管理特定安全组自己的入站/出站规则,但不允许他们修改其他安全组的入站/出站规则的方法。现在可以使用策略来实现,但是,这种方法的唯一问题是,您必须将每个员工的安全组添加到每个EC2实例。
例如(用于双关语),如果我有20个EC2和50名员工,则需要手动添加50 * 20个安全组。那不切实际。
对于此问题,什么是更易于管理的解决方案?
答案 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模板,该模板用于构建您需要的所有组件:
确保它具有用于用户的IAM角色的参数,该参数将与策略绑定。
接下来,将堆栈注册为带有服务目录的应用程序。使您的IAM用户能够启动该应用程序,并让其提供其IAM角色作为参数。这样就可以为他们提供实例,并具有编辑安全组的能力(假设策略设置正确)
启动配置。 hacky,但可能会起作用
答案 1 :(得分:1)
使用AWS Client VPN。
https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html
在其设备上安装了VPN客户端的用户可以从任何公共网络VPN到vpc,并且可以安全地访问资源。无需维护和更新每个用户的安全组。