

# VPC BPC BPA 基础知识
<a name="security-vpc-bpa-basics"></a>

本节介绍有关 VPC BPA 的重要详细信息，包括哪些服务支持以及如何使用该功能。

**Topics**
+ [区域可用性](#security-vpc-bpa-reg-avail)
+ [AWS 服务影响和支持](#security-vpc-bpa-service-support)
+ [VPC BPA 限制](#security-vpc-bpa-limits)
+ [使用 IAM 策略控制对 VPC BPA 的访问](#security-vpc-bpa-iam-example)
+ [为您的账户启用 VPC BPA 双向模式](#security-vpc-bpa-enable-bidir)
+ [将 VPC BPA 模式更改为仅入口](#security-vpc-bpa-ingress-only)
+ [创建和删除排除项](#security-vpc-bpa-exclusions)
+ [在组织级别启用 VPC BPA](#security-vpc-bpa-exclusions-orgs)

## 区域可用性
<a name="security-vpc-bpa-reg-avail"></a>

VPC BPA 已在所有商业 [AWS 区域](https://aws.amazon.com//about-aws/global-infrastructure/regions_az/)提供，包括 GovCloud 和中国区域。

在本指南中，您还将找到有关将网络访问分析器和 Reachability Analyzer 与 VPC BPA 配合使用的信息。请注意，网络访问分析器和 Reachability Analyzer 并非在所有商业区域提供。有关网络访问分析器和 Reachability Analyzer 区域可用性的信息，请参阅《Network Access Analyzer Guide》**中的 [Limitations](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/how-network-access-analyzer-works.html#analyzer-limitations) 和《Reachability Analyzer Guide》**中的 [Considerations](https://docs.aws.amazon.com/vpc/latest/reachability/how-reachability-analyzer-works.html#considerations)。

## AWS 服务影响和支持
<a name="security-vpc-bpa-service-support"></a>

以下资源和服务支持 VPC BPA，并且这些服务和资源的流量受 VPC BPA 的影响：
+ **互联网网关**：所有入站和出站流量都被阻止。
+ **仅出口互联网网关**：所有出站流量均被阻止。仅出口互联网网关不允许入站流量。
+ **网关负载均衡器（GWLB）**：除非排除了包含 GWLB 端点的子网，否则所有入站和出站流量均会被阻止。
+ **NAT 网关**：所有入站和出站流量均被阻止。NAT 网关需要互联网网关才能连接互联网。
+ **面向互联网的网络负载均衡器**：所有入站和出站流量均被阻止。面向互联网的网络负载均衡器需要互联网网关才能连接互联网。
+ **面向互联网的应用程序负载均衡器**：所有入站和出站流量均被阻止。面向互联网的应用程序负载均衡器需要互联网网关才能连接互联网。
+ **Amazon CloudFront VPC 源**：所有入站和出站流量均被阻止。
+ **Direct Connect**：所有使用公共虚拟接口（公有 IPv4 地址或全球单播 IPv6 地址）的入站和出站流量都将被阻止。此流量使用互联网网关（或仅出口互联网网关）进行连接。
+ **AWS 全球加速器**：无论目标是否可以通过互联网访问，发往 VPC 的入站流量都会被阻止。
+ **AWS Network Firewall**：即使排除了包含防火墙端点的子网，所有入站和出站流量也会被阻止。
+ **AWS Wavelength 运营商网关**：所有入站和出站流量均被阻止。

VPC BPA 不会阻止或影响与私有连接相关的流量，如以下服务和资源的流量：
+ AWS Client VPN
+ AWS CloudWAN
+ AWS Outposts 本地网关
+ AWS Site-to-Site VPN
+ Transit Gateway
+ AWS Verified Access

  

**重要**  
如果通过子网中 EC2 实例上运行的设备（例如第三方安全或监控工具）路由传入和传出流量，则在使用 VPC BPA 时，该子网需要排除流入和流出的流量。向设备子网而非互联网网关发送流量的其他子网不需要添加为排除项。
即使启用了 VPC BPA，也允许流量从 VPC 中的资源私下发送到 VPC 中运行的其他服务（例如 Route 53 Resolver），因为该流量不会经过 VPC 中的互联网网关。例如，这些服务可能会代表您向 VPC 之外的资源发出请求以解决 DNS 查询，如果不通过其他安全控制措施缓解，则可能会泄露有关您的 VPC 内资源活动的信息。
如果您有一个面向 Internet 的负载均衡器，并且仅为其一个子网创建了 VPC BPA 排除项，则该负载均衡器仍然可以在已排除的子网内接收公共流量，并将接收的流量私密路由至未被排除的子网内的目标。为确保 VPC BPA 完全阻止对目标的公共访问，请确保没有任何负载均衡器子网被排除。

## VPC BPA 限制
<a name="security-vpc-bpa-limits"></a>

不允许 NAT 网关和仅出口互联网网关的本地区域（LZ）中不支持 VPC BPA 仅入口模式。

## 使用 IAM 策略控制对 VPC BPA 的访问
<a name="security-vpc-bpa-iam-example"></a>

有关允许/拒绝访问 VPC BPA 功能的 IAM 策略的示例，请参阅 [屏蔽 VPC 和子网的公共访问权限](vpc-policy-examples.md#vpc-bpa-example-iam)。

## 为您的账户启用 VPC BPA 双向模式
<a name="security-vpc-bpa-enable-bidir"></a>

VPC BPA 双向模式阻止进出此区域互联网网关和仅出口互联网网关的所有流量（已排除 VPC 和子网除外）。有关排除项的更多信息，请参阅[创建和删除排除项](#security-vpc-bpa-exclusions)。

**重要**  
强烈建议您在生产账户中启用 VPC BPA 之前，仔细检查需要访问互联网的工作负载。

**注意**  
要在您账户中的 VPC 和子网上启用 VPC BPA，您必须拥有 VPC 和子网。
如果您当前与其他账户共享 VPC 子网，则子网所有者强制执行的 VPC BPA 模式也适用于参与者流量，但参与者无法控制影响共享子网的 VPC BPA 设置。

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

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在左侧导航窗格中，选择**设置**。

1. 选择**编辑公共访问权限设置**。

1. 选择**开启屏蔽公共访问**和**双向**，然后选择**保存更改**。

1. 等待**状态**更改为**开启**。VPC BPA 设置生效和状态更新可能需要几分钟时间。

VPC BPA 双向模式现已开启。

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

1. 启用 VPC BPA：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
   ```

   VPC BPA 设置生效和状态更新可能需要几分钟时间。

1. 查看 VPC BPA 的状态：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

## 将 VPC BPA 模式更改为仅入口
<a name="security-vpc-bpa-ingress-only"></a>

VPC BPA 仅入口模式会阻止此区域 VPC 的所有互联网流量（已排除的 VPC 或子网除外）。仅允许进出 NAT 网关和仅出口互联网网关的流量，因为这些网关仅允许建立出站连接。

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

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在左侧导航窗格中，选择**设置**。

1. 选择**编辑公共访问权限设置**。

1. 将方向更改为**仅入口**。

1. 保存更改并等待状态更新。VPC BPA 设置生效和状态更新可能需要几分钟时间。

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

1. 修改 VPC BPA 阻止方向：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress
   ```

   VPC BPA 设置生效和状态更新可能需要几分钟时间。

1. 查看 VPC BPA 的状态：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

## 创建和删除排除项
<a name="security-vpc-bpa-exclusions"></a>

VPC BPA 排除是一种可以应用于单个 VPC 或子网的模式，可将其排除在账户的 VPC BPA 模式之外，并允许双向或仅出口访问。即使账户未启用 VPC BPA，您也可以为 VPC 和子网创建 VPC BPA 排除项，以确保启用 VPC BPA 时排除项不会中断流量。VPC 的排除会自动应用于 VPC 中的所有子网。

您最多可以创建 50 个排除项。有关请求提高限制的信息，请参阅 [Amazon VPC 配额](amazon-vpc-limits.md)中*每个账户的 VPC BPA 排除项*。

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

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在左侧导航窗格中，选择**设置**。

1. 在**阻止公开访问**选项卡的**排除**下，执行以下任一操作：
   + 要删除排除项，请选择排除项，然后选择**操作** > **删除排除项**。
   + 要创建排除项，请选择**创建排除项**并继续执行后续步骤。

1. 选择阻止方向：
   + **双向**：允许进出已排除 VPC 和子网的所有互联网流量。
   + **仅出口**：允许来自已排除 VPC 和子网的出站互联网流量。阻止进入已排除 VPC 和子网的入站互联网流量。当 VPC BPA 设置为**双向**时，此设置适用。

1. 选择 VPC 或子网。

1. 选择**创建排除项**。

1. 等待**排除项状态**变为**活动**。您可能需要刷新排除项表才能查看更改。

排除项已创建。

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

1. 修改排除允许方向：

   ```
   aws ec2 --region us-east-2 create-vpc-block-public-access-exclusion --subnet-id subnet-id --internet-gateway-exclusion-mode allow-bidirectional
   ```

1. 更新排除项状态可能需要一段时间。要查看排除项的状态：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id
   ```

------

## 在组织级别启用 VPC BPA
<a name="security-vpc-bpa-exclusions-orgs"></a>

如果您使用 AWS Organizations 来管理组织中的账户，则可以使用 [AWS Organizations 声明性策略](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_declarative.html)对组织中的账户强制执行 VPC BPA。有关 VPC BPA 声明性策略的更多信息，请参阅《AWS Organizations 用户指南》**中的 [Supported declarative policies](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_declarative_syntax.html#declarative-policy-vpc-block-public-access)。

**注意**  
您可以使用 VPC BPA 声明性策略配置是否允许排除，但不能使用该策略创建排除项。若要创建排除项，仍然需要在拥有 VPC 的账户中创建排除项。有关创建 VPC BPA 排除项的更多信息，请参阅[创建和删除排除项](#security-vpc-bpa-exclusions)。
如果启用了 VPC BPA 声明性策略，则在**阻止公开访问**设置中，您将看到**由声明性策略管理**，并且您将无法在账户级别修改 VPC BPA 设置。