

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

# 使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点
<a name="vpc-vpe-create-access"></a>

无法访问互联网的现有 Amazon VPC 网络需要额外的 VPC 服务端点 (AWS PrivateLink) 才能在 Amazon MWAA 上使用 Apache Airflow。本页介绍了 Amazon MWAA 使用的 AWS 服务所需的 VPC 端点、Apache Airflow 所需的 VPC 端点，以及如何使用私有路由创建 VPC 端点并将其连接到现有 Amazon VPC。

**Contents**
+ [定价](#vpc-vpe-create-pricing)
+ [私有网络和私有路由](#vpc-vpc-create-onconsole)
+ [（必需）VPC 端点](#vpc-vpe-create-view-endpoints-examples)
+ [连接所需的 VPC 端点](#vpc-vpe-create-view-endpoints-attach-all)
  + [AWS 服务所需的 VPC 端点](#vpc-vpe-create-view-endpoints-attach-services)
  + [Apache Airflow 所需的 VPC 端点](#vpc-vpe-create-view-endpoints-attach-aa)
+ [（可选）为 Amazon S3 VPC 接口端点启用私有 IP 地址](#vpc-vpe-create-view-endpoints-s3-exception)
  + [使用 Route 53](#vpc-vpe-create-view-endpoints-s3-exception-route53)
  + [带有自定义 DNS 解析](#vpc-vpe-create-view-endpoints-s3-exception-customdns)

## 定价
<a name="vpc-vpe-create-pricing"></a>
+ [AWS PrivateLink 定价](https://aws.amazon.com/privatelink/pricing/)

## 私有网络和私有路由
<a name="vpc-vpc-create-onconsole"></a>

![\[此图显示了带有私有 Web 服务器的 Amazon MWAA 环境的架构。\]](http://docs.aws.amazon.com/zh_cn/mwaa/latest/userguide/images/mwaa-private-web-server.png)


私有网络访问模式将访问 Apache Airflow UI 的权限限制为* Amazon VPC 中*已获准访问[环境 IAM 策略](access-policies.md)的用户。

创建具有私有 Web 服务器访问权限的环境时，必须将所有依赖项打包到 Python Wheel 档案 (`.whl`) 中，然后在 `requirements.txt` 中引用 `.whl`。有关使用 Wheel 打包和安装依赖项的说明，请参阅[使用 Python Wheel 管理依赖项](best-practices-dependencies.md#best-practices-dependencies-python-wheels)。

下图描述了在 Amazon MWAA 控制台上哪里可以找到**私有网络**选项。

![\[此图描述了在 Amazon MWAA 控制台上哪里可以找到私有网络选项。\]](http://docs.aws.amazon.com/zh_cn/mwaa/latest/userguide/images/mwaa-console-private-network.png)

+ **私有路由**。[无法访问互联网的 Amazon VPC](networking-about.md) 会限制 VPC 内的网络流量。本页假设 Amazon VPC 无法访问互联网，并且环境使用的每项 AWS 服务都需要 VPC 端点，Apache Airflow 需要与 Amazon MWAA 环境位于同一 AWS 区域 和 Amazon VPC 中。

## （必需）VPC 端点
<a name="vpc-vpe-create-view-endpoints-examples"></a>

下一节显示了无法访问互联网的 Amazon VPC 所需的 VPC 端点。它列出了 Amazon MWAA 使用的每项 AWS 服务的 VPC 端点，包括 Apache Airflow 所需的 VPC 端点。

```
com.amazonaws.us-east-1.s3
com.amazonaws.us-east-1.monitoring
com.amazonaws.us-east-1.logs
com.amazonaws.us-east-1.sqs
com.amazonaws.us-east-1.kms
```

**注意**  
在使用 Transit Gateway 或任何其他不直接连接到 AWS API 端点的路由时，我们建议您将 AWS PrivateLink 添加到以下服务的 Amazon MWAA 私有子网：  
Amazon S3
Amazon SQS
CloudWatch Logs
CloudWatch 指标
AWS KMS（如适用）
这可确保您的 Amazon MWAA 环境能够安全高效地与这些服务进行通信，无需通过公共互联网路由流量，从而提高安全性和性能。

## 连接所需的 VPC 端点
<a name="vpc-vpe-create-view-endpoints-attach-all"></a>

本节介绍为使用私有路由的 Amazon VPC 连接所需的 VPC 端点的步骤。

### AWS 服务所需的 VPC 端点
<a name="vpc-vpe-create-view-endpoints-attach-services"></a>

下一节显示了将环境使用的 AWS 服务的 VPC 端点连接到现有 Amazon VPC 的步骤。

**将 VPC 端点连接到私有子网**

1. 打开 Amazon VPC 控制台的 [端点页面](https://console.aws.amazon.com/vpc/home#Endpoints:sort=vpcEndpointType)。

1. 选择您的AWS 区域。

1. 创建 Amazon S3 网关端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.s3**，然后按键盘上的 *Enter*。

   1. 我们建议为**网关**类型选择列出的服务端点。

      例如，**com.amazonaws.us-west-2.s3 amazon Gateway**

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并通过选择**启用 DNS 名称**来启用该私有 DNS。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

1. 创建 CloudWatch Logs 端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.logs**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

1. 为 CloudWatch 监控创建端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.monitoring**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

1. 为 Amazon SQS 创建端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.sqs**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

1. 创建 AWS KMS 的端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.kms**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

### Apache Airflow 所需的 VPC 端点
<a name="vpc-vpe-create-view-endpoints-attach-aa"></a>

下一节显示了将 Apache Airflow 的 VPC 端点连接到现有 Amazon VPC 的步骤。

**将 VPC 端点连接到私有子网**

1. 打开 Amazon VPC 控制台的 [端点页面](https://console.aws.amazon.com/vpc/home#Endpoints:sort=vpcEndpointType)。

1. 选择您的AWS 区域。

1. 为 Apache Airflow API 创建端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.airflow.api**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

1. 为 Apache Airflow 环境创建第一个端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.airflow.env**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

1. 为 Apache Airflow 操作创建第二个端点：

   1. 选择**创建端点**。

   1. 在*按属性筛选或按关键字搜索*文本字段中，键入:**.airflow.ops**，然后按键盘上的 *Enter*。

   1. 选择服务端点。

   1. 在 VPC 中选择环境的 Amazon **VPC**。

   1. 确保选择了位于不同可用区的两个私有子网，并启用**启用 DNS 名称**。

   1. 选择环境的 Amazon VPC 安全组。

   1. 在**策略**中选择**完全访问权限**。

   1. 选择**创建端点**。

## （可选）为 Amazon S3 VPC 接口端点启用私有 IP 地址
<a name="vpc-vpe-create-view-endpoints-s3-exception"></a>

Amazon S3 **接口**端点不支持私有 DNS。S3 端点请求仍会解析为*公有* IP 地址。要将 S3 地址解析为*私有* IP 地址，您需要[在 Route 53 中为 S3 区域端点添加私有托管区](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)。

### 使用 Route 53
<a name="vpc-vpe-create-view-endpoints-s3-exception-route53"></a>

本节介绍使用 Route 53 为 S3 **接口**端点启用私有 IP 地址的步骤。

1. 为 Amazon S3 VPC 接口端点（例如 s3.eu-west-1.amazonaws.com）创建私有托管区并将其与 Amazon VPC 关联。

1. 为 Amazon S3 VPC 接口端点（例如 s3.eu-west-1.amazonaws.com）创建别名 A 记录，该记录可解析为 VPC 接口端点 DNS 名称。

1. 为 Amazon S3 接口端点（例如，\$1. s3.eu-west-1.amazonaws.com）创建一个别名 A 通配符记录，该记录可解析为 VPC 接口端点 DNS 名称。

### 带有自定义 DNS 解析
<a name="vpc-vpe-create-view-endpoints-s3-exception-customdns"></a>

如果 Amazon VPC 使用自定义 DNS 路由，则需要通过创建别名记录在 DNS 解析器（不是 Route 53，通常是运行 DNS 服务器的 EC2 实例）中进行更改。例如：

```
Name: s3.us-west-2.amazonaws.com
Type: CNAME
Value:  *.vpce-0f67d23e37648915c-e2q2e2j3.s3.us-west-2.vpce.amazonaws.com
```