

# 评测 VPC BPA 的影响并监控 VPC BPA
<a name="security-vpc-bpa-assess-impact-main"></a>

本节包含有关如何在启用 VPC BPA 之前评测其影响及如何在启用 VPC BPA 之后监控流量是否被阻止的信息。

**Topics**
+ [使用网络访问分析器评估 VPC BPA 的影响](#security-vpc-bpa-assess-impact)
+ [使用流日志监控 VPC BPA 影响](#security-vpc-bpa-fl)
+ [使用 CloudTrail 追踪排除项删除](#security-vpc-bpa-cloudtrail)
+ [使用 Reachability Analyzer 验证连接是否被阻止](#security-vpc-bpa-verify-RA)

## 使用网络访问分析器评估 VPC BPA 的影响
<a name="security-vpc-bpa-assess-impact"></a>

在本节中，您将使用网络访问分析器在启用 VPC BPA 和阻止访问*之前*查看账户中使用互联网网关的资源。使用此分析可了解在您的账户中启用 VPC BPA 和阻止流量所产生的影响。

**注意**  
网络访问分析器不支持 IPv6；因此您将无法使用它来查看 VPC BPA 对仅出口互联网网关出站 IPv6 流量的潜在影响。
您需要为使用网络访问分析器执行的分析付费。有关更多信息，请参阅《网络访问分析器指南》**中的 [Pricing](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-network-access-analyzer.html#pricing)。
有关网络访问分析器区域可用性的信息，请参阅《Network Access Analyzer Guide》**中的 [Limitations](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/how-network-access-analyzer-works.html#analyzer-limitations)。

------
#### [ AWS 管理控制台 ]

1. 打开位于 [https://console.aws.amazon.com/networkinsights/](https://console.aws.amazon.com/networkinsights/) 的 AWS 网络见解控制台。

1. 选择**网络访问分析器**。

1. 选择**创建网络访问范围**。

1. 选择**评估 VPC 阻止公开访问的影响**，然后选择**下一步**。

1. 该模板已配置为分析您账户中进出互联网网关的流量。您可以在**来源**和**目标**下查看此项。

1. 选择**下一步**。

1. 选择**创建网络访问范围**。

1. 选择您刚创建的范围，然后选择**分析**。

1. 等待分析完成。

1. 查看分析的调查发现。**调查发现**下的每一行都显示数据包在网络中进出您账户中的互联网网关可以采用的网络路径。在这种情况下，如果您启用 VPC BPA，并且这些调查发现中显示的 VPC 和/或子网均未配置为 VPC BPA 排除项，则流向这些 VPC 和子网的流量将受到限制。

1. 分析每项调查发现，了解 VPC BPA 对 VPC 中资源的影响。

影响分析已完成。

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

1. 创建网络访问范围：

   ```
   aws ec2 create-network-insights-access-scope --region us-east-2 --match-paths "Source={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" "Destination={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}"
   ```

1. 开始范围分析：

   ```
   aws ec2 start-network-insights-access-scope-analysis  --region us-east-2 --network-insights-access-scope-id nis-id
   ```

1. 获取分析的结果：

   ```
   aws ec2 get-network-insights-access-scope-analysis-findings  --region us-east-2 --network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --max-items 1
   ```

   结果显示进出您账户所有 VPC 中互联网网关的流量。结果被归类为“调查发现”。"FindingId": "AnalysisFinding-1" 表示这是分析中的第一个调查发现。请注意，有多个调查发现，每个调查发现都表明启用 VPC BPA 将影响流量。第一个调查发现表明流量从互联网网关（"SequenceNumber": 1）开始，依次传递到 NACL（"SequenceNumber": 2）、安全组（"SequenceNumber": 3），然后在实例（"SequenceNumber": 4）处结束。

1. 分析调查发现以了解 VPC BPA 对 VPC 中资源的影响。

影响分析已完成。

------

## 使用流日志监控 VPC BPA 影响
<a name="security-vpc-bpa-fl"></a>

利用 VPC 流日志这项功能，您可以捕获有关传入和传出您的 VPC 中弹性网络接口的 IP 流量的信息。您可以使用此功能监控被 VPC BPA 阻止的流量到达您的实例网络接口。

使用[使用流日志](working-with-flow-logs.md)中的步骤为您的 VPC 创建流日志。

创建流日志时，请确保使用包含字段 `reject-reason` 的自定义格式。

查看流日志时，如果发往 ENI 的流量因 VPC BPA 而被拒绝，您将在流日志条目中看到 `BPA` 的 `reject-reason`。

除了 VPC 流日志的标准[限制](flow-logs-limitations.md)外，请注意以下 VPC BPA 特定的限制：
+ VPC BPA 的流日志不包括[跳过的记录](flow-logs-records-examples.md#flow-log-example-no-data)。
+ 即使您在流日志中包含 `bytes` 字段，VPC BPA 的流日志也不会包含 [`bytes`](flow-log-records.md#flow-logs-fields)。

## 使用 CloudTrail 追踪排除项删除
<a name="security-vpc-bpa-cloudtrail"></a>

本节向您介绍如何使用 AWS CloudTrail 监控和追踪 VPC BPA 排除项的删除。

------
#### [ AWS 管理控制台 ]

通过在位于 [https://console.aws.amazon.com/cloudtrailv2/](https://console.aws.amazon.com/cloudtrailv2/) 的 AWS CloudTrail 控制台中查找**资源类型** > `AWS::EC2::VPCBlockPublicAccessExclusion`，您可以在 **CloudTrail 事件历史记录**中查看任何已删除的排除项。

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

您可以使用 `lookup-events` 命令查看与删除排除项有关的事件：

```
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion
```

------

## 使用 Reachability Analyzer 验证连接是否被阻止
<a name="security-vpc-bpa-verify-RA"></a>

[VPC Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 可用于评估根据您的网络配置（包括 VPC BPA 设置）是否可以访问某些网络路径。

有关 Reachability Analyzer 区域可用性的信息，请参阅《Reachability Analyzer Guide》**中的 [Considerations](https://docs.aws.amazon.com/vpc/latest/reachability/how-reachability-analyzer-works.html#considerations)。

------
#### [ AWS 管理控制台 ]

1. 打开位于 [https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer](https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer) 的 AWS 网络见解控制台。

1. 单击**创建和分析路径**。

1. 对于**源类型**，选择**互联网网关**，然后从**源下拉列表**中选择要阻止流量的互联网网关。

1. 对于**目标类型**，选择**实例**，然后从**目标**下拉列表中选择要阻止流量的实例。

1. 单击**创建和分析路径**。

1. 等待分析完成。这可能需要几分钟时间。

1. 完成后，您应该会看到**可访问性状态**为**无法访问**，并且**路径详细信息**显示 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED ` 是导致此可访问性问题的原因。

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

1. 使用要阻止流量传入的互联网网关 ID（源）和要阻止流量传出的实例 ID（目标）创建网络路径：

   ```
   aws ec2 --region us-east-2 create-network-insights-path --source igw-id --destination instance-id --protocol TCP
   ```

1. 开始对网络路径进行分析：

   ```
   aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
   ```

1. 检索分析的结果：

   ```
   aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
   ```

1. 请确认 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` 是无法访问的 `ExplanationCode`。

------