IAM Role untuk AWS Data Pipeline - AWS Data Pipeline

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

IAM Role untuk AWS Data Pipeline

AWS Data Pipeline menggunakan peran AWS Identity and Access Management. Kebijakan izin yang dilampirkan ke IAM role menentukan tindakan AWS Data Pipeline dan aplikasi yang dapat dilakukan, dan sumber daya AWS apa yang dapat mereka akses. Untuk informasi lebih lanjut, lihat IAM role dalam Panduan Pengguna IAM.

AWS Data Pipeline membutuhkan dua IAM role:

  • Peran alur mengontrol akses AWS Data Pipeline ke sumber daya AWS Anda. Dalam definisi objek alur, bidang role menentukan peran ini.

  • Peran instans EC2 mengontrol akses yang aplikasinya berjalan pada instans EC2, termasuk instans EC2 di klaster Amazon EMR, harus sumber daya AWS. Dalam definisi objek alur, bidang resourceRole menentukan peran ini.

penting

Jika Anda membuat alur sebelum 3 Oktober 2022 menggunakanAWS Data Pipeline konsol dengan peran default,AWS Data Pipeline membuatDataPipelineDefaultRole untuk Anda dan melampirkan kebijakanAWSDataPipelineRole terkelola untuk peran. Pada 3 Oktober 2022, kebijakanAWSDataPipelineRole terkelola diusangkan dan peran alur harus ditentukan untuk alur saat menggunakan konsol.

Kami merekomendasikan bahwa Anda meninjau jaringan alur yang ada dan menentukan apakah DataPipelineDefaultRole dikaitkan dengan alur dan apakah AWSDataPipelineRole dilampirkan pada peran tersebut. Jika demikian, tinjau akses yang diizinkan kebijakan ini untuk memastikan sesuai dengan persyaratan keamanan Anda. Menambahkan, memperbarui, atau mengganti kebijakan dan pernyataan kebijakan yang melekat pada peran ini diperlukan. Atau, Anda dapat memperbarui alur untuk menggunakan peran yang Anda buat dengan kebijakan izin yang berbeda.

Contoh Kebijakan Izin untuk Peran AWS Data Pipeline

Setiap peran memiliki satu kebijakan izin atau lebih yang dilampirkan padanya yang menentukan sumber daya AWS yang dapat diakses peran tersebut dan tindakan yang dapat dilakukan peran tersebut. Topik ini menyediakan contoh kebijakan izin untuk peran alur. Hal ini juga menyediakan isi AmazonEC2RoleforDataPipelineRole, yang merupakan kebijakan terkelola untuk peran default instans EC2, DataPipelineDefaultResourceRole.

Contoh Kebijakan Izin Peran Alur

