

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

# 更新网络负载均衡器的安全组
<a name="load-balancer-security-groups"></a>

您可以将安全组与网络负载均衡器关联，以控制允许到达和离开网络负载均衡器的流量。您可以指定允许入站流量的端口、协议和来源，以及允许出站流量的端口、协议和目的地。如果您没有为网络负载均衡器分配安全组，则所有客户端流量都可以到达网络负载均衡器侦听器，并且所有流量都可以离开网络负载均衡器。

您可以向与目标关联的安全组添加规则，该规则引用与网络负载均衡器关联的安全组。这允许客户端通过网络负载均衡器向目标发送流量，但不会将流量直接发送到您的目标。在与目标关联的安全组中引用与网络负载均衡器关联的安全组，可确保即使对网络负载均衡器启用了[客户端 IP 保留](edit-target-group-attributes.md#client-ip-preservation)，目标也能接受来自网络负载均衡器的流量。

您无需为入站安全组规则阻止的流量付费。

**Topics**
+ [注意事项](#security-group-considerations)
+ [示例：筛选客户端流量](#filter-client-traffic-recommended-rules)
+ [示例：仅接受来自网络负载均衡器的流量](#load-balancer-traffic-only-recommended-rules)
+ [更新关联的安全组](#update-security-group)
+ [更新安全设置](#update-security-settings)
+ [监控网络负载均衡器安全组](#monitor-load-balancer-security-groups)

## 注意事项
<a name="security-group-considerations"></a>
+ 在创建网络负载均衡器时，您可以将安全组与网络负载均衡器相关联。如果您在创建网络负载均衡器时未关联任何安全组，则以后也无法将其与网络负载均衡器关联。我们建议您在创建网络负载均衡器时，将安全组与网络负载均衡器相关联。
+ 创建网络负载均衡器并关联安全组后，您可以随时更改与网络负载均衡器关联的安全组。
+ 运行状况检查受出站规则的约束，但不受入站规则的约束。您必须确保出站规则不会阻止运行状况检查流量。否则，网络负载均衡器会认为目标运行状况不佳。
+ 您可以控制 PrivateLink 流量是否受入站规则的约束。如果您对 PrivateLink 流量启用入站规则，则流量来源是客户端的私有 IP 地址，而不是端点接口。

## 示例：筛选客户端流量
<a name="filter-client-traffic-recommended-rules"></a>

与网络负载均衡器关联的安全组中的以下入站规仅允许来自指定地址范围的流量。如果这是内部网络负载均衡器，则可以指定 VPC CIDR 范围作为来源，以仅允许来自特定 VPC 的流量。如果这是面向互联网的网络负载均衡器，其必须接受来自互联网任何位置的流量，则可以指定 0.0.0.0/0 作为来源。


**入站**  

| 协议 | 来源 | 端口范围 | Comment | 
| --- | --- | --- | --- | 
| protocol | client IP address range | listener port | 在侦听器端口上允许来自源 CIDR 的入站流量 | 
| ICMP | 0.0.0.0/0 | 全部 | 允许入站 ICMP 流量，以支持 MTU 或路径 MTU 发现 † | 

† 有关更多信息，请参阅《*亚马逊 EC2 用户指南》*中的 [Path MTU 发现](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery)。


**出站**  

| 协议 | 目标位置 | 端口范围 | Comment | 
| --- | --- | --- | --- | 
| 全部 | Anywhere | 全部 | 允许所有出站流量 | 

## 示例：仅接受来自网络负载均衡器的流量
<a name="load-balancer-traffic-only-recommended-rules"></a>

假设您的网络负载均衡器有安全组 sg-111112222233333。在与目标实例关联的安全组中使用以下规则，确保它们仅接受来自网络负载均衡器的流量。您必须确保目标在目标端口和运行状况检查端口上都接受来自网络负载均衡器的流量。有关更多信息，请参阅 [目标安全组](target-group-register-targets.md#target-security-groups)。


**入站**  

| 协议 | 来源 | 端口范围 | Comment | 
| --- | --- | --- | --- | 
| protocol | sg-111112222233333 | target port | 在目标端口上允许来自网络负载均衡器的入站流量 | 
| protocol | sg-111112222233333 | health check | 在运行状况检查端口上允许来自网络负载均衡器的入站流量 | 


**出站**  

| 协议 | 目标位置 | 端口范围 | Comment | 
| --- | --- | --- | --- | 
| 全部 | Anywhere | 任何 | 允许所有出站流量 | 

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

如果您在创建网络负载均衡器时，将至少一个安全组与该网络负载均衡器关联，则可以随时更新该网络负载均衡器的安全组。

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

**要更新安全组**

1. 打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择网络负载均衡器。

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

1. 要将一个安全组与网络负载均衡器关联，请选择此安全组。要从网络负载均衡器中移除一个安全组，请清除该安全组。

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-1234567890abcdef0 sg-0abcdef0123456789
```

------
#### [ 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-nlb
      Type: network
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
        - !Ref myNewSecurityGroup
```

------

## 更新安全设置
<a name="update-security-settings"></a>

默认情况下，我们将入站安全组规则应用于发送到网络负载均衡器的所有流量。但是，您可能不想将这些规则应用于通过网络负载均衡器发送的流量 AWS PrivateLink，这些流量可能来自重叠的 IP 地址。在这种情况下，您可以配置网络负载均衡器，这样我们就不会对通过网络负载均衡器发送的流量应用入站规则 AWS PrivateLink。

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

**要更新安全设置**

1. 打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格上的 **Load Balancing**（负载均衡）下，选择 **Load Balancers**（负载均衡器）。

1. 选择网络负载均衡器。

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

1. 在 “**安全” 设置**下，清除 “**对 PrivateLink 流量强制执行入站规则”**。

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 \
    --enforce-security-group-inbound-rules-on-private-link-traffic off
```

------
#### [ 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-nlb
      Type: network
      Scheme: internal
      EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic: off
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
```

------

## 监控网络负载均衡器安全组
<a name="monitor-load-balancer-security-groups"></a>

使用`SecurityGroupBlockedFlowCount_Inbound`和`SecurityGroupBlockedFlowCount_Outbound` CloudWatch 指标来监控 Network Load Balancer 安全组阻止的流量数量。被阻止的流量未反映在其他指标中。有关更多信息，请参阅 [CloudWatch 您的 Network Load Balancer 的指标](load-balancer-cloudwatch-metrics.md)。

使用 VPC 流日志来监控网络负载均衡器安全组接受或拒绝的流量。有关更多信息，请参阅 *Amazon VPC 用户指南*中的 [VPC 流日志](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。