Accesso a un ambiente Amazon MWAA - Amazon Managed Workflows for Apache Airflow

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accesso a un ambiente Amazon MWAA

Per utilizzare Amazon Managed Workflows for Apache Airflow, devi utilizzare un account e entità IAM con le autorizzazioni necessarie. Questa pagina descrive le politiche di accesso che puoi collegare al tuo team di sviluppo di Apache Airflow e agli utenti di Apache Airflow per il tuo ambiente Amazon Managed Workflows for Apache Airflow.

Ti consigliamo di utilizzare credenziali temporanee e configurare identità federate con gruppi e ruoli per accedere alle tue risorse Amazon MWAA. Come best practice, evita di associare le policy direttamente agli utenti IAM e definisci invece gruppi o ruoli per fornire un accesso temporaneo alle risorse. AWS

Un ruolo IAM è un'identità IAM che puoi creare nel tuo account e che dispone di autorizzazioni specifiche. Un ruolo IAM è simile a quello di un utente IAM in quanto è un' AWS identità con policy di autorizzazioni che determinano ciò in cui l'identità può e non può fare. AWS Tuttavia, invece di essere associato in modo univoco a una persona, un ruolo è destinato a essere assunto da chiunque. Inoltre, un ruolo non ha credenziali a lungo termine standard associate (password o chiavi di accesso). Tuttavia, quando assumi un ruolo, vengono fornite le credenziali di sicurezza provvisorie per la sessione del ruolo.

Per assegnare le autorizzazioni a un'identità federata, si crea un ruolo e si definiscono le autorizzazioni per il ruolo. Quando un'identità federata viene autenticata, l'identità viene associata al ruolo e ottiene le autorizzazioni da esso definite. Per ulteriori informazioni sulla federazione dei ruoli, consulta Creazione di un ruolo per un provider di identità di terza parte nella Guida per l'utente IAM. Se utilizzi IAM Identity Center, configura un set di autorizzazioni. IAM Identity Center mette in correlazione il set di autorizzazioni con un ruolo in IAM per controllare a cosa possono accedere le identità dopo l'autenticazione. Per informazioni sui set di autorizzazioni, consulta Set di autorizzazioni nella Guida per l'utente di AWS IAM Identity Center .

Puoi utilizzare un ruolo IAM nel tuo account per concedere altre Account AWS autorizzazioni per accedere alle risorse del tuo account. Per un esempio, consulta Tutorial: Delegate l'accesso attraverso l' Account AWS utilizzo dei ruoli IAM nella IAM User Guide.

Come funziona

Le risorse e i servizi utilizzati in un ambiente Amazon MWAA non sono accessibili a tutte le entità AWS Identity and Access Management (IAM). È necessario creare una policy che conceda agli utenti di Apache Airflow l'autorizzazione ad accedere a queste risorse. Ad esempio, è necessario concedere l'accesso al team di sviluppo di Apache Airflow.

Amazon MWAA utilizza queste policy per verificare se un utente dispone delle autorizzazioni necessarie per eseguire un'azione sulla AWS console o tramite le API utilizzate da un ambiente.

Puoi utilizzare le policy JSON descritte in questo argomento per creare una policy per gli utenti di Apache Airflow in IAM e quindi collegarla a un utente, gruppo o ruolo in IAM.

Per fornire l'accesso, aggiungi autorizzazioni ai tuoi utenti, gruppi o ruoli:

  • Utenti e gruppi in: AWS IAM Identity Center

    Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .

  • Utenti gestiti in IAM tramite un provider di identità:

    Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate nella pagina Creating a role for a third-party identity provider (federation) (Creazione di un ruolo per un provider di identità di terze parti [federazione]) nella Guida per l'utente di IAM.

  • Utenti IAM:

    • Crea un ruolo che l'utente possa assumere. Per istruzioni, consulta la pagina Creating a role for an IAM user (Creazione di un ruolo per un utente IAM) nella Guida per l'utente di IAM.

    • (Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate nella pagina Aggiunta di autorizzazioni a un utente (console) nella Guida per l'utente di IAM.

Politica di accesso completo alla console: FullConsole AmazonMWAA Access

Un utente potrebbe aver bisogno di accedere alla politica AmazonMWAAFullConsoleAccess delle autorizzazioni se deve configurare un ambiente sulla console Amazon MWAA.

Nota

La tua policy di accesso completo alla console deve includere le autorizzazioni per l'esecuzione. iam:PassRole Ciò consente all'utente di passare ruoli collegati al servizio e ruoli di esecuzione ad Amazon MWAA. Amazon MWAA assume ogni ruolo per chiamare altri AWS servizi per tuo conto. L'esempio seguente utilizza la chiave iam:PassedToService condition per specificare il servizio Amazon MWAA principal (airflow.amazonaws.com) come servizio a cui passare un ruolo.

Per ulteriori informazioni in meritoiam:PassRole, consulta Concessione a un utente delle autorizzazioni per il trasferimento di un ruolo a un AWS servizio nella IAM User Guide.

Utilizza la seguente policy se desideri creare e gestire i tuoi ambienti Amazon MWAA utilizzando una crittografia Chiave di proprietà di AWSa riposo.

{ "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/*" ] } ] }