Contoh kebijakan yang berikut tercakup untuk memungkinkan fungsi-fungsi penting yang dibutuhkan AWS Data Pipeline untuk menjalankan alur dengan sumber daya Amazon EC2 dan Amazon EMR. Hal ini juga menyediakan izin untuk mengakses sumber daya AWS lainnya, seperti Amazon Simple Storage Service dan Amazon Simple Notification Service, yang diperlukan oleh alur. Jika objek didefinisikan dalam alur tidak memerlukan sumber daya dari AWS, kami sangat menyarankan agar Anda menghapus izin untuk mengakses layanan tersebut. Misalnya, jika alur Anda tidak mendefinisikan DynamoDB DataNode atau menggunakan tindakan SnsAlarm, kami sarankan Anda menghapus pernyataan izin untuk tindakan tersebut.

  • Ganti 111122223333 dengan ID akun AWS Anda.

  • Ganti NameOfDataPipelineRole dengan nama peran alur (peran yang dilampirkan kebijakan ini).

  • Ganti NameOfDataPipelineResourceRole dengan nama peran instans EC2.

  • Ganti us-west-1 dengan Wilayah yang sesuai untuk aplikasi Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PassRole" ], "Resource": [ "arn:aws:iam::111122223333:role/NameOfDataPipelineRole", "arn:aws:iam::111122223333 :role/NameOfDataPipelineResourceRole" ] }, { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeDhcpOptions", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeLaunchTemplates", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes", "elasticmapreduce:TerminateJobFlows", "elasticmapreduce:ListSteps", "elasticmapreduce:ListClusters", "elasticmapreduce:RunJobFlow", "elasticmapreduce:DescribeCluster", "elasticmapreduce:AddTags", "elasticmapreduce:RemoveTags", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ModifyInstanceGroups", "elasticmapreduce:GetCluster", "elasticmapreduce:DescribeStep", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:ListInstances", "iam:ListInstanceProfiles", "redshift:DescribeClusters" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:GetTopicAttributes", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-west-1:111122223333:MyFirstSNSTopic", "arn:aws:sns:us-west-1:111122223333:MySecondSNSTopic", "arn:aws:sns:us-west-1:111122223333:AnotherSNSTopic" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListMultipartUploads" ], "Resource": [ "arn:aws:s3:::MyStagingS3Bucket", "arn:aws:s3:::MyLogsS3Bucket", "arn:aws:s3:::MyInputS3Bucket", "arn:aws:s3:::MyOutputS3Bucket", "arn:aws:s3:::AnotherRequiredS3Buckets" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectMetadata", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::MyStagingS3Bucket/*", "arn:aws:s3:::MyLogsS3Bucket/*", "arn:aws:s3:::MyInputS3Bucket/*", "arn:aws:s3:::MyOutputS3Bucket/*", "arn:aws:s3:::AnotherRequiredS3Buckets/*" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:us-west-1:111122223333:table/MyFirstDynamoDBTable", "arn:aws:dynamodb:us-west-1:111122223333:table/MySecondDynamoDBTable", "arn:aws:dynamodb:us-west-1:111122223333:table/AnotherDynamoDBTable" ] }, { "Effect": "Allow", "Action": [ "rds:DescribeDBInstances" ], "Resource": [ "arn:aws:rds:us-west-1:111122223333:db:MyFirstRdsDb", "arn:aws:rds:us-west-1:111122223333:db:MySecondRdsDb", "arn:aws:rds:us-west-1:111122223333:db:AnotherRdsDb" ] } ] }

Kebijakan Terkelola Default untuk Peran Instans EC2

Isi dari AmazonEC2RoleforDataPipelineRole ditunjukkan di bawah ini. Ini adalah kebijakan terkelola yang melekat pada peran sumber daya default untuk AWS Data Pipeline, DataPipelineDefaultResourceRole. Ketika Anda menentukan peran sumber daya untuk alur Anda, kami sarankan Anda mulai dengan kebijakan izin ini dan kemudian menghapus izin untuk tindakan layanan AWS yang tidak diperlukan.

Versi 3 dari kebijakan ditampilkan, yang merupakan versi terbaru pada saat penulisan ini. Lihat versi terbaru kebijakan menggunakan konsol IAM.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:Describe*", "elasticmapreduce:ListInstance*", "elasticmapreduce:ModifyInstanceGroups", "rds:Describe*", "redshift:DescribeClusters", "redshift:DescribeClusterSecurityGroups", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": ["*"] }] }

Membuat IAM Role untuk AWS Data Pipeline dan Mengedit Izin Peran

Gunakan prosedur berikut untuk membuat peran untuk AWS Data Pipeline menggunakan konsol IAM. Prosesnya terdiri atas dua langkah. Pertama, Anda membuat kebijakan izin untuk dilampirkan ke peran tersebut. Selanjutnya, Anda membuat peran dan melampirkan kebijakan tersebut. Setelah membuat peran, Anda dapat mengubah izin peran dengan melampirkan dan memisahkan kebijakan izin.

catatan

Saat Anda membuat peran untuk AWS Data Pipeline menggunakan konsol seperti yang dijelaskan di bawah ini, IAM membuat dan melampirkan kebijakan kepercayaan yang sesuai yang diperlukan peran.

Untuk membuat kebijakan izin untuk digunakan dengan peran untuk AWS Data Pipeline
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Pada panel navigasi, pilih Kebijakan, lalu pilih Buat kebijakan.

  3. Pilih tab JSON.

  4. Jika Anda menciptakan peran alur, salin dan tempelkan isi contoh kebijakan dalam Contoh Kebijakan Izin Peran Alur, mengedit sesuai dengan persyaratan keamanan Anda. Atau, jika Anda membuat peran instans EC2 kustom, lakukan hal yang sama untuk contoh di Kebijakan Terkelola Default untuk Peran Instans EC2.

  5. Pilih Tinjau kebijakan.

  6. Masukkan nama untuk kebijakan—misalnya, MyDataPipelineRolePolicy—dan sebuah pilihan Deskripsi, lalu pilih Buat kebijakan.

  7. Ingat nama kebijakan. Anda memerlukannya saat Anda membuat peran Anda.

Untuk membuat IAM role untuk AWS Data Pipeline
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Peran, lalu pilih Buat peran.

  3. Di bawah Pilih kasus penggunaan, pilih Data Pipeline.

  4. Di bawah Pilih kasus penggunaan Anda, lakukan salah satu langkah berikut:

    • Pilih Data Pipeline untuk membuat peran alur.

    • Pilih EC2 Role for Data Pipeline untuk membuat peran sumber daya.

  5. Pilih Next: Permissions (Selanjutnya: Izin).

  6. Jika kebijakan default untuk AWS Data Pipeline terdaftar, lanjutkan dengan langkah-langkah berikut untuk membuat peran dan kemudian mengeditnya sesuai dengan petunjuk dalam prosedur berikutnya. Jika tidak, masukkan nama kebijakan yang Anda buat dalam prosedur di atas, dan kemudian pilih dari daftar.

  7. Pilih Berikutnya: Tanda, masukkan tanda apa pun untuk ditambahkan ke peran, lalu pilih Berikutnya: Ulasan.

  8. Masukkan nama untuk peran—misalnya, MyDataPipelineRole—dan sebuah pilihan Deskripsi, lalu pilih Buat peran.

Untuk melampirkan atau melepaskan kebijakan izin untuk IAM role untuk AWS Data Pipeline
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Peran

  3. Di kotak pencarian, mulailah mengetik nama peran yang ingin Anda edit—misalnya, DataPipelineDefaultRoleatau MyDataPipelineRole—lalu pilih nama Peran dari daftar.

  4. Di tab Izin, lakukan hal berikut:

    • Untuk melepaskan kebijakan izin, di bawah Kebijakan izin, pilih tombol hapus di ujung kanan entri kebijakan. Pilih Lepaskan saat diminta untuk mengonfirmasi.

    • Untuk melampirkan kebijakan yang Anda buat sebelumnya, pilih Lampirkan kebijakan. Di kotak pencarian, mulai ketik nama kebijakan yang ingin Anda edit, pilih dari daftar, lalu pilih Lampirkan kebijakan.

Mengubah Peran untuk Alur yang sudah Ada

Jika Anda ingin menetapkan peran alur atau peran sumber daya yang berbeda ke alur, Anda dapat menggunakan editor arsitek di konsol AWS Data Pipeline.

Untuk mengedit peran yang ditetapkan ke alur menggunakan konsol
  1. Buka konsol AWS Data Pipeline tersebut di https://console.aws.amazon.com/datapipeline/.

  2. Pilih alur dari daftar, lalu pilih Tindakan, Edit.

  3. Di panel kanan editor arsitek, pilih Lainnya.

  4. Dari Peran Sumber Daya dan daftar Peran, pilih peran untuk AWS Data Pipeline yang ingin Anda tetapkan, dan kemudian pilih Simpan.