

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

# 关于在 Amazon MWAA 上联网
<a name="networking-about"></a>

Amazon VPC 是链接到 AWS 账户 的虚拟网络。它通过提供对虚拟基础设施和网络流量分段的精细控制，为您提供云安全性和动态扩展的能力。本页介绍支持 Amazon MWAA 环境所需的具有*公有路由*或*私有路由*的 Amazon VPC 基础设施。

**Contents**
+ [术语](#networking-about-defs)
+ [支持什么？](#networking-about-supported)
+ [VPC 基础设施概述](#networking-about-overview)
  + [通过互联网进行公共路由](#networking-about-overview-public)
  + [无法访问互联网的私有路由](#networking-about-overview-private)
+ [Amazon VPC 和 Apache Airflow 访问模式的示例用例](#networking-about-network-usecase)
  + [允许访问互联网-新的 Amazon VPC 网络](#networking-about-network-usecase-internet)
  + [不允许访问互联网-新的 Amazon VPC 网络](#networking-about-network-usecase-nointernet)
  + [不允许访问互联网-现有 Amazon VPC 网络](#networking-about-network-usecase-nointernet-existing-vpc)

## 术语
<a name="networking-about-defs"></a>

**公有路由**  
可以访问互联网的 Amazon VPC 网络。

**私有路由**  
**无法**访问互联网的 Amazon VPC 网络。

## 支持什么？
<a name="networking-about-supported"></a>

下表描述 Amazon MWAA 支持的 Amazon VPC 类型。


| Amazon VPC 类型 | 支持 | 
| --- | --- | 
|  Amazon VPC 属于尝试创建环境的账户。  |  是  | 
|  共享的 Amazon VPC，多个 AWS 账户 可以在其中创建自己的 AWS 资源。  |  是  | 

## VPC 基础设施概述
<a name="networking-about-overview"></a>

当您创建 Amazon MWAA 环境时，Amazon MWAA 会根据您为环境选择的 Apache Airflow 访问模式为环境创建一到两个 VPC 端点。这些端点显示为弹性网络接口 (ENI)，私有 IP 位于 Amazon VPC 中。创建这些端点后，任何发往这些 IP 的流量都将私密或公共地路由到环境使用的相应 AWS 服务。

以下部分介绍通过互联网公共地路由流量或在* Amazon VPC 内*私密地路由流量所需的 Amazon VPC 基础设施。

### 通过互联网进行公共路由
<a name="networking-about-overview-public"></a>

本节介绍具有公有路由的环境的 Amazon VPC 基础设施。您需要以下 VPC 基础设施：
+ **一个 VPC 安全组** VPC 安全组 充当虚拟防火墙，以控制实例上的入口（入站）和出口（出站）流量。
  + 最多可以指定 5 个安全组。
  + 安全组必须为自己指定自引用的入站规则。
  + 安全组必须为所有流量（`0.0.0.0/0`；对于 IPv6，使用 `::/0`）指定出站规则。
  + 安全组必须允许自引用规则中的所有流量。例如 [（推荐）所有访问自引用安全组示例](vpc-security.md#vpc-security-sg-example)。
  + 安全组可以*选择*通过指定 HTTPS 端口范围 `443` 和 TCP 端口范围 `5432` 来进一步限制流量。例如，[（可选）限制入站访问端口 5432 的安全组示例](vpc-security.md#vpc-security-sg-example-port5432) 和 [（可选）限制入站访问端口 443 的安全组示例](vpc-security.md#vpc-security-sg-example-port443)。
+ **两个公有子网**。公有子网是指与包含指向互联网网关的路由的路由表关联的子网。
  + 需要两个公有子网。这样，如果一个容器出现故障，Amazon MWAA 就可以为另一个可用区中的环境构建新的容器镜像。
  + 这些子网必须位于不同的可用区中。例如 `us-east-1a`、`us-east-1b`。
  + 子网必须路由到具有弹性 IP 地址（EIP）的 NAT 网关（或 NAT 实例）。
  + 子网必须具有将面向互联网的流量定向到互联网网关的路由表。
+ **两个私有子网**。公有子网是指与包含指向互联网网关的路由的路由表**不**关联的子网。
  + 需要两个私有子网。这样，如果一个容器出现故障，Amazon MWAA 就可以为另一个可用区中的环境构建新的容器镜像。
  + 这些子网必须位于不同的可用区中。例如 `us-east-1a`、`us-east-1b`。
  + 这些子网*必须*有通往 NAT 设备（网关或实例）的路由表。
  + 这些子网**不得**路由到互联网网关。
  + 对于 IPv6 子网，设置为 `assignIpV6AddressOnCreation` 到 `true`。
  + 对于 IPv6 私有子网，必须连接到仅出口互联网网关 (EIGW)。
+ **网络访问控制列表（ACL）** NACL 管理（通过允许或拒绝规则）子网级别的入站和出站流量。
  + NACL 必须有允许所有流量的入站规则（`0.0.0.0/0`；对于 IPv6，使用 `::/0`）。
  + NACL 必须有允许所有流量的出站规则（`0.0.0.0/0`；对于 IPv6，使用 `::/0`）。
  + 例如 [（推荐）示例 ACLs](vpc-security.md#vpc-security-acl-example)。
+ **两个 NAT 网关（或 NAT 实例）**。NAT 设备将来自私有子网中实例的流量转发到互联网或其他 AWS 服务，然后将响应发回给实例。
  + NAT 设备必须连接公有子网。（每个公有子网一个 NAT 设备。）
  + NAT 设备必须将弹性 IPv4 地址（EIP）附加到每个公有子网。
+ **Internet 网关**。互联网网关将 Amazon VPC 连接到互联网和其他 AWS 服务。
  + 互联网网关必须连接到 Amazon VPC。

### 无法访问互联网的私有路由
<a name="networking-about-overview-private"></a>

本节介绍具有*私有路由*的环境的 Amazon VPC 基础设施。您需要以下 VPC 基础设施：
+ **一个 VPC 安全组** VPC 安全组 充当虚拟防火墙，以控制实例上的入口（入站）和出口（出站）流量。
  + 最多可以指定 5 个安全组。
  + 安全组必须为自己指定自引用的入站规则。
  + 安全组必须为所有流量（`0.0.0.0/0`；对于 IPv6，使用 `::/0`）指定出站规则。
  + 安全组必须允许自引用规则中的所有流量。例如 [（推荐）所有访问自引用安全组示例](vpc-security.md#vpc-security-sg-example)。
  + 安全组可以*选择*通过指定 HTTPS 端口范围 `443` 和 TCP 端口范围 `5432` 来进一步限制流量。例如，[（可选）限制入站访问端口 5432 的安全组示例](vpc-security.md#vpc-security-sg-example-port5432) 和 [（可选）限制入站访问端口 443 的安全组示例](vpc-security.md#vpc-security-sg-example-port443)。
+ **两个私有子网**。公有子网是指与包含指向互联网网关的路由的路由表**不**关联的子网。
  + 需要两个私有子网。这样，如果一个容器出现故障，Amazon MWAA 就可以为另一个可用区中的环境构建新的容器镜像。
  + 这些子网必须位于不同的可用区中。例如 `us-east-1a`、`us-east-1b`。
  + 这些子网必须有通往 VPC 端点的路由表。
  + 子网必须具有指向 EIGW 的路由表，才能作为 DAG 的一部分从互联网下载。
  + 这些子网**不得**有通往 NAT 设备（网关或实例）的路由表，**也不能**有互联网网关。
+ **网络访问控制列表（ACL）** NACL 管理（通过允许或拒绝规则）子网级别的入站和出站流量。
  + NACL 必须有允许所有流量的入站规则（`0.0.0.0/0`；对于 IPv6，使用 `::/0`）。
  + NACL 必须有拒绝所有流量的出站规则（`0.0.0.0/0`；对于 IPv6，使用 `::/0`）。
  + 例如 [（推荐）示例 ACLs](vpc-security.md#vpc-security-acl-example)。
+ **本地路由表**。本地路由表是指用于 VPC 内通信的默认路由。
  + 本地路由表必须与私有子网关联。
  + 本地路由表必须启用 VPC 中的实例与您自己的网络进行通信。例如，如果您使用 AWS Client VPN 访问 Apache Airflow Web 服务器的 VPC 接口端点，则路由表必须路由到 VPC 端点。
+ 环境使用的每项 AWS 服务的 **VPC 端点**，以及与 Amazon MWAA 环境位于同一 AWS 区域 和同一 Amazon VPC 的 Apache Airflow VPC 端点。
  + 环境使用的每项 AWS 服务的 VPC 端点和 Apache Airflow 的 VPC 端点。例如 [（必需）VPC 端点](vpc-vpe-create-access.md#vpc-vpe-create-view-endpoints-examples)。
  + VPC 端点必须有启用的私有 DNS。
  + VPC 端点必须与您环境的两个私有子网关联。
  + VPC 端点必须与您环境的安全组相关联。
  + 必须将每个端点的 VPC 端点策略配置为允许访问环境使用的各项 AWS 服务。例如 [（推荐）允许所有人访问的 VPC 端点策略示例](vpc-security.md#vpc-external-vpce-policies-all)。
  + Amazon S3 的 VPC 端点策略必须配置为允许访问存储桶。例如 [（推荐）允许访问存储桶的 Amazon S3 网关端点策略示例](vpc-security.md#vpc-external-vpce-policies-s3)。

## Amazon VPC 和 Apache Airflow 访问模式的示例用例
<a name="networking-about-network-usecase"></a>

本部分介绍 Amazon VPC 中网络访问的不同使用案例，以及在 Amazon MWAA 控制台上选择的 Apache Airflow Web 服务器访问模式。

### 允许访问互联网-新的 Amazon VPC 网络
<a name="networking-about-network-usecase-internet"></a>

如果贵组织允许在 VPC 中访问互联网，*并且*您希望用户通过互联网访问 Apache Airflow Web 服务器，请执行以下操作：

1. 创建可访问互联网的 Amazon VPC 网络。

1. 为 Apache Airflow Web 服务器创建具有**公有网络**访问模式的环境。

1. **我们的建议**：我们建议使用 CloudFormation 快速入门模板来同时创建 Amazon VPC 基础设施、Amazon S3 存储桶和 Amazon MWAA 环境。要了解更多信息，请参阅 [Amazon MWAA 的快速入门教程](quick-start.md)。

如果贵组织允许在 VPC 中访问互联网，*并且*您希望将 Apache Airflow Web 服务器访问权限限于 VPC 内的用户，请执行以下操作：

1. 创建可访问互联网的 Amazon VPC 网络。

1. 创建一种机制，用于从计算机访问 Apache Airflow Web 服务器的 VPC 接口端点。

1. 为 Apache Airflow Web 服务器创建具有**私有网络**访问模式的环境。

1. **我们的建议**：

   1. 我们建议使用 Amazon MWAA 控制台，请参阅 [选项一：在 Amazon MWAA 控制台上创建 VPC 网络](vpc-create.md#vpc-create-mwaa-console)；或 CloudFormation 模板，请参阅 [选项二：创建*可*访问互联网的 Amazon VPC 网络](vpc-create.md#vpc-create-template-private-or-public)。

   1. 我们在 [教程：使用 AWS Client VPN 配置私有网络访问权限](tutorials-private-network-vpn-client.md) 中建议使用 AWS Client VPN 配置对 Apache Airflow Web 服务器的访问权限。

### 不允许访问互联网-新的 Amazon VPC 网络
<a name="networking-about-network-usecase-nointernet"></a>

如果贵组织**不允许**在 VPC 中访问互联网：

1. 创建没有互联网访问权限的 Amazon VPC 网络。

1. 创建一种机制，用于从计算机访问 Apache Airflow Web 服务器的 VPC 接口端点。

1. 为环境使用的每项 AWS 服务创建 VPC 端点。

1. 为 Apache Airflow Web 服务器创建具有**私有网络**访问模式的环境。

1. **我们的建议**：

   1. 我们建议使用 CloudFormation 模板创建无法访问互联网的 Amazon VPC，并为 Amazon MWAA 在 [选项三：创建*不可*访问互联网的 Amazon VPC 网络](vpc-create.md#vpc-create-template-private-only) 中使用的每项 AWS 服务创建 VPC 端点。

   1. 我们在 [教程：使用 AWS Client VPN 配置私有网络访问权限](tutorials-private-network-vpn-client.md) 中建议使用 AWS Client VPN 配置对 Apache Airflow Web 服务器的访问权限。

### 不允许访问互联网-现有 Amazon VPC 网络
<a name="networking-about-network-usecase-nointernet-existing-vpc"></a>

如果贵组织**不允许**在 VPC 中访问互联网，*并且*您已经拥有所需的无法访问互联网的 Amazon VPC 网络：

1. 为环境使用的每项 AWS 服务创建 VPC 端点。

1. 为 Apache Airflow 创建 VPC 端点。

1. 创建一种机制，用于从计算机访问 Apache Airflow Web 服务器的 VPC 接口端点。

1. 为 Apache Airflow Web 服务器创建具有**私有网络**访问模式的环境。

1. **我们的建议**：

   1. 我们建议创建并附加 Amazon MWAA 使用的每项 AWS 服务所需的 VPC 端点，以及 Apache Airflow 中所需的 VPC 端点，请参阅 [使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点](vpc-vpe-create-access.md)。

   1. 我们在 [教程：使用 AWS Client VPN 配置私有网络访问权限](tutorials-private-network-vpn-client.md) 中建议使用 AWS Client VPN 配置对 Apache Airflow Web 服务器的访问权限。