Utilizza la seguente policy se desideri creare e gestire i tuoi ambienti Amazon MWAA utilizzando una chiave gestita dal cliente per la crittografia a riposo. Per utilizzare una chiave gestita dal cliente, il responsabile IAM deve disporre dell'autorizzazione ad accedere alle AWS KMS risorse utilizzando la chiave memorizzata nel tuo account.

{ "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/*" ] } ] }

Politica completa di accesso all'API e alla console: FullApi AmazonMWAA Access

Un utente potrebbe aver bisogno di accedere alla politica AmazonMWAAFullApiAccess delle autorizzazioni se ha bisogno di accedere a tutte le API Amazon MWAA utilizzate per gestire un ambiente. Non concede le autorizzazioni per accedere all'interfaccia utente di Apache Airflow.

Nota

Una politica di accesso API completa deve includere le autorizzazioni da eseguire. iam:PassRole Ciò consente all'utente di passare ruoli collegati al servizio e ruoli di esecuzione ad Amazon MWAA. Amazon MWAA assume ogni ruolo per chiamare altri AWS servizi per tuo conto. L'esempio seguente utilizza la chiave iam:PassedToService condition per specificare il servizio Amazon MWAA principal (airflow.amazonaws.com) come servizio a cui passare un ruolo.

Per ulteriori informazioni in meritoiam:PassRole, consulta Concessione a un utente delle autorizzazioni per il trasferimento di un ruolo a un AWS servizio nella IAM User Guide.

Utilizza la seguente policy se desideri creare e gestire i tuoi ambienti Amazon MWAA utilizzando una crittografia Chiave di proprietà di AWS a riposo.

{ "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/*" ] } ] }

Utilizza la seguente policy se desideri creare e gestire i tuoi ambienti Amazon MWAA utilizzando una chiave gestita dal cliente per la crittografia a riposo. Per utilizzare una chiave gestita dal cliente, il responsabile IAM deve disporre dell'autorizzazione ad accedere alle AWS KMS risorse utilizzando la chiave memorizzata nel tuo account.

{ "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/*" ] } ] }

Politica di accesso alla console di sola lettura: AmazonMWAA Access ReadOnly

Un utente potrebbe aver bisogno di accedere alla politica AmazonMWAAReadOnlyAccess delle autorizzazioni se deve visualizzare le risorse utilizzate da un ambiente nella pagina dei dettagli dell'ambiente della console Amazon MWAA. Non consente a un utente di creare nuovi ambienti, modificare ambienti esistenti o visualizzare l'interfaccia utente di Apache Airflow.

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

Politica di accesso all'interfaccia utente di Apache Airflow: AmazonMWAA Access WebServer

Un utente potrebbe aver bisogno di accedere alla politica delle AmazonMWAAWebServerAccess autorizzazioni se deve accedere all'interfaccia utente di Apache Airflow. Non consente all'utente di visualizzare gli ambienti sulla console Amazon MWAA o di utilizzare le API Amazon MWAA per eseguire alcuna azione. Specificate il AdminOp,User, Viewer o il Public ruolo in {airflow-role} per personalizzare il livello di accesso per l'utente del token web. Per ulteriori informazioni, consulta Ruoli predefiniti nella guida di riferimento di 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}" ] } ] }
Nota

Amazon MWAA fornisce l'integrazione IAM con i cinque ruoli RBAC (Role-based access control) predefiniti di Apache Airflow. Per ulteriori informazioni sull'utilizzo dei ruoli personalizzati di Apache Airflow, consulta. Tutorial: limitazione dell'accesso di un utente Amazon MWAA a un sottoinsieme di DAG

Politica CLI di Apache Airflow: AmazonMWAA Access AirflowCli

Un utente potrebbe aver bisogno di accedere alla politica AmazonMWAAAirflowCliAccess delle autorizzazioni se deve eseguire comandi CLI di Apache Airflow (come). trigger_dag Non consente all'utente di visualizzare gli ambienti sulla console Amazon MWAA o di utilizzare le API Amazon MWAA per eseguire alcuna azione.

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

