Accès à un environnement Amazon MWAA - Amazon Managed Workflows for Apache Airflow

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès à un environnement Amazon MWAA

Pour utiliser Amazon Managed Workflows pour Apache Airflow, vous devez utiliser un compte et des entités IAM disposant des autorisations nécessaires. Cette page décrit les politiques d'accès que vous pouvez appliquer à votre équipe de développement Apache Airflow et aux utilisateurs d'Apache Airflow pour votre environnement Amazon Managed Workflows for Apache Airflow.

Nous vous recommandons d'utiliser des informations d'identification temporaires et de configurer des identités fédérées avec des groupes et des rôles pour accéder à vos ressources Amazon MWAA. Il est recommandé d'éviter d'associer des politiques directement à vos utilisateurs IAM et de définir des groupes ou des rôles pour fournir un accès temporaire aux AWS ressources.

Un rôle IAM est une identité IAM que vous pouvez créer dans votre compte et qui dispose d’autorisations spécifiques. Un rôle IAM est similaire à un utilisateur IAM dans la mesure où il s'agit d'une AWS identité dotée de politiques d'autorisation qui déterminent ce que l'identité peut et ne peut pas faire. AWS En revanche, au lieu d'être associé de manière unique à une personne, un rôle est conçu pour être endossé par tout utilisateur qui en a besoin. En outre, un rôle ne dispose pas d’informations d’identification standard à long terme comme un mot de passe ou des clés d’accès associées. Au lieu de cela, lorsque vous adoptez un rôle, il vous fournit des informations d’identification de sécurité temporaires pour votre session de rôle.

Pour attribuer des autorisations à une identité fédérée, vous devez créer un rôle et définir des autorisations pour ce rôle. Quand une identité externe s’authentifie, l’identité est associée au rôle et reçoit les autorisations qui sont définies par celui-ci. Pour obtenir des informations sur les rôles pour la fédération, consultez Création d’un rôle pour un fournisseur d’identité tiers (fédération) dans le Guide de l’utilisateur IAM. Si vous utilisez IAM Identity Center, vous configurez un jeu d’autorisations. IAM Identity Center met en corrélation le jeu d’autorisations avec un rôle dans IAM afin de contrôler à quoi vos identités peuvent accéder après leur authentification. Pour plus d’informations sur les jeux d’autorisations, consultez la rubrique Jeux d’autorisations dans le Guide de l’utilisateur AWS IAM Identity Center .

Vous pouvez utiliser un rôle IAM dans votre compte pour accorder à d'autres Compte AWS autorisations d'accès aux ressources de votre compte. Par exemple, voir Tutoriel : déléguer l'accès à Comptes AWS l'aide de rôles IAM dans le Guide de l'utilisateur IAM.

Comment ça marche

Les ressources et services utilisés dans un environnement Amazon MWAA ne sont pas accessibles à toutes les entités AWS Identity and Access Management (IAM). Vous devez créer une politique qui autorise les utilisateurs d'Apache Airflow à accéder à ces ressources. Par exemple, vous devez autoriser l'accès à votre équipe de développement Apache Airflow.

Amazon MWAA utilise ces politiques pour vérifier si un utilisateur dispose des autorisations nécessaires pour effectuer une action sur la AWS console ou via les API utilisées par un environnement.

Vous pouvez utiliser les politiques JSON décrites dans cette rubrique pour créer une stratégie pour vos utilisateurs Apache Airflow dans IAM, puis associer la politique à un utilisateur, un groupe ou un rôle dans IAM.

  • FullConsoleAccès Amazon MWAA : utilisez cette politique pour autoriser la configuration d'un environnement sur la console Amazon MWAA.

  • FullApiAccès Amazon MWAA : utilisez cette politique pour accorder l'accès à toutes les API Amazon MWAA utilisées pour gérer un environnement.

  • ReadOnlyAccès Amazon MWAA : utilisez cette politique pour autoriser l'accès à l'affichage des ressources utilisées par un environnement sur la console Amazon MWAA.

  • WebServerAccès AmazonMWAA — Utilisez cette politique pour accorder l'accès au serveur Web Apache Airflow.

  • AirflowCliAccès AmazonMWAA : utilisez cette politique pour autoriser l'accès à l'exécution des commandes de la CLI Apache Airflow.

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Politique d'accès complète à la console : Amazon MWAA Access FullConsole

