您是否可以将AWS安全组配置为具有子组或嵌套组?

时间:2017-03-18 07:45:24

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

TLDR

我们在单个安全组中有很长的IP地址列表,很难管理。 AWS使 感觉 就像您可以拥有嵌套组一样,但您不能。我是对的吗?

背景

配置和使用安全组时没有任何问题。这个问题更加微妙,这就是背景。

我们将安全组配置为将访问开发实例/服务列入白名单。由于我们的配置模式是白名单,我们必须始终不断添加新的IP地址,具体取决于团队成员的工作地点。没有静态IP地址的蹩脚ISP。

这不是问题。但想象一下IP地址日益混乱。

问题

有时我们希望删除此白名单(因为糟糕的ISP),并确保IP地址是相关的,最新的,并且仍然应该在白名单上。

我们发现自己不愿意这样做,因为目前有效“清理”白名单的唯一方法就是装箱并重新开始。

AWS似乎没有提供一种简洁的方法来标记安全组规则中的记录,或者允许嵌套安全组。

目前的工作

  1. 拥有大量(可能数百个)单独的安全组,并确保这些安全组始终附加到相关服务。

    Pro:易于标记/识别IP地址(例如Bob的家庭IP),因此Bob可以删除旧IP地址并替换为新IP地址。

    Con:每个安全组必须附加到相关实例,此列表可能会很长。

  2. 保留单独的IP /查找列表,并拥有一个安全组

    Pro:意味着您只需要一个安全组。

    Con:必须保持两个最新的列表,不太实用,否则会出现错误匹配。

  3. 某种自动化。构建定期检查安全组的服务,并将这些IP与一些基本的geo-ip / ISP信息一起存储在DynamoDB中。用作参考。

    Pro:喜欢#2但是自动化。不是100%准确,因为geo-ip查找永远不会。

    Con:必须编写并维护该实用程序,使其感觉应该已经存在。

  4. 有希望的解决方案

    1. 子/嵌套安全组。 AWS配置界面实际上意味着您可以执行此操作 - 但它无法按预期工作。 EG主安全组具有允许来自其他安全组的入站流量的规则 - 这些规则又将IP地址逻辑分组在一起。

      http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html

        

      如果将安全组指定为规则的源,则允许与源安全组关联的实例访问安全组中的实例。 (请注意,这不会将源安全组中的规则添加到此安全组。)

      我发现文档有点矛盾。从实验来看,它不起作用。

    2. 标记每条记录。这显然不存在,并且是AWS的功能请求。

    3. 我错过了什么吗?其他人如何管理大型安全组?

1 个答案:

答案 0 :(得分:6)

你是对的 - 安全组不能嵌套。

如果您将Amazon VPC中的实例列入白名单,则可以使用名称来引用其他安全组。例如,您可能有Web-SGApp-SG。 App-SG可以允许从Web-SG访问。然后,与Web-SG关联的任何实例都可以与App-SG中的任何实例进行通信。

但是,如果您将实例从在AWS外部列入白名单,那么您需要自己维护安全组中的IP地址列表。

最好的方法是自动化:

  • 维护一份主列表'数据库,电子表格等中列入白名单的IP地址
  • 每当对主列表进行更改时自动更新列表

这可以通过您喜欢的编程语言中相当短的程序来完成,调用authorize-security-group-ingress之类的命令。

底线:维护AWS外部的完全标记列表,然后通过自动化使安全组匹配。