如何在 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