教程:限制 Amazon MWAA 用户对部分 DAG 的访问权限
Amazon MWAA 通过将 IAM 主体映射到一个或多个 Apache Airflow 的默认角色
注意
只要可以担任 IAM 角色,就可以使用联合访问完成本教程中的步骤。
主题
先决条件
要完成本教程中的步骤,您需要做好以下准备:
-
具有AdministratorAccess
权限的 IAM 主体 Admin和可以作为限制 DAG 访问权限的主体的 IAM 用户MWAAUser。有关管理员角色的更多信息,请参阅《IAM 用户指南》中的管理员任务函数。注意
请勿将权限策略直接附加到 IAM 用户。我们建议设置用户可以代入的 IAM 角色来临时访问 Amazon MWAA 资源。
步骤 1:使用默认 Public Apache Airflow 角色向 IAM 主体提供 Amazon MWAA Web 服务器访问权限。
要授予权限,请使用 AWS 管理控制台
-
使用
Admin角色登录 AWS 账户,并打开 IAM 控制台。 -
在左侧导航窗格中,选择用户,然后从用户表中选择 Amazon MWAA IAM 用户。
-
在用户详细信息页面的摘要下,选择权限选项卡,然后选择权限策略以展开卡片并选择添加权限。
-
在设置权限部分中,选择直接附加现有策略,然后选择创建策略。
-
在创建策略页面上,选择 JSON,然后将以下 JSON 权限策略复制并粘贴到策略编辑器中。该策略向具有默认
PublicApache Airflow 角色的用户授予 Web 服务器访问权限。
步骤 2:创建新的 Apache Airflow 自定义角色
使用 Apache Airflow UI 创建新角色
-
使用管理员 IAM 角色,打开 Amazon MWAA 控制台
并启动环境的 Apache Airflow UI。 -
在顶部的导航窗格中,将鼠标悬停在安全上以打开下拉列表,然后选择列出角色以访问默认的 Apache Airflow 角色。
-
从角色列表中选择用户,然后在页面顶部选择操作以打开下拉列表。选择复制角色,然后确认确定
注意
复制操作或查看者角色以分别授予或多或少的访问权限。
-
在表格中找到您创建的新角色,然后选择编辑记录。
-
在切换角色页面上,执行以下操作:
-
对于名称,在文本字段中输入角色的新名称。例如
Restricted。 -
对于权限列表,请移除
can read on DAGs和can edit on DAGs,然后为要提供访问权限的一组 DAG 添加读写权限。例如,对于 DAGexample_dag.py,添加和can read on DAG:example_dag。can edit on DAG:example_dag
选择保存。现在,您拥有一个新角色,该角色可以限制对 Amazon MWAA 环境中可用的部分 DAG 的访问权限。您可以将此角色分配给任何现有的 Apache Airflow 用户。
-
步骤 3:将您创建的角色分配给 Amazon MWAA 用户
分配新角色
-
使用
MWAAUser的访问凭证,运行以下 CLI 命令来检索环境的 Web 服务器 URL。aws mwaa get-environment --nameYOUR_ENVIRONMENT_NAME| jq '.Environment.WebserverUrl'如果成功,您将看到以下输出内容:
"ab1b2345-678a-90a1-a2aa-34a567a8a901.c13.us-west-2.airflow.amazonaws.com"
-
MWAAUser登录 AWS 管理控制台 后,打开新的浏览器窗口并访问以下 URL。将Webserver-URL替换为您的信息。https://<Webserver-URL>/home如果成功,您将收到一个
Forbidden错误页面,因为MWAAUser尚未获得访问 Apache Airflow UI 的权限。 -
Admin登录 AWS 管理控制台 后,再次打开 Amazon MWAA 控制台并启动环境的 Apache Airflow UI。 -
在 UI 控制面板中,展开安全下拉列表,这次选择列出用户。
-
在用户表中,找到新的 Apache Airflow 用户并选择编辑记录。用户的名字将按以下模式匹配 IAM 用户名:
user/。mwaa-user -
在编辑用户页面的角色部分,添加您创建的新自定义角色,然后选择保存。
注意
姓氏字段是必填字段,但空格可以满足要求。
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 角色的更多信息。