教程:限制 Amazon MWAA 用户对部分 DAG 的访问权限 - Amazon Managed Workflows for Apache Airflow
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

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

注意

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

先决条件

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

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

要授予权限,请使用 Amazon Web Services Management Console
  1. 使用 Admin 角色登录 Amazon 账户,并打开 IAM 控制台

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

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

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "airflow:CreateWebLoginToken", "Resource": [ "arn:aws:airflow:YOUR_REGION:YOUR_ACCOUNT_ID: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

    选择 Save(保存)。现在,您应该拥有一个新角色,该角色可以限制对 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 登录 Amazon Web Services Management Console 后,打开新的浏览器窗口并访问以下 URL。将 Webserver-URL 替换为您的信息。

    https://<Webserver-URL>/home

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

  3. Admin 登录 Amazon Web Services Management Console 后,再次打开 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 policies 示例,请参阅 访问 Amazon MWAA 环境

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