

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

# Application Load Balancer 的安全组
<a name="load-balancer-update-security-groups"></a>

应用程序负载均衡器的安全组控制允许到达和离开负载均衡器的流量。您必须确保负载均衡器可同时在侦听器端口和运行状况检查端口上与已注册目标进行通信。当您将侦听器添加到负载均衡器或更新负载均衡器所使用的目标组的运行状况检查端口来路由请求时，您必须验证与负载均衡器关联的安全组是否允许新端口上的双向流量。如果它们不允许，您可以编辑当前关联的安全组的规则或将其他安全组与负载均衡器关联。您可以选择允许的端口和协议。例如，您可以打开负载均衡器的 Internet 控制消息协议 (ICMP) 连接，以响应 Ping 请求 (但是，Ping 请求不会转发至任何实例)。

**注意事项**
+ 为确保您的目标仅接收来自负载均衡器的流量，请限制与目标关联的安全组仅接受来自负载均衡器的流量。这可以通过在目标安全组的入口规则中将负载均衡器的安全组设置为源来实现。
+ 如果您的应用程序负载均衡器是某个网络负载均衡器的目标，则该应用程序负载均衡器的安全组会使用连接跟踪来跟踪有关来自该网络负载均衡器的流量的信息。无论为 Application Load Balancer 设置的安全组规则如何，都会执行此跟踪 有关更多信息，请参阅《Amazon EC2 用户指南》**中的[安全组连接跟踪](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)。
+ 我们建议您允许入站 ICMP 流量以支持路径 MTU 发现。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[路径 MTU 发现](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery)。

## 推荐的规则
<a name="security-group-recommended-rules"></a>

对于将实例作为目标的面向互联网的负载均衡器，建议使用以下规则。


| 
| 
| **Inbound** | 
| --- |
|  Source  |  Port Range  |  Comment  | 
|  0.0.0.0/0  |  *listener*  |  在负载均衡器侦听器端口上允许所有入站流量  | 
|   **Outbound**   | 
| --- |
|  Destination  |  Port Range  |  Comment  | 
|  *instance security group*  |  *instance listener*  |  在实例侦听器端口上允许流向实例的出站流量  | 
|  *instance security group*  |  *health check*  |  在运行状况检查端口上允许流向实例的出站流量  | 

对于将实例作为目标的内部负载均衡器，建议使用以下规则。


| 
| 
| **Inbound** | 
| --- |
|  Source  |  Port Range  |  Comment  | 
|  *VPC CIDR*  |  *listener*  |  在负载均衡器侦听器端口上允许来自 VPC CIDR 的入站流量  | 
|   **Outbound**   | 
| --- |
|  Destination  |  Port Range  |  Comment  | 
|  *instance security group*  |  *instance listener*  |  在实例侦听器端口上允许流向实例的出站流量  | 
|  *instance security group*  |  *health check*  |  在运行状况检查端口上允许流向实例的出站流量  | 

如果将实例作为目标的应用程序负载均衡器本身是某个网络负载均衡器的目标，建议使用以下规则。


| 
| 
| **Inbound** | 
| --- |
|  Source  |  Port Range  |  Comment  | 
|  *client IP addresses/CIDR*  |  *`alb `listener*  |  在负载均衡器侦听器端口上允许入站客户端流量  | 
|  *VPC CIDR*  |  *`alb `listener*  |  允许入站客户端流量通过 AWS PrivateLink 负载均衡器侦听器端口  | 
|  *VPC CIDR*  |  *`alb `listener*  |  允许来自 Network Load Balancer 的入栈运行状况流量  | 
|   **Outbound**   | 
| --- |
|  Destination  |  Port Range  |  Comment  | 
|  *instance security group*  |  *instance listener*  |  在实例侦听器端口上允许流向实例的出站流量  | 
|  *instance security group*  |  *health check*  |  在运行状况检查端口上允许流向实例的出站流量  | 

## 更新关联的安全组
<a name="update-group"></a>

您可以随时更新与负载均衡器关联的安全组。

------
#### [ Console ]

**更新安全组**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择负载均衡器。

1. 在**安全性**选项卡上，选择**编辑**。

1. 要将一个安全组与负载均衡器关联，请选择此安全组。要删除安全组关联，请选择安全组的 **X** 图标。

1. 选择**保存更改**。

------
#### [ AWS CLI ]

**更新安全组**  
使用 [set-security-groups](https://docs.aws.amazon.com/cli/latest/reference/elbv2/set-security-groups.html) 命令。

```
aws elbv2 set-security-groups \
    --load-balancer-arn load-balancer-arn \
    --security-groups sg-01dd3383691d02f42 sg-00f4e409629f1a42d
```

------
#### [ CloudFormation ]

**更新安全组**  
更新[AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)资源。

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
        - !Ref myNewSecurityGroup
```

------