View a markdown version of this page

Mengakses lingkungan Amazon MWAA - Amazon Managed Workflows for Apache Airflow

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 entitas IAM dengan izin yang diperlukan. Topik ini menjelaskan kebijakan akses yang dapat Anda lampirkan ke tim pengembangan Apache Airflow dan pengguna Apache Airflow untuk lingkungan Amazon Managed Workflow untuk Apache Airflow.

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

Sebuah peran IAM adalah identitas IAM yang dapat Anda buat di akun yang memiliki izin tertentu. Peran IAM mirip dengan pengguna IAM 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 Buat peran untuk penyedia identitas pihak ketiga dalam Panduan Pengguna IAM. Jika menggunakan Pusat Identitas IAM, Anda harus mengonfigurasi set izin. Untuk mengontrol apa yang dapat diakses identitas Anda setelah identitas tersebut diautentikasi, Pusat Identitas IAM akan mengorelasikan set izin ke peran dalam IAM. Untuk informasi tentang set izin, lihat Set izin dalam Panduan Pengguna AWS IAM Identity Center .

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

Cara kerjanya

Sumber daya dan layanan yang digunakan dalam lingkungan Amazon MWAA tidak dapat diakses oleh semua entitas AWS Identity and Access Management (IAM). 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 API yang digunakan oleh lingkungan.

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

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

Kebijakan akses konsol penuh: AmazonMWAAFullConsoleAccess

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

catatan

Kebijakan akses konsol penuh Anda harus menyertakan izin untuk melakukaniam:PassRole. Ini memungkinkan pengguna untuk meneruskan peran terkait layanan, dan peran eksekusi, ke Amazon MWAA. Amazon MWAA mengambil 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 selengkap iam:PassRole nya, lihat Memberikan izin pengguna untuk meneruskan peran ke AWS layanan di Panduan Pengguna IAM.

Gunakan kebijakan berikut jika Anda ingin membuat, dan mengelola, lingkungan Amazon MWAA menggunakan enkripsi diam. Kunci milik AWS

JSON
{ "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::111122223333:policy/service-role/MWAA-Execution-Policy*" }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource": "arn:aws:iam::111122223333: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, lingkungan Amazon MWAA menggunakan kunci yang dikelola pelanggan untuk enkripsi saat istirahat. Untuk menggunakan kunci yang dikelola pelanggan, prinsipal IAM harus memiliki izin untuk mengakses AWS KMS sumber daya menggunakan kunci yang disimpan di akun Anda.

JSON
{ "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::111122223333:policy/service-role/MWAA-Execution-Policy*" }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole" ], "Resource": "arn:aws:iam::111122223333: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:*:111122223333: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 API dan konsol lengkap: AmazonMWAAFullApiAccess

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

catatan

Kebijakan akses API lengkap harus menyertakan izin untuk melakukaniam:PassRole. Ini memungkinkan pengguna untuk meneruskan peran terkait layanan, dan peran eksekusi, ke Amazon MWAA. Amazon MWAA mengambil 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 selengkap iam:PassRole nya, lihat Memberikan izin pengguna untuk meneruskan peran ke AWS layanan di Panduan Pengguna IAM.

Gunakan kebijakan berikut jika Anda ingin membuat, dan mengelola, lingkungan Amazon MWAA menggunakan enkripsi diam. Kunci milik AWS

JSON
{ "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, lingkungan Amazon MWAA menggunakan kunci yang dikelola pelanggan untuk enkripsi saat istirahat. Untuk menggunakan kunci yang dikelola pelanggan, prinsipal IAM harus memiliki izin untuk mengakses AWS KMS sumber daya menggunakan kunci yang disimpan di akun Anda.

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

Read-only kebijakan akses konsol: AmazonMWAAReadOnlyAccess

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

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

Kebijakan akses UI Apache Airflow: AmazonMWAAWebServerAccess

Anda mungkin memerlukan akses ke kebijakan AmazonMWAAWebServerAccess izin untuk mengakses UI Apache Airflow. Kebijakan ini tidak mengizinkan Anda mengakses lingkungan di konsol Amazon MWAA atau menggunakan API Amazon MWAA untuk melakukan tindakan apa pun. Tentukan AdminOp,User,, Viewer atau Public peran {airflow-role} untuk menyesuaikan tingkat akses Anda untuk token web. Untuk informasi selengkapnya, lihat Kontrol akses di situs web Apache Airflow.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "airflow:CreateWebLoginToken", "Resource": [ "arn:aws:airflow:us-east-1:111122223333:role/{your-environment-name}/{airflow-role}" ] } ] }
catatan
  • Amazon MWAA menyediakan integrasi IAM dengan lima peran kontrol akses berbasis peran (RBAC) Apache Airflow default. Untuk informasi selengkapnya tentang bekerja dengan peran Apache Airflow kustom, lihatTutorial: Membatasi akses pengguna Amazon MWAA ke subset DAGs.

  • Bid Resource ang dalam kebijakan ini dapat digunakan untuk menentukan peran kontrol akses berbasis peran Apache Airflow untuk lingkungan Amazon MWAA. Namun, itu tidak mendukung lingkungan Amazon MWAA ARN (Nama Sumber Daya Amazon) di Resource bidang kebijakan.

