Tutorial: Restricciones de acceso de los usuarios de Amazon MWAA a un subconjunto de DAG - Amazon Managed Workflows para Apache Airflow

Tutorial: Restricciones de acceso de los usuarios de Amazon MWAA a un subconjunto de DAG

Amazon MWAA gestiona el acceso a su entorno asignando sus entidades principales de IAM a uno o más roles predeterminados de Apache Airflow. El siguiente tutorial muestra cómo puede lograr que los usuarios individuales de Amazon MWAA solo vean o interactúen con un DAG o un conjunto de DAG en concreto.

nota

Los pasos de este tutorial se pueden seguir con acceso federado, siempre que haya roles de IAM.

Requisitos previos

Para completar los pasos de este tutorial, deberá tener lo siguiente:

Paso 1: dé acceso al servidor web de Amazon MWAA a su entidad principal de IAM con el rol predeterminado Public de Apache Airflow.

Cómo conceder permiso mediante la AWS Management Console
  1. Inicie sesión en la cuenta de AWS con permisos de Admin y abra la consola de IAM.

  2. En el panel de navegación izquierdo, elija Usuarios y, a continuación, elija su usuario de IAM de Amazon MWAA en la tabla de usuarios.

  3. En la página de información de usuario, en Resumen, vaya a la pestaña Permisos, luego a Políticas de permisos para expandir la tarjeta y seleccione Agregar permisos.

  4. En la sección Configurar permisos, elija Adjuntar directamente las políticas existentes y, a continuación, Crear política.

  5. En la página Crear política, elija JSON y, a continuación, copie y pegue la siguiente política de permisos de JSON en el editor de políticas. Esta política da acceso al servidor web al usuario con el rol predeterminado Public de 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" ] } ] }

Paso 2: crear un nuevo rol personalizado de Apache Airflow

Pasos para crear un nuevo rol mediante la interfaz de usuario de Apache Airflow
  1. Con su rol de IAM de administrador, abra la consola de Amazon MWAA e inicie la interfaz de usuario de Apache Airflow de su entorno.

  2. En el panel de navegación de la parte superior, pase el cursor por Seguridad para abrir la lista desplegable y, a continuación, seleccione Mostrar roles para ver los roles predeterminados de Apache Airflow.

  3. En la lista de roles, elija Usuario y, en la parte superior de la página, Acciones para abrir el menú desplegable. Elija Copiar rol y confirme con Aceptar

    nota

    Copie los roles de Operaciones o Lector para conceder más o menos accesos, respectivamente.

  4. Localice el nuevo rol que creó en la tabla y elija Editar el registro.

  5. En la página Cambiar el rol, haga lo siguiente:

    • En Nombre, indique un nombre nuevo para el rol en el campo de texto. Por ejemplo, Restricted.

    • En la lista Permisos, elimine can read on DAGs y can edit on DAGs, y, a continuación, agregue los permisos de lectura y escritura para el conjunto de DAG al que desee proporcionar acceso. Por ejemplo, para un DAG, example_dag.py, añada can read on DAG:example_dag y can edit on DAG:example_dag.

    Seleccione Guardar. Ahora debería tener un nuevo rol que limite el acceso a un subconjunto de DAG disponibles en su entorno de Amazon MWAA. Ya puede asignar este rol a cualquier usuario existente de Apache Airflow.

Paso 3: asigne el rol que creó a su usuario de Amazon MWAA

Pasos para asignar el nuevo rol
  1. Con las credenciales de acceso de MWAAUser, ejecute el siguiente comando de la CLI para recuperar la URL del servidor web del entorno.

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

    Si todo va bien, obtendrá el siguiente resultado:

    "ab1b2345-678a-90a1-a2aa-34a567a8a901.c13.us-west-2.airflow.amazonaws.com"
  2. Una vez que MWAAUser haya iniciado sesión en la AWS Management Console, abra una nueva ventana del navegador y acceda a la URL siguiente. Modifique el Webserver-URL añadiendo su información.

    https://<Webserver-URL>/home

    Si todo va bien, verá una página de error de Forbidden. Eso es porque MWAAUser todavía no tiene permiso para acceder a la interfaz de usuario de Apache Airflow.

  3. Una vez que Admin haya iniciado sesión en la AWS Management Console, vuelva a abrir la consola de Amazon MWAA e inicie la interfaz de usuario de Apache Airflow de su entorno.

  4. Desde el panel de la interfaz de usuario, expanda el menú desplegable Seguridad y, esta vez, seleccione Mostrar usuarios.

  5. En la tabla de usuarios, busque el nuevo usuario de Apache Airflow y seleccione Editar el registro. El nombre del usuario coincidirá con su nombre de usuario de IAM según el patrón siguiente: user/mwaa-user.

  6. En la página Editar el usuario, en la sección Rol, añada el nuevo rol personalizado que ha creado y, finalmente, proceda a Guardar.

    nota

    El campo de apellido es obligatorio, pero se puede rellenar añadiendo solo un espacio.

    La entidad principal Public de IAM concede el permiso MWAAUser para acceder a la interfaz de usuario de Apache Airflow, mientras que el nuevo rol proporciona los permisos adicionales necesarios para ver sus DAG.

importante

Cualquiera de los 5 roles predeterminados (por ejemplo, Admin) no autorizados por IAM y que se agreguen mediante la interfaz de usuario de Apache Airflow se eliminará la próxima vez que el usuario inicie sesión.

Siguientes pasos

  • Consulte Acceso a un entorno de Amazon MWAA para más información sobre la gestión del acceso a su entorno Amazon MWAA y para ver ejemplos de políticas de IAM en JSON que puede utilizar para los usuarios de su entorno.

  • Control de acceso (documentación de Apache Airflow): obtenga más información sobre los roles predeterminados de Apache Airflow en el sitio web de documentación de Apache Airflow.