教程:限制 Amazon MWAA 用户对部分 DAG 的访问权限 - Amazon Managed Workflows for Apache Airflow

教程:限制 Amazon MWAA 用户对部分 DAG 的访问权限

Amazon MWAA 通过将 IAM 主体映射到一个或多个 Apache Airflow 的默认角色来管理对环境的访问权限。根据以下教程限制个人 Amazon MWAA 用户只能访问特定的 DAG 或一组 DAG 并与之交互。

注意

只要可以担任 IAM 角色,就可以使用联合访问完成本教程中的步骤。

先决条件

要完成本教程中的步骤,您需要做好以下准备:

步骤 1:使用默认 Public Apache Airflow 角色向 IAM 主体提供 Amazon MWAA Web 服务器访问权限。

要授予权限,请使用 AWS 管理控制台
  1. 使用 Admin 角色登录 AWS 账户,并打开 IAM 控制台

  2. 在左侧导航窗格中,选择用户,然后从用户表中选择 Amazon MWAA IAM 用户。

  3. 在用户详细信息页面的摘要下,选择权限选项卡,然后选择权限策略以展开卡片并选择添加权限

  4. 设置权限部分中,选择直接附加现有策略,然后选择创建策略

  5. 创建策略页面上,选择 JSON,然后将以下 JSON 权限策略复制并粘贴到策略编辑器中。该策略向具有默认 Public Apache Airflow 角色的用户授予 Web 服务器访问权限。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "airflow:CreateWebLoginToken", "Resource": [ "arn:aws:airflow:us-east-1:111122223333:role/YOUR_ENVIRONMENT_NAME/Public" ] } ] }

步骤 2:创建新的 Apache Airflow 自定义角色

使用 Apache Airflow UI 创建新角色
  1. 使用管理员 IAM 角色,打开 Amazon MWAA 控制台并启动环境的 Apache Airflow UI。

  2. 在顶部的导航窗格中,将鼠标悬停在安全上以打开下拉列表,然后选择列出角色以访问默认的 Apache Airflow 角色。

  3. 从角色列表中选择用户,然后在页面顶部选择操作以打开下拉列表。选择复制角色,然后确认确定

    注意

    复制操作查看者角色以分别授予或多或少的访问权限。

  4. 在表格中找到您创建的新角色,然后选择编辑记录

  5. 切换角色页面上,执行以下操作:

    • 对于名称,在文本字段中输入角色的新名称。例如 Restricted

    • 对于权限列表,请移除 can read on DAGscan edit on DAGs,然后为要提供访问权限的一组 DAG 添加读写权限。例如,对于 DAG example_dag.py,添加 can read on DAG:example_dagcan edit on DAG:example_dag

    选择保存。现在,您拥有一个新角色,该角色可以限制对 Amazon MWAA 环境中可用的部分 DAG 的访问权限。您可以将此角色分配给任何现有的 Apache Airflow 用户。

步骤 3:将您创建的角色分配给 Amazon MWAA 用户

分配新角色
  1. 使用 MWAAUser 的访问凭证,运行以下 CLI 命令来检索环境的 Web 服务器 URL。

    aws mwaa get-environment --name YOUR_ENVIRONMENT_NAME | jq '.Environment.WebserverUrl'

    如果成功,您将看到以下输出内容:

    "ab1b2345-678a-90a1-a2aa-34a567a8a901.c13.us-west-2.airflow.amazonaws.com"
  2. MWAAUser 登录 AWS 管理控制台 后,打开新的浏览器窗口并访问以下 URL。将 Webserver-URL 替换为您的信息。

    https://<Webserver-URL>/home

    如果成功,您将收到一个 Forbidden 错误页面,因为 MWAAUser 尚未获得访问 Apache Airflow UI 的权限。

  3. Admin 登录 AWS 管理控制台 后,再次打开 Amazon MWAA 控制台并启动环境的 Apache Airflow UI。

  4. 在 UI 控制面板中,展开安全下拉列表,这次选择列出用户

  5. 在用户表中,找到新的 Apache Airflow 用户并选择编辑记录。用户的名字将按以下模式匹配 IAM 用户名:user/mwaa-user

  6. 编辑用户页面的角色部分,添加您创建的新自定义角色,然后选择保存

    注意

    姓氏字段是必填字段,但空格可以满足要求。

    IAM Public 主体授予访问 Apache Airflow UI 的 MWAAUser 权限,而新角色提供获得其 DAG 所需的额外权限。

重要

使用 Apache Airflow UI 添加的 5 个未经 IAM 授权的默认角色(例如 Admin)中的任何一个都将在用户下次登录时移除。

后续步骤

  • 要了解有关管理 Amazon MWAA 环境访问权限的更多信息,并获得可供环境用户使用的 JSON IAM 策略示例,请参阅 访问 Amazon MWAA 环境

  • 访问控制(Apache Airflow 文档)— 在 Apache Airflow 文档网站上了解有关默认 Apache Airflow 角色的更多信息。