如何在 AWS Managed Workflows for Apache Airflow 中启用 API?

Posted

技术标签:

【中文标题】如何在 AWS Managed Workflows for Apache Airflow 中启用 API?【英文标题】:How to enable the API in AWS Managed Workflows for Apache Airflow? 【发布时间】:2021-05-26 10:10:47 【问题描述】:

我正在通过Managed Workflows for Apache Airflow (MWAA) 在 AWS 上运行Apache Airflow 进行测试。 AWS 为我部署和管理的 Airflow 版本是 1.10.12

当我尝试在 /api/experimental/test 访问 v1 REST API 时,我得到了状态代码 403 Forbidden

是否可以在 MWAA 中启用实验性 API?怎么样?

【问题讨论】:

【参考方案1】:

我认为 MWAA 提供了一个 REST 端点来使用 CLI

https://$WEB_SERVER_HOSTNAME/aws_mwaa/cli

这很令人困惑,因为您首先需要使用 awscli 创建一个 cli-token,然后使用该令牌访问端点。您将需要一个策略来允许您的 awscli 请求该令牌。 最后,并不是所有的命令都支持,只是一堆。

无论如何,这一切都在用户指南中进行了解释 https://docs.aws.amazon.com/mwaa/latest/userguide/amazon-mwaa-user-guide.pdf

【讨论】:

【参考方案2】:

默认情况下,api.auth_backend 配置选项在 MWAA 环境中设置为 airflow.api.auth.backend.deny_all。您需要将其覆盖为documentation中提到的一种身份验证方法,如下图所示:

注意:强烈建议不要使用airflow.api.auth.backend.default,因为它会 让您的环境可公开访问。

[2021/07/29] 编辑: 基于此comment,AWS 阻止了对 REST API 的访问。

【讨论】:

谢谢@hedi-bejaoui。也许我的问题不够清楚。我正试图在 MWAA 中专门完成这项工作。我无法在 MWAA 设置页面中设置 AIRFLOW__API__AUTH_BACKEND,所以我想问是否有其他方法可以让我在 MWAA 中打开 API。 @urig 我收到了你的问题,因为我也处于类似的位置,可能我的答案不是那么清楚。为了覆盖airflow.cfg 文件中的任何配置,您需要指定部分(括号之间的部分)后跟配置名称,如下所示:api.auth_backend。 @urig 以上截图来自MWAA设置界面。 这真的可能吗?在 MWAA v2.0.2 中,尝试启用此设置时,我得到Some of the provided configurations belong to the blocklist and can not be applied: api.auth_backend.。是否有其他方法可以在 AWS MWAA 上启用/访问 Airflow API?

以上是关于如何在 AWS Managed Workflows for Apache Airflow 中启用 API?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Managed ElasticSearch 上的弹性传输客户端

将 Google 的 SSO 与 AWS Managed Grafana 一起使用并获得:Failed to save the SAML received information

如何查看 AWS Batch 计算环境错误?

managed_schema

如何在使用managed = False的Django测试期间创建表

boost::interprocess::managed_mapped_file 如何包含弹性向量?