Kebijakan akses Apache Airflow Rest API: AmazonMWAARestAPIAccess

Untuk mengakses Apache Airflow REST API, Anda harus memberikan airflow:InvokeRestApi izin dalam kebijakan IAM Anda. Dalam contoh kebijakan berikut, tent Admin ukanOp,User,, Viewer atau Public peran {airflow-role} untuk menyesuaikan tingkat akses pengguna. Untuk informasi selengkapnya, lihat Kontrol akses di situs web Apache Airflow.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowMwaaRestApiAccess", "Effect": "Allow", "Action": "airflow:InvokeRestApi", "Resource": [ "arn:aws:airflow:us-east-1:111122223333:role/{your-environment-name}/{airflow-role}" ] } ] }
catatan
  • Saat mengonfigurasi server web pribadi, InvokeRestApi tindakan tidak dapat dipanggil dari luar Virtual Private Cloud (VPC). Anda dapat menggunakan aws:SourceVpc kunci untuk menerapkan kontrol akses yang lebih granular untuk operasi ini. Untuk informasi selengkapnya, lihat aws: SourceVpc

  • Bid Resource ang dalam kebijakan ini dapat digunakan untuk menentukan peran kontrol akses berbasis peran Apache Airflow untuk lingkungan Amazon MWAA. Namun, itu tidak mendukung lingkungan Amazon MWAA ARN (Nama Sumber Daya Amazon) di Resource bidang kebijakan.

Kebijakan Apache Airflow CLI: AmazonMWAAAirflowCliAccess

Pengguna mungkin memerlukan akses ke kebijakan AmazonMWAAAirflowCliAccess izin jika mereka perlu menjalankan perintah Apache Airflow CLI (sepertitrigger_dag). Ini tidak memungkinkan pengguna untuk mengakses lingkungan di konsol Amazon MWAA atau menggunakan API Amazon MWAA untuk melakukan tindakan apa pun.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "airflow:CreateCliToken" ], "Resource": "arn:aws:airflow:us-east-1:111122223333:environment/${EnvironmentName}" } ] }

Membuat kebijakan JSON

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

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

  2. Pilih Buat kebijakan.

  3. Pilih tab JSON.

  4. Tambahkan kebijakan JSON Anda.

  5. Pilih Tinjau kebijakan.

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

    Misalnya, Anda dapat memberi nama kebijakanAmazonMWAAReadOnlyAccess.

  7. Pilih Buat kebijakan.

Contoh kasus penggunaan untuk melampirkan kebijakan ke grup pengembang

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

Untuk membuat AmazonMWAAFullConsoleAccess kebijakan
  1. Unduh kebijakan AmazonMWAAFullConsoleAccess akses.

  2. Buka halaman Kebijakan di konsol IAM.

  3. Pilih Buat kebijakan.

  4. Pilih tab JSON.

  5. Rekatkan kebijakan JSON untukAmazonMWAAFullConsoleAccess.

  6. Ganti nilai-nilai berikut:

    1. 123456789012— Akun AWS ID Anda (seperti0123456789)

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

  7. Pilih Kebijakan T injauan.

  8. K AmazonMWAAFullConsoleAccess etik Nama.

  9. Pilih Buat kebijakan.

Untuk membuat AmazonMWAAWebServerAccess kebijakan
  1. Unduh kebijakan AmazonMWAAWebServerAccess akses.

  2. Buka halaman Kebijakan di konsol IAM.

  3. Pilih Buat kebijakan.

  4. Pilih tab JSON.

  5. Rekatkan kebijakan JSON untukAmazonMWAAWebServerAccess.

  6. Ganti nilai-nilai berikut:

    1. us-east-1— wilayah lingkungan Amazon MWAA Anda (sepertius-east-1)

    2. 123456789012— Akun AWS ID Anda (seperti0123456789)

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

    4. {airflow-role}— peran default Admin Apache Airflow. Untuk informasi selengkapnya, lihat Kontrol akses di situs web Apache Airflow.

  7. Pilih Tinjau kebijakan.

  8. K AmazonMWAAWebServerAccess etik Nama.

  9. Pilih Buat kebijakan.

Untuk membuat AmazonMWAAAirflowCliAccess kebijakan
  1. Unduh kebijakan AmazonMWAAAirflowCliAccess akses.

  2. Buka halaman Kebijakan di konsol IAM.

  3. Pilih Buat kebijakan.

  4. Pilih tab JSON.

  5. Rekatkan kebijakan JSON untukAmazonMWAAAirflowCliAccess.

  6. Pilih Kebijakan T injauan.

  7. K AmazonMWAAAirflowCliAccess etik Nama.

  8. Pilih Buat kebijakan.

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

  2. Masukkan 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 mengaitkan ke pengguna
  1. Buka halaman Pengguna di konsol IAM.

  2. Pilih pengguna.

  3. Pilih Grup.

  4. Pilih Tambahkan pengguna ke grup.

  5. Pilih AirflowDevelopmentGroup.

  6. Pilih Tambahkan ke Grup.

Apa selanjutnya?