

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

# 使用安全组
<a name="workingsecurity-groups"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

## 安全组
<a name="bestpractice-secgroups"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

每个 Amazon EC2 实例都有一个或多个关联的安全组来管理实例的网络流量，就像防火墙一样。安全组有一个或多个*规则*，每个规则指定特定类别允许的流量。规则指定以下内容：
+ 允许的流量类型，如 SSH 或 HTTP
+ 流量的协议，如 TCP 或 UDP
+ 流量可能源自的 IP 地址范围
+ 流量允许的端口范围

安全组有两种类型的规则：
+ 入站规则管理入站网络流量。

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

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

有关安全组的更多信息，请参阅 [Amazon EC2 安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)。

首次在某个区域中创建堆栈时， OpsWorks Stacks 会使用一组适当的规则为每个层创建一个内置安全组。所有组均拥有默认出站规则，这些规则允许所有出站流量。一般情况下，入站规则允许以下流量：
+ 来自相应 OpsWorks 堆栈层的入站 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 登录](workinginstances-rdp.md)。

要查看每个组的详细信息，请前往 [Amazon EC2 控制台](https://console.aws.amazon.com/ec2/)，在导航窗格中选择**安全组**，然后选择相应层的安全组。例如，**AWS OpsWorks--Default-Server** 是所有堆栈的默认内置安全组，而 A **WS OpsWorks-WebApp** 是 Chef 12 示例堆栈的默认内置安全组。

**注意**  
如果您不小心删除了 OpsWorks Stacks 安全组，则重新创建该安全组的首选方法是让 OpsWorks Stacks 为您执行任务。只需在同一 AWS 区域和 VPC（如果有）中创建一个新堆栈， OpsWorks Stacks 就会自动重新创建所有内置安全组，包括您删除的安全组。如果您不再需要该堆栈，则随后您可以删除它；安全组将保留。如果您要手动重新创建安全组，则它必须是原始安全组的精确副本，包括组名称的大写形式。  
此外，如果出现以下任一情况， OpsWorks Stacks 将尝试重新创建所有内置安全组：  
您可以在 Stacks 控制台中对堆栈的设置页面进行 OpsWorks 任何更改。
您启动了其中一个堆栈实例。
您创建了新堆栈。

您可以使用以下任一方法来指定安全组。创建堆栈时，您可以**使用 “使用 OpsWorks 安全组**” 设置来指定您的首选项。
+ **是**（默认设置）— OpsWorks Stacks 会自动将相应的内置安全组与每个层关联起来。

  通过使用您的首选设置添加自定义安全组，您可以调整层的内置安全组。但是，当 Amazon EC2 评估多个安全组时，它会使用限制性最低的规则，因此您不能使用这种方法来指定比内置组更严格的规则。
+ **否** — OpsWorks Stacks 不会将内置安全组与层关联。

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

**重要**  
如果您使用内置安全组，则无法通过手动修改该组的设置来创建更严格的规则。每次创建堆栈时，Stac OpsWorks ks 都会覆盖内置安全组的配置，因此您所做的任何更改都将在下次创建堆栈时丢失。如果某个层需要比内置安全组更严格的安全组设置，请将 “**使用 OpsWorks安全组**” 设置为 “**否**”，使用您的首选设置创建自定义安全组，并在创建时将其分配给图层。