使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点 - Amazon Managed Workflows for Apache Airflow

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

使用私有路由在 Amazon VPC 中创建所需的 VPC 服务端点

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

定价

私有网络和私有路由

此图显示了带有私有 Web 服务器的 Amazon MWAA 环境的架构。

私有网络访问模式将访问 Apache Airflow UI 的权限限制为 Amazon VPC 中已获准访问环境 IAM 策略的用户。

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

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

此图显示了在 Amazon MWAA 控制台上哪里可以找到私有网络选项。
  • 私有路由无法互联网访问的 Amazon VPC 会限制 VPC 内的网络流量。本页假设 Amazon VPC 无法访问互联网,并且环境使用的每项 AWS 服务都需要 VPC 端点,Apache Airflow 需要与 Amazon MWAA 环境位于同一 AWS 区域和 Amazon VPC 中。

(必需)VPC 端点

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

com.amazonaws.YOUR_REGION.s3 com.amazonaws.YOUR_REGION.monitoring com.amazonaws.YOUR_REGION.logs com.amazonaws.YOUR_REGION.sqs com.amazonaws.YOUR_REGION.kms
注意

在使用 Transit Gateway 或任何其他不直接连接到 AWS API 端点的路由时,我们建议您将 AWS PrivateLink 添加到以下服务的 Amazon MWAA 私有子网:

  • Amazon S3

  • Amazon SQS

  • CloudWatch Logs

  • CloudWatch 指标

  • AWS KMS(如适用)

这可确保您的 Amazon MWAA 环境能够安全高效地与这些服务进行通信,无需通过公共互联网路由流量,从而提高安全性和性能。

连接所需的 VPC 端点

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

AWS 服务所需的 VPC 端点

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

将 VPC 端点连接到私有子网
  1. 打开 Amazon VPC 控制台的 端点页面

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

  3. 创建 Amazon S3 网关端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.s3,然后按键盘上的 Enter

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

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

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

  4. 创建 CloudWatch Logs 端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.logs,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

  5. 为 CloudWatch 监控创建端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.monitoring,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

  6. 为 Amazon SQS 创建端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.sqs,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

  7. 创建 AWS KMS 的端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.kms,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

Apache Airflow 所需的 VPC 端点

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

将 VPC 端点连接到私有子网
  1. 打开 Amazon VPC 控制台的 端点页面

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

  3. 为 Apache Airflow API 创建端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.airflow.api,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

  4. 为 Apache Airflow 环境创建第一个端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.airflow.env,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

  5. 为 Apache Airflow 操作创建第二个端点:

    1. 选择创建端点

    2. 按属性筛选或按关键字搜索文本字段中,键入:.airflow.ops,然后按键盘上的 Enter

    3. 选择服务端点。

    4. 在 VPC 中选择环境的 Amazon VPC

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

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

    7. 策略中选择完全访问权限

    8. 选择创建端点

(可选)为 Amazon S3 VPC 接口端点启用私有 IP 地址

Amazon S3 接口端点不支持私有 DNS。S3 端点请求仍会解析为公有 IP 地址。要将 S3 地址解析为私有 IP 地址,您需要在 Route 53 中为 S3 区域端点添加私有托管区

使用 Route 53

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

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

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

  3. 为 Amazon S3 接口端点(例如,*. s3.eu-west-1.amazonaws.com)创建一个别名 A 通配符记录,该记录可解析为 VPC 接口端点 DNS 名称。

带有自定义 DNS 解析

如果 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