Un utilisateur peut avoir besoin d'accéder à la politique d'AmazonMWAAFullConsoleAccessautorisations s'il doit configurer un environnement sur la console Amazon MWAA.

Note

Votre politique d'accès à la console complète doit inclure des autorisations d'exécutioniam:PassRole. Cela permet à l'utilisateur de transmettre des rôles liés aux services et des rôles d'exécution à Amazon MWAA. Amazon MWAA assume chaque rôle afin d'appeler d'autres AWS services en votre nom. L'exemple suivant utilise la clé de iam:PassedToService condition pour spécifier le principal de service Amazon MWAA (airflow.amazonaws.com) en tant que service auquel un rôle peut être transmis.

Pour plus d'informationsiam:PassRole, consultez la section Accorder à un utilisateur l'autorisation de transmettre un rôle à un AWS service dans le Guide de l'utilisateur IAM.

Appliquez la politique suivante si vous souhaitez créer et gérer vos environnements Amazon MWAA à l'aide d'un système Clé détenue par AWSde chiffrement au repos.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:CreatePolicy" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:policy/service-role/MWAA-Execution-Policy*" }, { "Effect":"Allow", "Action":[ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:role/service-role/AmazonMWAA*" }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketVersions" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:PutObject", "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup" ], "Resource":"arn:aws:ec2:*:*:security-group/airflow-security-group-*" }, { "Effect":"Allow", "Action":[ "kms:ListAliases" ], "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

Appliquez la politique suivante si vous souhaitez créer et gérer vos environnements Amazon MWAA à l'aide d'une clé gérée par le client pour le chiffrement au repos. Pour utiliser une clé gérée par le client, le principal IAM doit être autorisé à accéder aux AWS KMS ressources à l'aide de la clé enregistrée dans votre compte.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:CreatePolicy" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:policy/service-role/MWAA-Execution-Policy*" }, { "Effect":"Allow", "Action":[ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource":"arn:aws:iam::YOUR_ACCOUNT_ID:role/service-role/AmazonMWAA*" }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:ListBucketVersions" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:CreateBucket", "s3:PutObject", "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup" ], "Resource":"arn:aws:ec2:*:*:security-group/airflow-security-group-*" }, { "Effect":"Allow", "Action":[ "kms:ListAliases" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource":"arn:aws:kms:*:YOUR_ACCOUNT_ID:key/YOUR_KMS_ID" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

Politique complète d'accès à l'API et à la console : Amazon MWAA Access FullApi

Un utilisateur peut avoir besoin d'accéder à la politique AmazonMWAAFullApiAccess d'autorisations s'il a besoin d'accéder à toutes les API Amazon MWAA utilisées pour gérer un environnement. Il n'accorde pas d'autorisations pour accéder à l'interface utilisateur d'Apache Airflow.

Note

Une politique d'accès complète à l'API doit inclure des autorisations d'exécutioniam:PassRole. Cela permet à l'utilisateur de transmettre des rôles liés aux services et des rôles d'exécution à Amazon MWAA. Amazon MWAA assume chaque rôle afin d'appeler d'autres AWS services en votre nom. L'exemple suivant utilise la clé de iam:PassedToService condition pour spécifier le principal de service Amazon MWAA (airflow.amazonaws.com) en tant que service auquel un rôle peut être transmis.

Pour plus d'informationsiam:PassRole, consultez la section Accorder à un utilisateur l'autorisation de transmettre un rôle à un AWS service dans le Guide de l'utilisateur IAM.

Appliquez la politique suivante si vous souhaitez créer et gérer vos environnements Amazon MWAA à l'aide d'un système Clé détenue par AWS de chiffrement au repos.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

Appliquez la politique suivante si vous souhaitez créer et gérer vos environnements Amazon MWAA à l'aide d'une clé gérée par le client pour le chiffrement au repos. Pour utiliser une clé gérée par le client, le principal IAM doit être autorisé à accéder aux AWS KMS ressources à l'aide de la clé enregistrée dans votre compte.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"airflow:*", "Resource":"*" }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"airflow.amazonaws.com" } } }, { "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"arn:aws:iam::*:role/aws-service-role/airflow.amazonaws.com/AWSServiceRoleForAmazonMWAA" }, { "Effect":"Allow", "Action":[ "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeRouteTables" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource":"arn:aws:kms:*:YOUR_ACCOUNT_ID:key/YOUR_KMS_ID" }, { "Effect":"Allow", "Action":[ "s3:GetEncryptionConfiguration" ], "Resource":"arn:aws:s3:::*" }, { "Effect":"Allow", "Action":"ec2:CreateVpcEndpoint", "Resource":[ "arn:aws:ec2:*:*:vpc-endpoint/*", "arn:aws:ec2:*:*:vpc/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface" ], "Resource":[ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:network-interface/*" ] } ] }

Politique d'accès à la console en lecture seule : Amazon MWAA Access ReadOnly

Un utilisateur peut avoir besoin d'accéder à la politique d'AmazonMWAAReadOnlyAccessautorisations s'il doit consulter les ressources utilisées par un environnement sur la page de détails de l'environnement de la console Amazon MWAA. Il n'autorise pas un utilisateur à créer de nouveaux environnements, à modifier des environnements existants ou à consulter l'interface utilisateur d'Apache Airflow.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "airflow:ListEnvironments", "airflow:GetEnvironment", "airflow:ListTagsForResource" ], "Resource": "*" } ] }

Politique d'accès à l'interface utilisateur d'Apache Airflow : Amazon WebServer MWAA Access

Un utilisateur peut avoir besoin d'accéder à la politique AmazonMWAAWebServerAccess d'autorisations pour accéder à l'interface utilisateur d'Apache Airflow. Il ne permet pas à l'utilisateur de visualiser les environnements sur la console Amazon MWAA ou d'utiliser les API Amazon MWAA pour effectuer des actions. Spécifiez le AdminOp,User, Viewer ou le Public rôle dans {airflow-role} pour personnaliser le niveau d'accès pour l'utilisateur du jeton Web. Pour plus d'informations, consultez la section Rôles par défaut dans le guide de référence d'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}/{airflow-role}" ] } ] }
Note

Amazon MWAA fournit une intégration IAM avec les cinq rôles de contrôle d'accès basé sur les rôles (RBAC) par défaut d'Apache Airflow. Pour plus d'informations sur l'utilisation de rôles Apache Airflow personnalisés, consultezTutoriel : Restreindre l'accès d'un utilisateur Amazon MWAA à un sous-ensemble de DAG.

Politique de la CLI Apache Airflow : Accès Amazon AirflowCli MWAA

Un utilisateur peut avoir besoin d'accéder à la politique AmazonMWAAAirflowCliAccess d'autorisations s'il doit exécuter des commandes de la CLI Apache Airflow (telles quetrigger_dag). Il ne permet pas à l'utilisateur de visualiser les environnements sur la console Amazon MWAA ou d'utiliser les API Amazon MWAA pour effectuer des actions.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "airflow:CreateCliToken" ], "Resource": "*" } ] }

Création d'une politique JSON

Vous pouvez créer la politique JSON et l'associer à votre utilisateur, rôle ou groupe sur la console IAM. Les étapes suivantes décrivent comment créer une politique JSON dans IAM.

Pour créer la politique JSON
  1. Ouvrez la page Politiques sur la console IAM.

  2. Sélectionnez Créer une politique.

  3. Choisissez l'onglet JSON.

  4. Ajoutez votre politique JSON.

  5. Choisissez Examiner une politique.

  6. Entrez une valeur dans le champ de texte pour le nom et la description (facultatif).

    Par exemple, vous pouvez donner un nom à la politiqueAmazonMWAAReadOnlyAccess.

  7. Choisissez Créer une politique.

Exemple de cas d'utilisation pour associer des politiques à un groupe de développeurs

Supposons que vous utilisiez un groupe dans IAM nommé AirflowDevelopmentGroup pour appliquer des autorisations à tous les développeurs de votre équipe de développement Apache Airflow. Ces utilisateurs doivent avoir accès aux politiques de AmazonMWAAFullConsoleAccessAmazonMWAAAirflowCliAccess, et AmazonMWAAWebServerAccess d'autorisation. Cette section décrit comment créer un groupe dans IAM, créer et associer ces politiques, et comment associer le groupe à un utilisateur IAM. Les étapes supposent que vous utilisez une clé que vous AWS possédez.

Pour créer la politique AmazonMWA FullConsoleAccess
  1. Téléchargez la politique d'FullConsoleAccess accès d'Amazon MWAA.

  2. Ouvrez la page Politiques sur la console IAM.

  3. Sélectionnez Créer une politique.

  4. Choisissez l'onglet JSON.

  5. Collez la politique JSON pourAmazonMWAAFullConsoleAccess.

  6. Remplacez les valeurs suivantes :

    1. {your-account-id} — Votre identifiant de AWS compte (tel que) 0123456789

    2. {your-kms-id} — Identifiant unique d'une clé gérée par le client, applicable uniquement si vous utilisez une clé gérée par le client pour le chiffrement au repos.

  7. Choisissez la politique de révision.

  8. Tapez AmazonMWAAFullConsoleAccess le nom.

  9. Choisissez Créer une politique.

Pour créer la politique AmazonMWA WebServerAccess
  1. Téléchargez la politique d'WebServerAccess accès d'Amazon MWAA.

  2. Ouvrez la page Politiques sur la console IAM.

  3. Sélectionnez Créer une politique.

  4. Choisissez l'onglet JSON.

  5. Collez la politique JSON pourAmazonMWAAWebServerAccess.

  6. Remplacez les valeurs suivantes :

    1. {your-region} : région de votre environnement Amazon MWAA (telle que) us-east-1

    2. {your-account-id} : votre identifiant de AWS compte (tel que) 0123456789

    3. {your-environment-name} : le nom de votre environnement Amazon MWAA (tel que) MyAirflowEnvironment

    4. {airflow-role} — le rôle par défaut d'AdminApache Airflow

  7. Choisissez Examiner une politique.

  8. Tapez AmazonMWAAWebServerAccess le nom.

  9. Choisissez Créer une politique.

Pour créer la politique AmazonMWA AirflowCliAccess
  1. Téléchargez la politique d'AirflowCliAccess accès d'Amazon MWAA.

  2. Ouvrez la page Politiques sur la console IAM.

  3. Sélectionnez Créer une politique.

  4. Choisissez l'onglet JSON.

  5. Collez la politique JSON pourAmazonMWAAAirflowCliAccess.

  6. Choisissez la politique de révision.

  7. Tapez AmazonMWAAAirflowCliAccess le nom.

  8. Choisissez Créer une politique.

Pour créer le groupe
  1. Ouvrez la page Groupes sur la console IAM.

  2. Entrez le nom deAirflowDevelopmentGroup.

  3. Choisissez Étape suivante.

  4. Tapez AmazonMWAA pour filtrer les résultats dans Filtrer.

  5. Sélectionnez les trois politiques que vous avez créées.

  6. Choisissez Étape suivante.

  7. Choisissez Create Group.

Pour l'associer à un utilisateur
  1. Ouvrez la page Utilisateurs sur la console IAM.

  2. Choisissez un utilisateur.

  3. Choisissez Groupes.

  4. Choisissez Ajouter un utilisateur aux groupes.

  5. Sélectionnez le AirflowDevelopmentgroupe.

  6. Choisissez Add to Groups (Ajouter aux groupes).

Quelle est la prochaine étape ?