Creazione di una policy JSON

Puoi creare la policy JSON e allegarla al tuo utente, ruolo o gruppo sulla console IAM. I passaggi seguenti descrivono come creare una policy JSON in IAM.

Per creare la policy JSON
  1. Apri la pagina Policies sulla console IAM.

  2. Scegli Crea policy.

  3. Scegliere la scheda JSON.

  4. Aggiungi la tua policy JSON.

  5. Scegli Verifica policy.

  6. Inserisci un valore nel campo di testo per Nome e Descrizione (opzionale).

    Ad esempio, è possibile assegnare un nome alla politicaAmazonMWAAReadOnlyAccess.

  7. Scegli Crea policy.

Esempio di utilizzo per allegare politiche a un gruppo di sviluppatori

Supponiamo che tu stia utilizzando un gruppo in IAM denominato AirflowDevelopmentGroup per applicare le autorizzazioni a tutti gli sviluppatori del tuo team di sviluppo di Apache Airflow. Questi utenti devono accedere alle politiche di AmazonMWAAFullConsoleAccess accesso e AmazonMWAAAirflowCliAccess AmazonMWAAWebServerAccess autorizzazione. Questa sezione descrive come creare un gruppo in IAM, creare e allegare queste policy e associare il gruppo a un utente IAM. I passaggi presuppongono che tu stia utilizzando una chiave AWS proprietaria.

Per creare la policy FullConsoleAccess AmazonMWAA
  1. Scarica la politica di accesso di AmazonMWAA. FullConsoleAccess

  2. Apri la pagina delle politiche sulla console IAM.

  3. Scegli Crea policy.

  4. Scegliere la scheda JSON.

  5. Incolla la policy JSON perAmazonMWAAFullConsoleAccess.

  6. Sostituisci i seguenti valori:

    1. {your-account-id} — L'ID del tuo AWS account (ad esempio) 0123456789

    2. {your-kms-id} — L'identificatore univoco di una chiave gestita dal cliente, applicabile solo se utilizzi una chiave gestita dal cliente per la crittografia a riposo.

  7. Scegli la politica di revisione.

  8. AmazonMWAAFullConsoleAccessDigita il nome.

  9. Scegli Crea policy.

Per creare la politica WebServerAccess AmazonMWAA
  1. Scarica la politica di accesso di AmazonMWAA. WebServerAccess

  2. Apri la pagina delle politiche sulla console IAM.

  3. Scegli Crea policy.

  4. Scegliere la scheda JSON.

  5. Incolla la policy JSON perAmazonMWAAWebServerAccess.

  6. Sostituisci i seguenti valori:

    1. {your-region}: la regione del tuo ambiente Amazon MWAA (ad esempio) us-east-1

    2. {your-account-id} — l'ID del tuo account (ad esempio) AWS 0123456789

    3. {your-environment-name} — il nome dell'ambiente Amazon MWAA (ad esempio) MyAirflowEnvironment

    4. {airflow-role} — il ruolo predefinito di Apache Airflow Admin

  7. Scegli Verifica policy.

  8. AmazonMWAAWebServerAccessDigita il nome.

  9. Scegli Crea policy.

Per creare la politica AirflowCliAccess AmazonMWAA
  1. Scarica la politica di accesso di AmazonMWAA. AirflowCliAccess

  2. Apri la pagina delle politiche sulla console IAM.

  3. Scegli Crea policy.

  4. Scegliere la scheda JSON.

  5. Incolla la policy JSON perAmazonMWAAAirflowCliAccess.

  6. Scegli la politica di revisione.

  7. AmazonMWAAAirflowCliAccessDigita il nome.

  8. Scegli Crea policy.

Per creare il gruppo
  1. Apri la pagina Gruppi sulla console IAM.

  2. Digita un nome diAirflowDevelopmentGroup.

  3. Selezionare Next Step (Fase successiva).

  4. Digitare AmazonMWAA per filtrare i risultati in Filtro.

  5. Seleziona le tre politiche che hai creato.

  6. Selezionare Next Step (Fase successiva).

  7. Selezionare Create Group (Crea gruppo).

Da associare a un utente
  1. Apri la pagina Utenti sulla console IAM.

  2. Scegli un utente.

  3. Scegliere Groups (Gruppi).

  4. Scegli Aggiungi utente ai gruppi.

  5. Seleziona il AirflowDevelopmentgruppo.

  6. Scegliere Add to Groups (Aggiungi a gruppi).

Fasi successive