Accès à un MWAA environnement Amazon - 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 MWAA environnement Amazon

Pour utiliser Amazon Managed Workflows pour Apache Airflow, vous devez utiliser un compte et IAM des entités 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 MWAA ressources Amazon. Il est recommandé d'éviter d'associer des politiques directement à vos IAM utilisateurs et de définir des groupes ou des rôles pour fournir un accès temporaire aux AWS ressources.

Un IAMrôle est une IAM identité que vous pouvez créer dans votre compte et qui dispose d'autorisations spécifiques. Un IAM rôle est similaire à un IAM utilisateur 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 plus d'informations sur les rôles pour la fédération, voir Création d'un rôle pour un fournisseur d'identité tiers dans le guide de IAM l'utilisateur. Si vous utilisez IAM Identity Center, vous configurez un ensemble d'autorisations. Pour contrôler les accès auxquels vos identités peuvent accéder après leur authentification, IAM Identity Center met en corrélation l'ensemble d'autorisations avec un rôle dans. IAM Pour plus d’informations sur les jeux d’autorisations, consultez Jeux d’autorisations dans le Guide de l’utilisateur AWS IAM Identity Center .

Vous pouvez utiliser un IAM rôle dans votre compte pour accorder à une autre Compte AWS autorisation d'accéder aux ressources de votre compte. Pour un exemple, voir Tutoriel : déléguer l'accès entre les Comptes AWS utilisateurs de IAM rôles dans le Guide de IAM l'utilisateur.

Comment ça marche

Les ressources et services utilisés dans un MWAA environnement Amazon ne sont pas accessibles à toutes les AWS Identity and Access Management (IAM) entités. 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 l'environnement APIs utilisé par un environnement.

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

  • R mazonMWAAFull ConsoleAccess — Utilisez cette politique pour autoriser la configuration d'un environnement sur la MWAA console Amazon.

  • R mazonMWAAFull ApiAccess — Utilisez cette politique pour accorder l'accès à tous les Amazon MWAA APIs utilisés pour gérer un environnement.

  • R mazonMWAARead OnlyAccess — Utilisez cette politique pour autoriser l'accès aux ressources utilisées par un environnement sur la MWAA console Amazon.

  • R mazonMWAAWeb ServerAccess — Utilisez cette politique pour accorder l'accès au serveur Web Apache Airflow.

  • R mazonMWAAAirflow CliAccess — Utilisez cette politique pour autoriser l'accès à l'exécution des CLI commandes Apache Airflow.

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

Politique d'accès complète à la console : A mazonMWAAFull ConsoleAccess

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

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 MWAA service principal Amazon (airflow.amazonaws.com) comme le service auquel un rôle peut être transmis.

Pour plus d'informationsiam:PassRole, consultez la section Octroi à un utilisateur des autorisations lui permettant de transférer un rôle à un AWS service dans le Guide de IAM l'utilisateur.

Utilisez la politique suivante si vous souhaitez créer et gérer vos MWAA environnements Amazon à 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 MWAA environnements Amazon à 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 IAM principal 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 d'accès complet API et à la console : A mazonMWAAFull ApiAccess

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

Note

Une politique API d'accès complet 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 MWAA service principal Amazon (airflow.amazonaws.com) comme le service auquel un rôle peut être transmis.

Pour plus d'informationsiam:PassRole, consultez la section Octroi à un utilisateur des autorisations lui permettant de transférer un rôle à un AWS service dans le Guide de IAM l'utilisateur.

Utilisez la politique suivante si vous souhaitez créer et gérer vos MWAA environnements Amazon à 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 MWAA environnements Amazon à 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 IAM principal 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 : A mazonMWAARead OnlyAccess

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 MWAA console Amazon. 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 : A mazonMWAAWeb ServerAccess

Un utilisateur peut avoir besoin d'accéder à la politique d'AmazonMWAAWebServerAccessautorisations s'il a besoin d'accéder à l'interface utilisateur d'Apache Airflow. Il ne permet pas à l'utilisateur de visualiser les environnements sur la MWAA console Amazon ou d'utiliser Amazon MWAA APIs 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 IAM intégration avec les cinq rôles de contrôle d'accès basés 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.

CLIPolitique Apache Airflow : A mazonMWAAAirflow CliAccess

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "airflow:CreateCliToken" ], "Resource": "arn:aws:airflow:${Region}:${Account}:environment/${EnvironmentName}" } ] }

Création d'une JSON politique

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

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

  2. Choisissez Create Policy (Créer une politique).

  3. Choisissez l'JSONonglet.

  4. Ajoutez votre JSON politique.

  5. Choisissez Review policy (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 Create Policy (Créer une politique).

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

Supposons que vous utilisiez un groupe 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 groupeIAM, créer et associer ces politiques, et comment associer le groupe à un IAM utilisateur. Les étapes supposent que vous utilisez une clé que vous AWS possédez.

Pour créer la mazonMWAAFull ConsoleAccess politique A
  1. Téléchargez la politique d'mazonMWAAFullConsoleAccess accès A.

  2. Ouvrez la page Politiques sur la IAM console.

  3. Choisissez Create Policy (Créer une politique).

  4. Choisissez l'JSONonglet.

  5. Collez la JSON politique pourAmazonMWAAFullConsoleAccess.

  6. Remplacez les valeurs suivantes :

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

    2. {your-kms-id} — L'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 Create Policy (Créer une politique).

Pour créer la mazonMWAAWeb ServerAccess politique A
  1. Téléchargez la politique d'mazonMWAAWebServerAccess accès A.

  2. Ouvrez la page Politiques sur la IAM console.

  3. Choisissez Create Policy (Créer une politique).

  4. Choisissez l'JSONonglet.

  5. Collez la JSON politique pourAmazonMWAAWebServerAccess.

  6. Remplacez les valeurs suivantes :

    1. {your-region} — la région de votre MWAA environnement Amazon (telle queus-east-1)

    2. {your-account-id} — votre identifiant de AWS compte (tel que0123456789)

    3. {your-environment-name} — le nom de votre MWAA environnement Amazon (tel queMyAirflowEnvironment)

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

  7. Choisissez Review policy (Examiner une politique).

  8. Tapez AmazonMWAAWebServerAccess le nom.

  9. Choisissez Create Policy (Créer une politique).

Pour créer la mazonMWAAAirflow CliAccess politique A
  1. Téléchargez la politique d'mazonMWAAAirflowCliAccess accès A.

  2. Ouvrez la page Politiques sur la IAM console.

  3. Choisissez Create Policy (Créer une politique).

  4. Choisissez l'JSONonglet.

  5. Collez la JSON politique pourAmazonMWAAAirflowCliAccess.

  6. Choisissez la politique de révision.

  7. Tapez AmazonMWAAAirflowCliAccess le nom.

  8. Choisissez Create Policy (Créer une politique).

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

  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 IAM console.

  2. Choisissez un utilisateur.

  3. Choisissez Groupes.

  4. Choisissez Ajouter un utilisateur aux groupes.

  5. Sélectionnez le AirflowDevelopmentGroup.

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

Quelle est la prochaine étape ?