使用安全组 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用安全组

安全组

每个 Amazon EC2 实例都有一个或多个关联的安全组,用于管理实例的网络流量,这与防火墙的功能类似。安全组有一个或多个规则,每个规则指定特定类别允许的流量。规则指定以下内容:

  • 允许的流量类型,如 SSH 或 HTTP

  • 流量的协议,如 TCP 或 UDP

  • 流量可能源自的 IP 地址范围

  • 流量允许的端口范围

安全组有两种类型的规则:

  • 入站规则管理入站网络流量。

    例如,应用程序服务器实例通常有一个允许来自任何 IP 地址的入站 HTTP 流量至端口 80 的入站规则,以及另一个允许来自指定 IP 地址组的入站 SSH 流量至端口 22 的入站规则。

  • 出站规则管理出站网络流量。

    常见做法是使用默认设置,这将允许所有出站流量。

有关安全组的更多信息,请参阅 Amazon EC2 安全组

当您首次在区域中创建堆栈时,AWS OpsWorks Stacks 会根据相应的规则为每层创建一个内置安全组。所有组均拥有默认出站规则,这些规则允许所有出站流量。一般情况下,入站规则允许以下流量:

  • 来自相应 AWS OpsWorks Stacks 层的入站 TCP、UDP 和 ICMP 流量

  • 端口 22 (SSH 登录) 上的入站 TCP 流量

    警告

    默认安全组配置打开 SSH (端口 22) 以连接到任何网络位置 (0.0.0.0/0)。 这样,所有 IP 地址均可使用 SSH 访问您的实例。对于生产环境,您必须使用仅允许来自特定 IP 地址或地址范围的 SSH 访问的配置。您可以在创建后立即更新默认安全组,或使用自定义安全组。

  • 对于 Web 服务器层,到端口 80 (HTTP) 和 443 (HTTPS) 的所有入站 TCP 和 UDP 流量

注意

内置的 AWS-OpsWorks-RDP-Server 安全组被分配到所有 Windows 实例,以允许 RDP 访问。但默认情况下,它不具有任何规则。如果您运行的是 Windows 堆栈并希望使用 RDP 访问实例,则必须添加一条允许 RDP 访问的入站规则。有关更多信息,请参阅使用 RDP 登录

要查看每个组的详细信息,请转到 Amazon EC2 控制台,在导航窗格中选择 Security Groups (安全组),然后选择相应层的安全组。例如,AWS-OpsWorks-Default-Server 是所有堆栈的默认内置安全组,AWS-OpsWorks-WebApp 是 Chef 12 示例堆栈的默认内置安全组。

注意

如果您意外删除 AWS OpsWorks Stacks 安全组,重新创建该安全组的首选方法是让 AWS OpsWorks Stacks 为您执行任务。直接在同一个 AWS 区域(以及 VPC,如果有)中创建新的堆栈,AWS OpsWorks Stacks 将自动重新创建所有内置安全组,包括您删除的那个安全组。然后,您可以删除堆栈 (如果您不会再使用该堆栈);安全组将保留。如果您要手动重新创建安全组,则它必须是原始安全组的精确副本,包括组名称的大写形式。

此外,如果出现以下任一情况,AWS OpsWorks Stacks 将尝试重新创建所有内置安全组:

  • 您在 AWS OpsWorks Stacks 控制台对堆栈设置页面进行了任何更改。

  • 您启动了其中一个堆栈实例。

  • 您创建了新堆栈。

您可以使用以下任一方法来指定安全组。在创建堆栈时,您可以使用 Use OpsWorks security groups 设置指定您的首选项。

  • Yes (是)(默认设置)– AWS OpsWorks Stacks 自动将适当的内置安全组与每个层关联。

    通过使用您的首选设置添加自定义安全组,您可以调整层的内置安全组。但是,当 Amazon EC2 评估多个安全组时,系统会使用严格程度最低的规则,因此您不能使用这种方法来指定比内置组更严格的规则。

  • No (否) – AWS OpsWorks Stacks 不会将内置安全组与层关联。

    您必须创建相应的安全组,并至少将一个安全组与您创建的每个层关联。使用这种方法可指定比内置组更严格的规则。请注意,如果您愿意,也可以手动关联内置安全组和层;只有需要自定义设置的层才必须要自定义安全组。

重要

如果您使用内置安全组,则无法通过手动修改该组的设置来创建更严格的规则。每次创建堆栈时,AWS OpsWorks Stacks 均会覆盖内置安全组的配置,因此,您所做的任何更改都将在您下次创建堆栈时丢失。如果层需要比内置安全组更严格的安全组设置,请将 Use OpsWorks security groups 设置为 No,使用首选设置创建自定义安全组,并在创建时将它们分配给层。