Comment puis-je utiliser les autorisations basées sur les rôles IAM pour accéder au DAG dans Amazon MWAA ? 

Lecture de 3 minute(s)
0

Je souhaite utiliser les autorisations basées sur les rôles AWS Identity and Access Management (IAM) pour accéder à un graphe acyclique dirigé (DAG) dans Amazon Managed Workflows pour Apache Airflow (Amazon MWAA).

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), reportez-vous à la section Résolution d’erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.

Créer une stratégie IAM personnalisée pour autoriser l'accès au serveur Web

Pour créer une stratégie IAM personnalisée qui accorde l'accès au serveur Web à l'utilisateur ou au rôle IAM, utilisez le rôle public Apache Airflow par défaut.

Utilisez le document de stratégie JSON suivant pour créer la stratégie IAM :

{
    "Version": "2012-10-17",
    "Statement": [
        {
        "Effect": "Allow",
        "Action": "airflow:CreateWebLoginToken",
        "Resource": [
            "arn:aws:airflow:example-region:example-account-id:role/example-environment/Public"
            ]
        }
    ]
 }

Remarque : Remplacez example-region par votre région AWS, example-account-id par votre ID de compte et example-environment par le nom de votre environnement.

Puis, ajoutez la stratégie à l'utilisateur ou au rôle IAM. Assurez-vous que le rôle ou l’utilisateur IAM se connecte à Apache Airflow au moins une fois.

Créer un rôle RBAC Airflow personnalisé

Procédez comme suit :

  1. Utilisez un rôle d'administrateur pour accéder à votre interface utilisateur Apache Airflow.
  2. Pour Sécurité, sélectionnez Répertorier les rôles pour afficher les rôles Apache Airflow par défaut.
  3. Choisissez un rôle, puis sélectionnez Copier le rôle.
  4. Dans le tableau Utilisateurs, localisez le rôle, puis sélectionnez Modifier l'enregistrement.
  5. Sur la page Modifier, apportez les modifications suivantes :
    Mettez à jour le nom du rôle avec une valeur valide.
    Pour Autorisations, supprimez peut lire sur les DAG et peut modifier sur les Dags.
    Ajoutez des autorisations de lecture et d'écriture pour les DAG auxquels vous souhaitez accorder l'accès.
    Sélectionnez Enregistrer.

Remarque : Vous pouvez également utiliser des API pour créer un nouveau rôle Airflow de contrôle d'accès basé sur des rôles (RBAC). Pour plus d'informations, consultez la page amazon-mwaa-examples sur le site web de GitHub.

Attribuer le rôle Airflow

Procédez comme suit :

  1. Ouvrez la console Amazon MWAA.
  2. Utilisez le rôle IAM pour exécuter la commande get-environment :
    aws mwaa get-environment --name example-environment | jq '.Environment.WebserverUrl'
    Remarque : Remplacez example-environment par le nom de votre environnement. Notez l'URL du serveur Web dans la sortie de la commande.
  3. Ouvrez une nouvelle fenêtre de navigateur, puis saisissez l'URL du serveur Web :
    https://example-webserver-url/home
    Remarque : Remplacez example-webserver-URL par l'URL du serveur Web.
  4. Vérifiez qu'une erreur Forbidden apparaît.
    Remarque : Cette erreur est due au fait que vous avez attribué au nouveau rôle un rôle public Airflow ne disposant pas des autorisations requises.
  5. Utilisez un rôle d'administrateur pour accéder à l'interface utilisateur Apache Airflow de votre environnement.
  6. Pour Sécurité, sélectionnez Répertorier les utilisateurs.
  7. Dans le tableau Utilisateurs, localisez votre utilisateur ou rôle Apache Airflow, puis sélectionnez Modifier l'enregistrement. Le prénom de l'utilisateur doit correspondre à votre nom d'utilisateur IAM au format user/customUser.
  8. Dans la section Rôle de la page Modifier l’utilisateur, ajoutez le rôle.
  9. Sélectionnez Enregistrer.

Le rôle public IAM accorde à customUser les autorisations nécessaires pour accéder à l'interface utilisateur d'Apache Airflow et afficher les DAG.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois