

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

# 在 Amazon MWAA 上管理对服务特定 Amazon VPC 端点的访问
管理 VPC 端点访问

您可以使用 VPC 端点 (Amazon PrivateLink) 将 VPC 私密地连接到托管在 Amazon 上的各项服务，而无需互联网网关、NAT 设备、VPN 或防火墙代理。这些端点是可水平扩展且高度可用的虚拟设备，可以在 VPC 中的实例与 Amazon 服务之间进行通信。本页介绍由 Amazon MWAA 创建的 VPC 端点，以及如果您在 Amazon MWAA 上选择了**私有网络**访问模式，如何访问 Apache Airflow Web 服务器的 VPC 端点。

**Contents**
+ [

## 定价
](#vpc-vpe-pricing)
+ [

## VPC 端点概述
](#vpc-vpe-about)
  + [

### 公有网络访问模式
](#vpc-vpe-about-public)
  + [

### 私有网络访问模式
](#vpc-vpe-about-private)
+ [

## 使用其他 Amazon 服务的权限
](#vpc-vpe-permission)
+ [

## 访问 VPC 端点
](#vpc-vpe-view-all)
  + [

### 在 Amazon VPC 控制台中访问 VPC 端点
](#vpc-vpe-view-endpoints)
  + [

### 识别 Apache Airflow Web 服务器及其 VPC 端点的私有 IP 地址
](#vpc-vpe-hosts)
+ [

## 访问 Apache Airflow Web 服务器的 VPC 端点（私有网络访问）
](#vpc-vpe-access-endpoints)
  + [

### 使用 Amazon Client VPN
](#vpc-vpe-access-vpn)
  + [

### 使用 Linux 堡垒主机
](#vpc-vpe-access-bastion)
  + [

### 使用负载均衡器（高级）
](#vpc-vpe-access-load-balancer)

## 定价

+ [Amazon PrivateLink 定价](https://www.amazonaws.cn/privatelink/pricing/)

## VPC 端点概述


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

### 公有网络访问模式


如果您为 Apache Airflow Web 服务器选择了**公有网络**访问模式，则网络流量将通过互联网公开路由。
+ Amazon MWAA 为 Amazon Aurora PostgreSQL 元数据数据库创建 VPC 接口端点。端点是在映射到私有子网的可用区中创建的，并且独立于其他 Amazon Web Services 账户。
+ 然后，Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。

### 私有网络访问模式


如果您为 Apache Airflow Web 服务器选择了**私有网络**访问模式，则网络流量将*在 Amazon VPC 内*私密路由。
+ Amazon MWAA 为 Apache Airflow Web 服务器创建一个 VPC 接口端点，为 Amazon Aurora PostgreSQL 元数据数据库创建接口端点。端点是在映射到私有子网的可用区中创建的，并且独立于其他 Amazon Web Services 账户。
+ 然后，Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。

## 使用其他 Amazon 服务的权限


接口端点在 Amazon Identity and Access Management (IAM) 中使用环境的执行角色来管理环境所用的 Amazon 资源的权限。随着为环境启用更多 Amazon 服务，每项服务都将要求您使用环境的执行角色来配置权限。要添加权限，请参阅 [Amazon MWAA 执行角色](mwaa-create-role.md)。

如果您为 Apache Airflow Web 服务器选择了**私有网络**访问模式，则还必须在 VPC 端点策略中允许每个端点的权限。要了解更多信息，请参阅 [VPC 端点策略（仅限私有路由）](vpc-security.md#vpc-external-vpce-policies)。

## 访问 VPC 端点


本节介绍如何访问 Amazon MWAA 创建的 VPC 端点，以及如何识别 Apache Airflow VPC 端点的私有 IP 地址。

### 在 Amazon VPC 控制台中访问 VPC 端点


下一节显示了如何访问 Amazon MWAA 创建的 VPC 端点，以及可能已创建的任何 VPC 端点（如果您在 Amazon VPC 中使用*私有路由*）。

**访问 VPC 端点**

1. 打开 Amazon VPC 控制台的 [端点页面](https://console.amazonaws.cn/vpc/home#Endpoints:)。

1. 选择您的Amazon Web Services 区域。

1. 请参阅由 Amazon MWAA 创建的 VPC 接口端点，以及您可能已创建的任何 VPC 端点（如果您在 Amazon VPC 中使用*私有路由*）。

要详细了解使用*私有路由*的 Amazon VPC 所需的 VPC 服务端点，请参阅 [使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点](vpc-vpe-create-access.md)。

### 识别 Apache Airflow Web 服务器及其 VPC 端点的私有 IP 地址


以下步骤介绍如何检索 Apache Airflow Web 服务器的主机名、其 VPC 接口端点及其私有 IP 地址。

1. 使用以下 Amazon Command Line Interface (Amazon CLI) 命令检索 Apache Airflow Web 服务器的主机名。

   ```
   aws mwaa get-environment --name YOUR_ENVIRONMENT_NAME --query 'Environment.WebserverUrl'
   ```

   您会收到类似如下响应所示的内容：

   ```
   "99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com"
   ```

1. 对上一个命令的响应中返回的主机名运行 *dig* 命令。例如：

   ```
   dig CNAME +short 99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com
   ```

   您会收到类似如下响应所示的内容：

   ```
   vpce-0699aa333a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com.
   ```

1. 使用以下 Amazon Command Line Interface (Amazon CLI) 命令检索上一个命令的响应中返回的 VPC 端点 DNS 名称。例如：

   ```
   aws ec2 describe-vpc-endpoints | grep vpce-0699aa333a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com.
   ```

   您会收到类似如下响应所示的内容：

   ```
   "DnsName": "vpce-066777a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com",
   ```

1. 对 Apache Airflow 主机名及其 VPC 端点 DNS 名称运行 *nslookup* 或 *dig* 命令以检索 IP 地址。例如：

   ```
   dig +short YOUR_AIRFLOW_HOST_NAME YOUR_AIRFLOW_VPC_ENDPOINT_DNS
   ```

   您会收到类似如下响应所示的内容：

   ```
   192.0.5.1
   192.0.6.1
   ```

## 访问 Apache Airflow Web 服务器的 VPC 端点（私有网络访问）


如果您为 Apache Airflow Web 服务器选择了**私有网络**访问模式，则需要创建一种机制来访问 Apache Airflow Web 服务器的 VPC 接口端点。对于这些资源，我们建议使用与 Amazon MWAA 环境相同的 Amazon VPC、VPC 安全组和私有子网。

### 使用 Amazon Client VPN


Amazon Client VPN 是一种基于客户端的托管 VPN 服务，您可以用来安全地访问 Amazon 资源和本地网络中的资源。它使用 OpenVPN 客户端从任何位置提供安全的 TLS 连接。

我们建议按照 Amazon MWAA 教程来配置客户端 VPN：[教程：使用 Amazon Client VPN 配置私有网络访问权限](tutorials-private-network-vpn-client.md)。

### 使用 Linux 堡垒主机


堡垒主机是一种服务器，其目的是提供从外部网络（例如从计算机通过互联网）访问私有网络的权限。Linux 实例位于公有子网中，这些实例设有一个安全组，该安全组允许从连接到运行堡垒主机的底层 Amazon EC2 实例的安全组进行 SSH 访问。

我们建议按照 Amazon MWAA 教程来配置 Linux 堡垒主机：[教程：使用 Linux 堡垒主机配置私有网络访问权限](tutorials-private-network-bastion.md)。

### 使用负载均衡器（高级）


下一节显示了应用于[应用程序负载均衡器](https://docs.amazonaws.cn/elasticloadbalancing/latest/application/tutorial-application-load-balancer-cli.html)所需的配置。

1. **目标组**。您需要使用指向 Apache Airflow Web 服务器及其 VPC 接口端点的私有 IP 地址的目标组。我们建议将两个私有 IP 地址都指定为注册目标，因为只使用一个会降低可用性。有关如何识别私有 IP 地址的更多信息，请参阅 [识别 Apache Airflow Web 服务器及其 VPC 端点的私有 IP 地址](#vpc-vpe-hosts)。

1. **状态代码**。我们建议在目标群组设置中使用 `200` 和 `302` 状态码。否则，如果 Apache Airflow Web 服务器的 VPC 端点响应为 `302 Redirect` 错误，则目标可能会被标记为运行状况不佳。

1. **HTTPS 侦听器**。您需要为 Apache Airflow Web 服务器指定目标端口。例如：    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/mwaa/latest/userguide/vpc-vpe-access.html)

1. **ACM 新域名**。如果要在 Amazon Certificate Manager 中关联 SSL/TLS 证书，则需要为负载均衡器的 HTTPS 侦听器创建一个新域。

1. **ACM 证书区域**。如果要在 Amazon Certificate Manager 中关联 SSL/TLS 证书，则需要将证书上传到与环境相同的 Amazon Web Services 区域。例如：

   1.   
**Example 要上传证书的区域**  

     ```
     aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem --region us-west-2
     ```