在 Amazon MWAA 上管理对服务特定 Amazon VPC 端点的访问
VPC 端点(AWS PrivateLink)使您能够将 VPC 私密地连接到托管在 AWS 上的各项服务,而无需互联网网关、NAT 设备、VPN 或防火墙代理。这些端点是可水平扩展且高度可用的虚拟设备,可以在 VPC 中的实例与 AWS 服务之间进行通信。本页介绍由 Amazon MWAA 创建的 VPC 端点,以及如果您在 Amazon MWAA 上选择了私有网络访问模式,还介绍了如何访问 Apache Airflow Web 服务器的 VPC 端点。
目录
定价
VPC 端点概述
当您创建 Amazon MWAA 环境时,Amazon MWAA 会为环境创建一到两个 VPC 端点。这些端点显示为弹性网络接口(ENI),私有 IP 位于 Amazon VPC 中。创建这些端点后,任何发往这些 IP 的流量都将私密或公共地路由到环境使用的相应 AWS 服务。
公有网络访问模式
如果您为 Apache Airflow Web 服务器选择了公有网络访问模式,则网络流量将通过互联网公开路由。
-
Amazon MWAA 为 Amazon Aurora PostgreSQL 元数据数据库创建 VPC 接口端点。端点是在映射到私有子网的可用区中创建的,并且独立于其他 AWS 账户。
-
然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。
私有网络访问模式
如果您为 Apache Airflow Web 服务器选择了私有网络访问模式,则网络流量将在 Amazon VPC 内私密路由。
-
Amazon MWAA 为 Apache Airflow Web 服务器创建一个 VPC 接口端点,为 Amazon Aurora PostgreSQL 元数据数据库创建接口端点。端点是在映射到私有子网的可用区中创建的,并且独立于其他 AWS 账户。
-
然后,Amazon MWAA 会将私有子网中的 IP 地址绑定到接口端点。这旨在支持从 Amazon VPC 的每个可用区绑定一个 IP 的最佳实践。
使用其他 AWS 服务的权限
接口端点在 AWS Identity and Access Management (IAM) 中使用环境的执行角色来管理环境所用的 AWS 资源的权限。随着为环境启用更多 AWS 服务,每项服务都将要求您使用环境的执行角色来配置权限。要添加权限,请参阅 Amazon MWAA 执行角色。
如果您为 Apache Airflow Web 服务器选择了私有网络访问模式,则还必须在 VPC 端点策略中允许每个端点的权限。要了解更多信息,请参阅 VPC 端点策略(仅限私有路由)。
使用 VPC 端点
本节介绍如何查看 Amazon MWAA 创建的 VPC 端点,以及如何识别 Apache Airflow VPC 端点的私有 IP 地址。
在 Amazon VPC 控制台中查看
下一节显示了如何查看 Amazon MWAA 创建的(各个) VPC 端点,以及可能已创建的任何 VPC 端点(如果您在 Amazon VPC 中使用私有路由)。
要查看(各个) VPC 端点,请执行以下操作
-
打开 Amazon VPC 控制台的 端点页面
。 -
使用 AWS 区域选择器选择您的区域。
-
如果您在 Amazon VPC 中使用私有路由,则应看到由 Amazon MWAA 创建的(各个) VPC 接口端点,以及您可能已创建的任何 VPC 端点。
要详细了解使用私有路由的 Amazon VPC 所需的 VPC 服务端点,请参阅 使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点。
识别 Apache Airflow Web 服务器及其 VPC 端点的私有 IP 地址
以下步骤介绍如何检索 Apache Airflow Web 服务器的主机名及其 VPC 接口端点及其私有 IP 地址。
-
使用以下 AWS Command Line Interface(AWS 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"
-
对上一个命令的响应中返回的主机名运行 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.
-
使用以下 AWS Command Line Interface (AWS 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",
-
对 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 安全组和私有子网。
使用 AWS Client VPN
AWS Client VPN 是一种基于客户端的托管 VPN 服务,让您能够安全地访问 AWS 资源和本地网络中的资源。它使用 OpenVPN 客户端从任何位置提供安全的 TLS 连接。
我们建议按照 Amazon MWAA 教程来配置客户端 VPN:教程:使用 AWS Client VPN 配置私有网络访问权限。
使用 Linux 堡垒主机
堡垒主机是一种服务器,其目的是提供从外部网络(例如从计算机通过互联网)访问私有网络的权限。Linux 实例位于公有子网中,这些实例设有一个安全组,该安全组允许从连接到运行堡垒主机的底层 Amazon EC2 实例的安全组进行 SSH 访问。
我们建议按照 Amazon MWAA 教程来配置 Linux 堡垒主机:教程:使用 Linux 堡垒主机配置私有网络访问权限。
使用负载均衡器(高级)
下一节显示了应用于应用程序负载均衡器所需的配置。
-
目标组。您需要使用指向 Apache Airflow Web 服务器及其 VPC 接口端点的私有 IP 地址的目标组。我们建议将两个私有 IP 地址都指定为注册目标,因为只使用一个会降低可用性。有关如何识别私有 IP 地址的更多信息,请参阅 识别 Apache Airflow Web 服务器及其 VPC 端点的私有 IP 地址。
-
状态代码。我们建议在目标群组设置中使用
200
和302
状态码。否则,如果 Apache Airflow Web 服务器的 VPC 端点响应为302 Redirect
错误,则目标可能会被标记为运行状况不佳。 -
HTTPS 侦听器。您需要为 Apache Airflow Web 服务器指定目标端口。例如:
协议 端口 HTTPS
443
-
ACM 新域名。如果要在 AWS Certificate Manager 中关联 SSL/TLS 证书,则需要为负载均衡器的 HTTPS 侦听器创建一个新域。
-
ACM 证书区域。如果要在 AWS Certificate Manager 中关联 SSL/TLS 证书,则需要将证书上传到与环境相同的 AWS 区域。例如:
-
例 要上传证书的区域
aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem
--region us-west-2
-