Mengakses lingkungan Amazon MWAA - Amazon Managed Workflows for Apache Airflow (MWAA)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengakses lingkungan Amazon MWAA

Untuk menggunakan Alur Kerja Terkelola Amazon untuk Apache Airflow, Anda harus menggunakan akun, dan IAM entitas dengan izin yang diperlukan. Halaman ini menjelaskan kebijakan akses yang dapat Anda lampirkan ke tim pengembangan Apache Airflow dan pengguna Apache Airflow untuk lingkungan Alur Kerja Terkelola Amazon untuk Apache Airflow Anda.

Sebaiknya gunakan kredensi sementara dan konfigurasi identitas gabungan dengan grup dan peran, untuk mengakses sumber daya Amazon Anda. MWAA Sebagai praktik terbaik, hindari melampirkan kebijakan langsung ke IAM pengguna Anda, dan sebagai gantinya tentukan grup atau peran untuk menyediakan akses sementara ke AWS sumber daya.

IAMPeran adalah IAM identitas yang dapat Anda buat di akun Anda yang memiliki izin khusus. IAMPeran mirip dengan IAM pengguna karena merupakan AWS identitas dengan kebijakan izin yang menentukan apa yang dapat dan tidak dapat dilakukan identitas. AWS Namun, alih-alih secara unik terkait dengan satu orang, peran dimaksudkan untuk menjadi dapat diambil oleh siapa pun yang membutuhkannya. Selain itu, peran tidak memiliki kredensial jangka panjang standar seperti kata sandi atau kunci akses yang terkait dengannya. Sebagai gantinya, saat Anda mengambil peran, peran tersebut akan memberikan kredensial keamanan sementara untuk sesi peran.

Untuk menetapkan izin ke identitas federasi, Anda membuat peran dan menentukan izin untuk peran tersebut. Ketika identitas terfederasi mengautentikasi, identitas tersebut terhubung dengan peran dan diberi izin yang ditentukan oleh peran. Untuk informasi tentang peran untuk federasi, lihat Membuat peran untuk Penyedia Identitas pihak ketiga di Panduan IAM Pengguna. Jika Anda menggunakan Pusat IAM Identitas, Anda mengonfigurasi set izin. Untuk mengontrol apa yang dapat diakses identitas Anda setelah diautentikasi, Pusat IAM Identitas mengkorelasikan izin yang disetel ke peran. IAM Untuk informasi tentang set izin, lihat Set izin dalam Panduan Pengguna AWS IAM Identity Center .

Anda dapat menggunakan IAM peran di akun Anda untuk memberikan Akun AWS izin lain untuk mengakses sumber daya akun Anda. Sebagai contoh, lihat Tutorial: Mendelegasikan akses Akun AWS menggunakan IAM peran dalam Panduan IAM Pengguna.

Cara kerjanya

Sumber daya dan layanan yang digunakan di MWAA lingkungan Amazon tidak dapat diakses oleh semua AWS Identity and Access Management (IAM) entitas. Anda harus membuat kebijakan yang memberikan izin kepada pengguna Apache Airflow untuk mengakses sumber daya ini. Misalnya, Anda perlu memberikan akses ke tim pengembangan Apache Airflow Anda.

Amazon MWAA menggunakan kebijakan ini untuk memvalidasi apakah pengguna memiliki izin yang diperlukan untuk melakukan tindakan di AWS konsol atau melalui lingkungan yang APIs digunakan.

Anda dapat menggunakan JSON kebijakan dalam topik ini untuk membuat kebijakan bagi pengguna Apache AirflowIAM, lalu melampirkan kebijakan tersebut ke pengguna, grup, atau peran di dalamnya. IAM

Untuk memberikan akses, menambahkan izin ke pengguna, grup, atau peran Anda:

Kebijakan akses konsol penuh: A mazonMWAAFull ConsoleAccess

Pengguna mungkin memerlukan akses ke kebijakan AmazonMWAAFullConsoleAccess izin jika mereka perlu mengonfigurasi lingkungan di MWAA konsol Amazon.

catatan

Kebijakan akses konsol lengkap Anda harus menyertakan izin untuk melakukaniam:PassRole. Hal ini memungkinkan pengguna untuk meneruskan peran terkait layanan, dan peran eksekusi, ke Amazon. MWAA Amazon MWAA mengasumsikan setiap peran untuk memanggil AWS layanan lain atas nama Anda. Contoh berikut menggunakan kunci iam:PassedToService kondisi untuk menentukan Amazon MWAA service principal (airflow.amazonaws.com) sebagai layanan yang dapat diteruskan peran.

