Izin diperlukan untuk mengakses sumber daya IAM - AWS Identity and Access Management

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

Izin diperlukan untuk mengakses sumber daya IAM

Sumber Daya adalah objek dalam suatu layanan. Sumber daya IAM meliputi grup, pengguna, peran, dan kebijakan. Jika Anda masuk dengan Pengguna root akun AWS kredensil, Anda tidak memiliki batasan dalam mengelola kredensil IAM atau sumber daya IAM. Namun, pengguna IAM harus secara eksplisit diberikan izin untuk mengelola kredensial atau sumber daya IAM. Anda dapat melakukannya dengan melampirkan kebijakan berbasis identitas kepada pengguna.

catatan

Sepanjang AWS dokumentasi, ketika kami merujuk pada kebijakan IAM tanpa menyebutkan kategori tertentu, yang kami maksud adalah kebijakan berbasis identitas yang dikelola pelanggan. Untuk perincian tentang kategori kebijakan, lihat Kebijakan dan Izin di IAM.

Izin untuk mengurus identitas IAM

Izin yang diperlukan untuk mengelola grup IAM, pengguna, peran, dan kredensial yang biasanya sesuai dengan tindakan API untuk tugas tersebut. Misalnya, untuk membuat pengguna IAM, Anda harus memiliki iam:CreateUser izin yang memiliki perintah API yang sesuai: CreateUser. Untuk mengizinkan pengguna IAM membuat pengguna IAM lainnya, Anda dapat melampirkan kebijakan IAM seperti berikut ini ke pengguna tersebut:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:CreateUser", "Resource": "*" } }

Dalam kebijakan, nilai elemen Resource bergantung pada tindakan dan sumber daya yang dapat dipengaruhi oleh tindakan tersebut. Dalam contoh sebelumnya, kebijakan ini memungkinkan pengguna untuk membuat pengguna mana pun (* adalah wildcard yang cocok dengan semua string). Sebaliknya, kebijakan yang mengizinkan pengguna untuk hanya mengubah access key mereka sendiri (tindakan API CreateAccessKey dan UpdateAccessKey) biasanya memiliki elemen Resource. Dalam hal ini ARN mencakup variabel (${aws:username}) yang menyelesaikan nama pengguna saat ini, seperti dalam contoh berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListUsersForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "arn:aws:iam::*:*" }, { "Sid": "ViewAndUpdateAccessKeys", "Effect": "Allow", "Action": [ "iam:UpdateAccessKey", "iam:CreateAccessKey", "iam:ListAccessKeys" ], "Resource": "arn:aws:iam::*:user/${aws:username}" } ] }

Dalam contoh sebelumnya, ${aws:username} adalah variabel yang menyelesaikan nama pengguna saat ini. Untuk informasi lebih lanjut tentang variabel-variable kebijakan, lihat Elemen kebijakan IAM: Variabel dan tag.

Menggunakan karakter wildcard (*) dalam nama tindakan sering kali mempermudah pemberian izin untuk semua tindakan yang terkait dengan tugas tertentu. Misalnya, untuk memungkinkan pengguna melakukan tindakan IAM, Anda dapat menggunakan iam:* untuk tindakannya. Agar pengguna dapat melakukan tindakan terkait hanya untuk mengakses kunci, Anda dapat menggunakan iam:*AccessKey* di elemen Action pernyataan kebijakan. Hal ini memberi pengguna izin untuk melakukan tindakan CreateAccessKey, DeleteAccessKey, GetAccessKeyLastUsed, ListAccessKeys, dan UpdateAccessKey. (Jika tindakan ditambahkan ke IAM di masa depan yang memiliki "AccessKey" dalam nama, menggunakan iam:*AccessKey* Action elemen juga akan memberikan izin pengguna untuk tindakan baru itu.) Contoh berikut menunjukkan kebijakan yang memungkinkan pengguna untuk melakukan semua tindakan yang berkaitan dengan kunci akses mereka sendiri (ganti account-id dengan Akun AWS ID Anda):

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "iam:*AccessKey*", "Resource": "arn:aws:iam::account-id:user/${aws:username}" } }

