首次设置 AWS EB 时创建的默认安全组是什么?

What are the default security groups created when I set up AWS EB for the first time?

我对几个似乎已自动添加到我的 AWS 安全组列表中的组扮演的角色感到困惑,在我收集的默认配置中连接,并想知道它们是如何工作的(以及他们可以安全地改变)。具体神秘的有3个:

前两个似乎没有连接到任何其他安全组,而后者是 每个 安全组中入站 HTTP 规则的来源我的 Elastic Beanstalk 环境。

这三组是做什么的?我可以改变它们吗?或者更改与它们的连接?

例如,后一条规则似乎具有允许从任何地方到我所有 EB 环境的 HTTP 流量的效果。我可以更改此规则以限制 IP(到所有环境)吗?我可以 "un hook" 将规则作为来自给定 EB 环境的来源(例如,将其替换为具有一系列 IP 的来源)吗?

看来您已经了解什么是安全组:应用于 EC2 实例的状态防火墙。

当您从 Web 控制台手动启动 EC2 VM 时,AWS 将为您提供重新使用现有安全组或创建新安全组的选项。当您创建一个新的时,默认规则是 SSH(端口 22)和默认安全组名称“launch-wizard-#”。

遗憾的是,由于一个安全组可被多个 EC2 实例使用,因此当您删除 VM 时它们不会被清除。因此,如果您删除了用于创建 launch-wizard-1 的 VM,它不会删除安全组。

进入 "default security group for VPC"。当您创建 VPC 时,会同时创建一个默认安全组。当 EC2 实例在 VPC 子网中启动时,如果没有指定另一个安全组,它们将分配给它们默认的安全组。 (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#DefaultSecurityGroup).

那么允许它与自己对话的规则意味着什么?默认情况下,安全组拒绝所有入站流量。此 'talk to itself' 入站规则表示如果两个 VM 都分配了此规则,则将允许它们在所有端口上相互通信。你应该使用这个默认组吗?否。创建唯一的安全组,执行最小权限规则(只打开你需要的端口到需要它们的实例)。

不幸的是,我没有太多的弹性 beantalk 经验,所以这就是我的回答转向假设的地方。在我玩 beanstalk 的小时候,我记得它在您的帐户中创建了辅助资源。您的弹性负载均衡器 (ELB) 似乎就是这种情况。如描述所示,当 Elastic Beanstalk 需要启动一个新的负载均衡器时,负载均衡器将使用这个默认组,除非您指定另一个。我相信此 link 记录了您将如何执行此操作 (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.elb.html)。

在所有情况下,我建议不要使用默认安全组,而建议使用针对该实例的安全需求所特有的单独防火墙规则。

你能更改或删除这些吗?

  • launch-wizard-1: 是的,您可以删除或修改该组。既然你说他没用,那就去核爆他吧。
  • default:VPC 对它创建的一些默认资源很挑剔。我在我的帐户上测试过它,我无法删除它。您当然可以修改它,但我建议您不要使用它。
  • default_elb:如果我没记错的话,elastic beanstalk使用cloudformation来创建额外的资源,比如ELB安全组。您可以修改此安全组,但它会导致 cloudformation 定义与实际情况不一致。对于您的具体问题,您可以更改允许的 IP 范围,但是如果您在私有 IP 上编写规则,那么如果环境部署到单独的 VPC,您将无法跨环境。