Untuk informasi selengkapnyaiam:PassRole, lihat Memberikan izin pengguna untuk meneruskan peran ke AWS layanan di IAMPanduan Pengguna.

Gunakan kebijakan berikut jika Anda ingin membuat, dan mengelola, MWAA lingkungan Amazon Anda menggunakan enkripsi Kunci milik AWSfor at-rest.

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

Gunakan kebijakan berikut jika Anda ingin membuat, dan mengelola, MWAA lingkungan Amazon menggunakan kunci terkelola pelanggan untuk enkripsi saat istirahat. Untuk menggunakan kunci yang dikelola pelanggan, IAM prinsipal harus memiliki izin untuk mengakses AWS KMS sumber daya menggunakan kunci yang disimpan di akun Anda.

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

Kebijakan akses penuh API dan konsol: A mazonMWAAFull ApiAccess

Pengguna mungkin memerlukan akses ke kebijakan AmazonMWAAFullApiAccess izin jika mereka memerlukan akses ke semua Amazon yang MWAA APIs digunakan untuk mengelola lingkungan. Itu tidak memberikan izin untuk mengakses Apache Airflow UI.

catatan

Kebijakan API akses penuh harus menyertakan izin untuk melakukaniam:PassRole. Hal ini memungkinkan pengguna untuk meneruskan peran terkait layanan, dan peran eksekusi, ke Amazon. MWAA Amazon MWAA mengasumsikan setiap peran untuk memanggil AWS layanan lain atas nama Anda. Contoh berikut menggunakan kunci iam:PassedToService kondisi untuk menentukan Amazon MWAA service principal (airflow.amazonaws.com) sebagai layanan yang dapat diteruskan peran.

Untuk informasi selengkapnyaiam:PassRole, lihat Memberikan izin pengguna untuk meneruskan peran ke AWS layanan di IAMPanduan Pengguna.

Gunakan kebijakan berikut jika Anda ingin membuat, dan mengelola, MWAA lingkungan Amazon Anda menggunakan enkripsi Kunci milik AWS for at-rest.

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

Gunakan kebijakan berikut jika Anda ingin membuat, dan mengelola, MWAA lingkungan Amazon menggunakan kunci terkelola pelanggan untuk enkripsi saat istirahat. Untuk menggunakan kunci yang dikelola pelanggan, IAM prinsipal harus memiliki izin untuk mengakses AWS KMS sumber daya menggunakan kunci yang disimpan di akun Anda.

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

Kebijakan akses konsol hanya-baca: A mazonMWAARead OnlyAccess

Pengguna mungkin memerlukan akses ke kebijakan AmazonMWAAReadOnlyAccess izin jika mereka perlu melihat sumber daya yang digunakan oleh lingkungan di halaman detail lingkungan MWAA konsol Amazon. Itu tidak memungkinkan pengguna untuk membuat lingkungan baru, mengedit lingkungan yang ada, atau memungkinkan pengguna untuk melihat UI Apache Airflow.

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

Kebijakan akses Apache Airflow UI: A mazonMWAAWeb ServerAccess

Pengguna mungkin memerlukan akses ke kebijakan AmazonMWAAWebServerAccess izin jika mereka perlu mengakses UI Apache Airflow. Itu tidak memungkinkan pengguna untuk melihat lingkungan di MWAA konsol Amazon atau menggunakan Amazon MWAA APIs untuk melakukan tindakan apa pun. Tentukan AdminOp,User,, Viewer atau Public peran dalam {airflow-role} untuk menyesuaikan tingkat akses bagi pengguna token web. Untuk informasi selengkapnya, lihat Peran Default dalam panduan referensi 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}" ] } ] }
catatan

Amazon MWAA menyediakan IAM integrasi dengan lima peran kontrol akses () berbasis peran Apache Airflow default. RBAC Untuk informasi selengkapnya tentang bekerja dengan peran Apache Airflow kustom, lihat. Tutorial: Membatasi akses pengguna Amazon MWAA ke subset DAG

CLIKebijakan Aliran Udara Apache: A mazonMWAAAirflow CliAccess

Pengguna mungkin memerlukan akses ke kebijakan AmazonMWAAAirflowCliAccess izin jika mereka perlu menjalankan CLI perintah Apache Airflow (seperti). trigger_dag Itu tidak memungkinkan pengguna untuk melihat lingkungan di MWAA konsol Amazon atau menggunakan Amazon MWAA APIs untuk melakukan tindakan apa pun.

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

Membuat JSON kebijakan