Beberapa tugas, seperti menghapus grup, melibatkan beberapa tindakan: Anda terlebih dahulu harus menghapus pengguna dari grup, kemudian memisahkan atau menghapus kebijakan grup, dan kemudian menghapusnya. Jika Anda ingin pengguna dapat menghapus grup, Anda harus yakin untuk memberikan izin kepada pengguna untuk melakukan semua tindakan terkait.

Izin untuk bekerja di AWS Management Console

Contoh-contoh sebelumnya menunjukkan kebijakan yang memungkinkan pengguna untuk melakukan tindakan dengan AWS CLI atau SDK AWS.

Saat pengguna bekerja dengan konsol, konsol mengeluarkan permintaan ke IAM untuk mencantumkan grup, pengguna, peran, dan kebijakan, dan untuk mendapatkan kebijakan yang terkait dengan grup, pengguna, atau peran. Konsol juga mengeluarkan permintaan untuk mendapatkan Akun AWS informasi dan informasi tentang kepala sekolah. Prinsipalnya adalah pengguna yang mengajukan permintaan di konsol.

Secara umum, untuk melakukan tindakan, Anda hanya boleh memiliki tindakan yang sesuai yang termasuk dalam kebijakan. Untuk membuat pengguna, Anda perlu izin untuk menghubungi tindakan CreateUser. Sering kali, ketika Anda menggunakan konsol untuk melakukan tindakan, Anda harus memiliki izin untuk menampilkan, membuat daftar, mendapatkan, atau melihat sumber daya di konsol. Ini diperlukan agar Anda dapat menavigasi melalui konsol untuk membuat tindakan yang ditentukan. Misalnya, jika pengguna Jorge ingin menggunakan konsol untuk mengubah kunci aksesnya sendiri, dia beralih ke konsol IAM dan memilih Pengguna. Tindakan ini menyebabkan konsol untuk membuat permintaan ListUsers. Jika Jorge tidak memiliki izin untuk tindakan iam:ListUsers, konsol ditolak akses ketika mencoba untuk membuat daftar pengguna. Sebagai hasilnya, Jorge tidak bisa mendapatkan nama dan access key-nya sendiri, meskipun dia memiliki izin untuk tindakan CreateAccessKey dan UpdateAccessKey.

Jika Anda ingin memberikan izin kepada pengguna untuk mengelola grup, pengguna, peran, kebijakan, dan kredensil dengan AWS Management Console, Anda harus menyertakan izin untuk tindakan yang dilakukan konsol. Untuk beberapa contoh kebijakan yang dapat Anda gunakan untuk memberikan izin kepada pengguna, lihat Contoh kebijakan untuk mengelola sumber daya IAM.

Memberikan izin di seluruh akun AWS

Anda dapat memberi izin pengguna IAM secara langsung di akses akun Anda sendiri ke sumber daya Anda. Jika pengguna dari akun lain memerlukan akses ke sumber daya Anda, Anda dapat membuat peran IAM, yang merupakan entitas yang menyertakan izin tetapi tidak terkait dengan pengguna tertentu. Pengguna dari akun lain kemudian dapat menggunakan peran dan mengakses sumber daya sesuai dengan izin yang Anda tetapkan untuk peran tersebut. Untuk informasi selengkapnya, lihat Menyediakan akses ke pengguna IAM di pengguna lain Akun AWS yang Anda miliki.

catatan

Beberapa layanan mendukung kebijakan berbasis sumber daya sebagaimana dijelaskan dalam Kebijakan berbasis identitas dan kebijakan berbasis sumber daya (seperti Amazon S3, Amazon SNS, dan Amazon SQS). Untuk layanan tersebut, alternatif untuk menggunakan peran adalah dengan memberikan kebijakan ke sumber daya (bucket, topik, atau antrean) yang ingin Anda bagikan. Kebijakan berbasis sumber daya dapat menentukan AWS akun yang memiliki izin untuk mengakses sumber daya.

