Menggunakan Kebijakan Berbasis Identitas (Kebijakan IAM) untuk - Panduan Developer Amazon Kinesis Data Analytics untuk Aplikasi SQL

Untuk proyek baru, kami menyarankan Anda menggunakan Managed Service baru untuk Apache Flink Studio melalui Kinesis Data Analytics untuk Aplikasi SQL. Layanan Terkelola untuk Apache Flink Studio menggabungkan kemudahan penggunaan dengan kemampuan analitis tingkat lanjut, memungkinkan Anda membangun aplikasi pemrosesan aliran yang canggih dalam hitungan menit.

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

Menggunakan Kebijakan Berbasis Identitas (Kebijakan IAM) untuk

Berikut ini adalah contoh kebijakan berbasis identitas yang menunjukkan bagaimana administrator akun dapat melampirkan kebijakan izin ke identitas IAM (yaitu, pengguna, grup, dan peran) dan memberikan izin untuk melakukan operasi pada sumber daya.

penting

Kami menyarankan Anda untuk terlebih dahulu meninjau topik pendahuluan yang menjelaskan konsep dasar dan pilihan yang tersedia untuk mengelola akses ke sumber daya. Untuk informasi selengkapnya, lihat Ikhtisar Pengelolaan Izin Akses untuk Sumber Daya.

Berikut adalah contoh kebijakan izin.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] } ] }

Kebijakan ini memiliki satu pernyataan:

  • Pernyataan pertama memberikan izin untuk satu tindakan (kinesisanalytics:CreateApplication) pada sumber daya menggunakan Amazon Resource Name (ARN) untuk aplikasi. ARN dalam hal ini menentukan karakter wildcard (*) untuk menunjukkan izin diberikan untuk sumber daya apa pun.

Untuk tabel yang menunjukkan semua operasi API dan sumber daya yang diterapkan, lihat Izin API: Tindakan, Izin, dan Referensi Sumber Daya.

Izin yang Diperlukan untuk Menggunakan Konsol

Agar pengguna dapat bekerja dengan konsol, Anda harus memberikan izin yang diperlukan. Sebagai contoh, jika Anda ingin pengguna memiliki izin untuk membuat aplikasi, berikan izin yang menampilkan mereka sumber streaming di akun sehingga pengguna dapat mengonfigurasi input dan output pada konsol.

Sebaiknya lakukan hal berikut:

Kebijakan Amazon-Managed (Predefined) untuk

AWS mengatasi banyak kasus penggunaan umum dengan menyediakan kebijakan IAM mandiri yang dibuat dan dikelola oleh. AWS Kebijakan yang dikelola Amazon ini memberikan izin yang diperlukan untuk kasus penggunaan umum sehingga Anda dapat menghindari keharusan untuk menyelidiki izin apa yang diperlukan. Untuk informasi selengkapnya, lihat Kebijakan yang Dikelola Amazon dalam Panduan Pengguna IAM.

Kebijakan yang dikelola Amazon berikut, yang dapat Anda lampirkan ke pengguna di akun Anda, khusus untuk:

  • AmazonKinesisAnalyticsReadOnly— Memberikan izin untuk tindakan yang memungkinkan pengguna untuk membuat daftar aplikasi dan meninjau konfigurasi input/output. Ini juga memberikan izin yang memungkinkan pengguna untuk melihat daftar aliran Kinesis dan aliran pengiriman Firehose. Saat aplikasi berjalan, pengguna dapat melihat data sumber dan hasil analisis waktu nyata di konsol.

     

  • AmazonKinesisAnalyticsFullAccess— Memberikan izin untuk semua tindakan dan semua izin lain yang memungkinkan pengguna untuk membuat dan mengelola aplikasi. Namun, perhatikan hal berikut:

     

    • Izin ini tidak cukup jika pengguna ingin membuat IAM role baru di konsol (izin ini memungkinkan pengguna memilih peran yang ada). Jika Anda ingin pengguna dapat membuat IAM role di konsol, tambahkan kebijakan yang dikelola Amazon IAMFullAccess.

       

    • Seorang pengguna harus memiliki izin untuk iam:PassRole tindakan untuk menentukan peran IAM saat mengkonfigurasi aplikasi. Kebijakan yang dikelola Amazon ini memberikan izin untuk tindakan iam:PassRole kepada pengguna hanya pada IAM role yang dimulai dengan prefiks service-role/kinesis-analytics.

      Jika pengguna ingin mengonfigurasi aplikasi dengan peran yang tidak memiliki awalan ini, pertama-tama Anda harus secara eksplisit memberikan izin kepada pengguna untuk iam:PassRole tindakan pada peran tertentu.

Anda juga dapat membuat kebijakan IAM khusus Anda sendiri untuk memberikan izin untuk tindakan dan sumber daya. Anda dapat menyematkan kebijakan khusus ini untuk pengguna atau grup yang memerlukan izin tersebut.

Contoh Kebijakan yang Dikelola Pelanggan