Anda dapat membuat JSON kebijakan, dan melampirkan kebijakan tersebut ke pengguna, peran, atau grup Anda di IAM konsol. Langkah-langkah berikut menjelaskan cara membuat JSON kebijakan diIAM.

Untuk membuat JSON kebijakan
  1. Buka halaman Kebijakan di IAM konsol.

  2. Pilih Buat kebijakan.

  3. Pilih JSONtab.

  4. Tambahkan JSON kebijakan Anda.

  5. Pilih Tinjau kebijakan.

  6. Masukkan nilai di bidang teks untuk Nama dan Deskripsi (opsional).

    Misalnya, Anda bisa memberi nama kebijakanAmazonMWAAReadOnlyAccess.

  7. Pilih Buat kebijakan.

Contoh kasus penggunaan untuk melampirkan kebijakan ke grup pengembang

Katakanlah Anda menggunakan grup IAM bernama AirflowDevelopmentGroup untuk menerapkan izin ke semua pengembang di tim pengembangan Apache Airflow Anda. Pengguna ini memerlukan akses keAmazonMWAAFullConsoleAccess,AmazonMWAAAirflowCliAccess, dan kebijakan AmazonMWAAWebServerAccess izin. Bagian ini menjelaskan cara membuat grupIAM, membuat dan melampirkan kebijakan ini, dan mengaitkan grup dengan IAM pengguna. Langkah-langkahnya mengasumsikan Anda menggunakan kunci yang AWS dimiliki.

Untuk membuat mazonMWAAFull ConsoleAccess kebijakan A
  1. Unduh kebijakan mazonMWAAFull ConsoleAccess akses A.

  2. Buka halaman Kebijakan di IAM konsol.

  3. Pilih Buat kebijakan.

  4. Pilih JSONtab.

  5. Tempel JSON kebijakan untukAmazonMWAAFullConsoleAccess.

  6. Gantikan nilai-nilai berikut:

    1. {your-account-id} — ID AWS akun Anda (seperti0123456789)

    2. {your-kms-id} — Pengidentifikasi unik untuk kunci yang dikelola pelanggan, hanya berlaku jika Anda menggunakan kunci yang dikelola pelanggan untuk enkripsi saat istirahat.

  7. Pilih kebijakan Tinjauan.

  8. AmazonMWAAFullConsoleAccessKetik Nama.

  9. Pilih Buat kebijakan.

Untuk membuat mazonMWAAWeb ServerAccess kebijakan A
  1. Unduh kebijakan mazonMWAAWeb ServerAccess akses A.

  2. Buka halaman Kebijakan di IAM konsol.

  3. Pilih Buat kebijakan.

  4. Pilih JSONtab.

  5. Tempel JSON kebijakan untukAmazonMWAAWebServerAccess.

  6. Gantikan nilai-nilai berikut:

    1. {your-region} — wilayah MWAA lingkungan Amazon Anda (sepertius-east-1)

    2. {your-account-id} — ID AWS akun Anda (seperti0123456789)

    3. {your-environment-name} — nama MWAA lingkungan Amazon Anda (sepertiMyAirflowEnvironment)

    4. {airflow-role} — Peran Admin Default Aliran Udara Apache

  7. Pilih Tinjau kebijakan.

  8. AmazonMWAAWebServerAccessKetik Nama.

  9. Pilih Buat kebijakan.

Untuk membuat mazonMWAAAirflow CliAccess kebijakan A
  1. Unduh kebijakan mazonMWAAAirflow CliAccess akses A.

  2. Buka halaman Kebijakan di IAM konsol.

  3. Pilih Buat kebijakan.

  4. Pilih JSONtab.

  5. Tempel JSON kebijakan untukAmazonMWAAAirflowCliAccess.

  6. Pilih kebijakan Tinjauan.

  7. AmazonMWAAAirflowCliAccessKetik Nama.

  8. Pilih Buat kebijakan.

Untuk membuat grup
  1. Buka halaman Grup di IAM konsol.

  2. Ketik namaAirflowDevelopmentGroup.

  3. Pilih Langkah Selanjutnya.

  4. Ketik AmazonMWAA untuk memfilter hasil di Filter.

  5. Pilih tiga kebijakan yang Anda buat.

  6. Pilih Langkah Selanjutnya.

  7. Pilih Buat group.

Untuk mengasosiasikan ke pengguna
  1. Buka halaman Pengguna di IAM konsol.

  2. Pilih pengguna.

  3. Pilih Grup.

  4. Pilih Tambahkan pengguna ke grup.

  5. Pilih AirflowDevelopmentGroup.

  6. Pilih Tambahkan ke Grup.

Apa selanjutnya?