在 Amazon MWAA 上管理对特定服务的亚马逊 VPC 终端节点的访问 - Amazon Managed Workflows for Apache Airflow
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Amazon MWAA 上管理对特定服务的亚马逊 VPC 终端节点的访问

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

定价

VPC 端点概述

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

公有网络访问模式

如果您为 Apache Airflow Web 服务器选择了公有网络访问模式,则网络流量将通过互联网公开路由。

  • Amazon MWAA 为 Amazon Aurora PostgreSQL 元数据数据库创建 VPC 接口端点。端点是在映射到私有子网的可用区中创建的,并且独立于其他 Amazon 账户。

  • 然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。

私有网络访问模式

如果您为 Apache Airflow Web 服务器选择了私有网络访问模式,则网络流量将在 Amazon VPC 内私密路由。

  • Amazon MWAA 为 Apache Airflow Web 服务器创建一个 VPC 接口端点,为 Amazon Aurora PostgreSQL 元数据数据库创建接口端点。端点是在映射到私有子网的可用区中创建的,并且独立于其他 Amazon 账户。

  • 然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。

使用其他 Amazon 服务的权限

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

如果您为 Apache Airflow Web 服务器选择了私有网络访问模式,则还必须在 VPC 端点策略中允许每个端点的权限。要了解更多信息,请参阅VPC 端点策略(仅限私有路由)

使用 VPC 端点

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

在 Amazon VPC 控制台中查看

下一节显示了如何查看 Amazon MWAA 创建的(各个) VPC 端点,以及可能已创建的任何 VPC 端点(如果您在 Amazon VPC 中使用私有路由)。

要查看(各个) VPC 端点,请执行以下操作
  1. 打开 Amazon VPC 控制台的 端点页面

  2. 使用 Amazon 区域选择器选择您的区域。

  3. 如果您在 Amazon VPC 中使用私有路由,则应看到由 Amazon MWAA 创建的(各个) VPC 接口端点,以及您可能已创建的任何 VPC 端点。

要详细了解使用私有路由的 Amazon VPC 所需的 VPC 服务端点,请参阅 使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点

识别 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"
  2. 对上一个命令的响应中返回的主机名运行 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.
  3. 使用以下 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",
  4. 对 Apache Airflow 主机名及其 VPC 端点 DNS 名称运行 nslookupdig 命令以检索 IP 地址。例如:

    dig +short YOUR_AIRFLOW_HOST_NAME YOUR_AIRFLOW_VPC_ENDPOINT_DNS

    您应看到类似如下响应所示的内容:

    10.199.11.111 10.999.11.33

访问 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 配置私有网络访问权限

使用 Linux 堡垒主机

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

我们建议按照 Amazon MWAA 教程来配置 Linux 堡垒主机:教程:使用 Linux 堡垒主机配置私有网络访问权限

使用负载均衡器(高级)

下一节显示了应用于应用程序负载均衡器所需的配置。

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

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

  3. HTTPS 侦听器。您需要为 Apache Airflow Web 服务器指定目标端口。例如:

    协议 端口

    HTTPS

    443

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

  5. ACM 证书区域。如果要在 Amazon Certificate Manager 中关联 SSL/TLS 证书,则需要将证书上传到与环境相同的 Amazon 区域。例如:

    1. 例 要上传证书的区域
      aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem --region us-west-2