Contoh dalam bagian ini menyediakan sekelompok contoh kebijakan yang dapat Anda lampirkan ke pengguna. Jika Anda baru membuat kebijakan, kami sarankan Anda terlebih dahulu membuat pengguna di akun Anda. Kemudian lampirkan kebijakan ke pengguna secara berurutan, seperti yang diuraikan dalam langkah-langkah di bagian ini. Anda selanjutnya dapat menggunakan konsol untuk memverifikasi efek setiap kebijakan saat Anda melampirkan kebijakan kepada pengguna.

Awalnya, pengguna tidak memiliki izin dan tidak dapat melakukan apa pun di konsol. Ketika Anda melampirkan kebijakan ke pengguna, Anda dapat memverifikasi pengguna dapat melakukan berbagai tindakan pada konsol. 

Sebaiknya gunakan dua jendela browser. Di satu jendela, buat pengguna dan berikan izin. Di sisi lain, masuk ke AWS Management Console menggunakan kredensil pengguna dan verifikasi izin saat Anda memberikannya.

Untuk contoh yang menunjukkan cara membuat peran IAM yang dapat Anda gunakan sebagai peran eksekusi untuk aplikasi Anda, lihat Membuat Peran IAM di Panduan Pengguna IAM.

Langkah 1: Buat Pengguna IAM

Pertama, Anda perlu membuat pengguna, menambahkan pengguna ke grup IAM dengan izin administratif, dan kemudian memberikan izin administratif kepada pengguna yang Anda buat. Anda kemudian dapat mengakses AWS menggunakan URL khusus dan kredensil pengguna tersebut.

Untuk melihat instruksi, buka Membuat Grup Pengguna dan Administrator IAM Pertama Anda di Panduan Pengguna IAM.

Langkah 2: Izinkan Izin Pengguna untuk Tindakan yang Tidak Spesifik

Pertama, berikan izin pengguna untuk semua tindakan yang tidak spesifik untuk yang dibutuhkan pengguna saat bekerja dengan aplikasi. Ini termasuk izin untuk bekerja dengan aliran (tindakan Amazon Kinesis Data Streams, tindakan Amazon Data Firehose), dan izin untuk tindakan. CloudWatch Lampirkan kebijakan berikut ke pengguna.

Anda harus memperbarui kebijakan dengan memberi nama IAM role yang Anda ingin beri izin iam:PassRole, atau tentukan karakter wildcard (*) yang menunjukkan semua IAM role. Ini bukan praktik yang aman; namun, Anda mungkin tidak memiliki IAM role tertentu yang dibuat selama pengujian ini.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:ListStreams", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "firehose:DescribeDeliveryStream", "firehose:ListDeliveryStreams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" }, { "Effect": "Allow", "Action": "logs:GetLogEvents", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListPolicyVersions", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/service-role/role-name" } ] }

Langkah 3: Izinkan Pengguna Melihat Daftar Aplikasi dan Melihat Detail

Kebijakan berikut memberi pengguna izin berikut:

  • Izin untuk tindakan kinesisanalytics:ListApplications sehingga pengguna dapat melihat daftar aplikasi. Ini adalah panggilan API tingkat layanan, dan oleh karena itu, Anda menentukan "*" sebagai nilai Resource.

  • Izin untuk tindakan kinesisanalytics:DescribeApplication sehingga Anda bisa mendapatkan informasi tentang salah satu aplikasi.

Tambahkan kebijakan ini ke pengguna.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:ListApplications" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kinesisanalytics:DescribeApplication" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/*" } ] }

Verifikasi izin ini dengan masuk ke konsol menggunakan kredensil pengguna.

Langkah 4: Izinkan Pengguna Memulai Aplikasi Tertentu

Jika Anda ingin pengguna dapat memulai salah satu aplikasi yang ada, lampirkan kebijakan berikut kepada pengguna. Kebijakan ini menyediakan izin untuk tindakan kinesisanalytics:StartApplication. Anda harus memperbarui kebijakan dengan memberikan ID akun, AWS Wilayah, dan nama aplikasi Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/application-name" } ] }

Langkah 5: Izinkan Pengguna Membuat Aplikasi

Jika Anda ingin pengguna membuat aplikasi, Anda kemudian dapat melampirkan kebijakan berikut kepada pengguna. Anda harus memperbarui kebijakan dan memberikan AWS Wilayah, ID akun Anda, dan nama aplikasi tertentu yang Anda ingin pengguna buat, atau “*” sehingga pengguna dapat menentukan nama aplikasi apa pun (dan dengan demikian membuat beberapa aplikasi).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1473028104000", "Effect": "Allow", "Action": [ "kinesisanalytics:CreateApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kinesisanalytics:StartApplication", "kinesisanalytics:UpdateApplication", "kinesisanalytics:AddApplicationInput", "kinesisanalytics:AddApplicationOutput" ], "Resource": "arn:aws:kinesisanalytics:aws-region:aws-account-id:application/application-name" } ] }

Langkah 6: Izinkan Aplikasi Menggunakan Prapemrosesan Lambda

Jika Anda ingin aplikasi dapat menggunakan prapemrosesan Lambda, lampirkan kebijakan berikut ke peran tersebut.

{ "Sid": "UseLambdaFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": "<FunctionARN>" }