Izin satu layanan untuk mengakses layanan lainnya

Banyak AWS layanan mengakses AWS layanan lain. Misalnya, beberapa AWS layanan—termasuk Amazon EMR, Elastic Load Balancing, dan Amazon EC2 Auto Scaling—mengelola instans Amazon EC2. AWS Layanan lain memanfaatkan bucket Amazon S3, topik Amazon SNS, antrian Amazon SQS, dan sebagainya.

Skenario untuk mengelola izin dalam kasus-kasus ini berbeda-beda menurut layanan. Berikut ini beberapa contoh cara izin ditangani untuk layanan yang berbeda:

  • Di Amazon EC2 Auto Scaling, pengguna harus memiliki izin untuk menggunakan Auto Scaling, tetapi tidak perlu mendapatkan izin secara eksplisit untuk mengelola instans Amazon EC2.

  • Dalam AWS Data Pipeline, peran IAM menentukan apa yang dapat dilakukan pipeline; pengguna memerlukan izin untuk mengambil peran tersebut. (Untuk detailnya, lihat Memberikan Izin ke Pipelines dengan IAM di Panduan Pengembang AWS Data Pipeline .)

Untuk detail tentang cara mengonfigurasi izin dengan benar sehingga AWS layanan dapat menyelesaikan tugas yang Anda inginkan, lihat dokumentasi untuk layanan yang Anda panggil. Untuk mempelajari cara membuat peran untuk layanan, lihat Membuat peran untuk mendelegasikan izin ke layanan AWS.

Mengonfigurasi layanan dengan peran IAM untuk bekerja atas nama Anda

Ketika Anda ingin mengonfigurasi AWS layanan agar berfungsi atas nama Anda, Anda biasanya memberikan ARN untuk peran IAM yang menentukan apa yang diizinkan untuk dilakukan layanan. AWS memeriksa untuk memastikan bahwa Anda memiliki izin untuk meneruskan peran ke layanan. Untuk informasi selengkapnya, lihat Memberi izin kepada pengguna untuk meneruskan peran ke layanan AWS.

Tindakan yang diperlukan

Tindakan adalah hal-hal yang dapat Anda lakukan ke sumber daya, seperti melihat, membuat, mengedit, dan menghapus sumber daya tersebut. Tindakan ditentukan oleh setiap AWS layanan.

Untuk mengizinkan seseorang melakukan suatu tindakan, Anda harus menyertakan tindakan yang diperlukan dalam kebijakan yang berlaku untuk identitas panggilan atau sumber daya yang terpengaruh. Secara umum, untuk memberikan izin yang diperlukan untuk melakukan tindakan, Anda harus menyertakan tindakan tersebut dalam kebijakan Anda. Misalnya, untuk membuat pengguna, Anda perlu menambahkan CreateUser tindakan ke kebijakan Anda.

Dalam beberapa kasus, suatu tindakan mungkin mengharuskan Anda menyertakan tindakan terkait tambahan dalam kebijakan Anda. Misalnya, untuk memberikan izin kepada seseorang untuk membuat direktori di AWS Directory Service menggunakan operasi ds:CreateDirectory, Anda harus menyertakan tindakan berikut dalam kebijakan mereka:

  • ds:CreateDirectory

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:CreateSecurityGroup

  • ec2:CreateNetworkInterface

  • ec2:DescribeNetworkInterfaces

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:AuthorizeSecurityGroupEgress

Saat Anda membuat atau mengedit kebijakan menggunakan editor visual, Anda menerima peringatan dan petunjuk untuk membantu Anda memilih semua tindakan yang diperlukan untuk kebijakan Anda.

Untuk informasi selengkapnya tentang izin yang diperlukan untuk membuat direktori AWS Directory Service, lihat Contoh 2: Mengizinkan Pengguna Membuat Direktori.