Berikan izin pengguna untuk meneruskan peran ke layanan AWS - 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.

Berikan izin pengguna untuk meneruskan peran ke layanan AWS

Untuk mengonfigurasi banyak AWS layanan, Anda harus meneruskan peran IAM ke layanan. Ini memungkinkan layanan untuk mengambil peran nanti dan melakukan tindakan atas nama Anda. Untuk sebagian besar layanan, Anda hanya perlu meneruskan peran ke layanan satu kali selama penyiapan, dan tidak setiap kali layanan mengambil peran tersebut. Misalnya, asumsikan bahwa Anda memiliki aplikasi yang berjalan pada EC2 instance Amazon. Aplikasi tersebut memerlukan kredensial sementara untuk autentikasi, dan izin untuk mengotorisasi aplikasi guna melakukan tindakan di AWS. Saat menyiapkan aplikasi, Anda harus meneruskan peran ke Amazon EC2 untuk digunakan dengan instance yang menyediakan kredensi tersebut. Anda menentukan izin untuk aplikasi yang berjalan pada instans dengan melampirkan kebijakan IAM pada peran tersebut. Aplikasi ini mengasumsikan peran setiap kali diperlukan untuk melakukan tindakan yang diizinkan oleh peran tersebut.

Untuk meneruskan peran (dan izinnya) ke AWS layanan, pengguna harus memiliki izin untuk meneruskan peran tersebut ke layanan. Ini membantu administrator untuk memastikan bahwa hanya pengguna yang disetujui yang dapat mengonfigurasi layanan dengan peran yang memberikan izin. Untuk mengizinkan pengguna meneruskan peran ke AWS layanan, Anda harus memberikan PassRole izin kepada pengguna, peran, atau grup IAM pengguna.

Awas
  • Anda hanya dapat menggunakan PassRole izin untuk meneruskan peran IAM ke layanan yang berbagi AWS akun yang sama. Untuk meneruskan peran di Akun A ke layanan di Akun B, Anda harus terlebih dahulu membuat peran IAM di Akun B yang dapat mengambil peran dari Akun A, dan kemudian peran dalam Akun B dapat diteruskan ke layanan. Lihat perinciannya di Akses sumber daya lintas akun di IAM.

  • Jangan mencoba mengontrol siapa yang dapat melewati peran dengan menandai peran dan kemudian menggunakan kunci ResourceTag kondisi dalam kebijakan dengan iam:PassRole tindakan tersebut. Pendekatan ini tidak memiliki hasil yang dapat diandalkan.

Saat menyetel PassRole izin, Anda harus memastikan bahwa pengguna tidak melewati peran di mana peran tersebut memiliki lebih banyak izin daripada yang Anda inginkan untuk dimiliki pengguna. Misalnya, Alice mungkin tidak diizinkan untuk melakukan tindakan Amazon S3 apa pun. Jika Alice dapat meneruskan peran ke layanan yang memungkinkan tindakan Amazon S3, layanan dapat melakukan tindakan Amazon S3 atas nama Alice saat menjalankan pekerjaan.

Saat menentukan peran terkait layanan, Anda juga harus memiliki izin untuk meneruskan peran tersebut ke layanan. Beberapa layanan secara otomatis membuat peran yang terkait dengan layanan di akun Anda ketika Anda melakukan tindakan di layanan tersebut. Misalnya, Amazon EC2 Auto Scaling membuat peran AWSServiceRoleForAutoScaling terkait layanan untuk Anda saat Anda membuat grup Auto Scaling untuk pertama kalinya. Jika Anda mencoba menentukan peran terkait layanan saat membuat grup Auto Scaling dan Anda tidak memiliki iam:PassRole izin, Anda akan menerima kesalahan. Jika Anda tidak menentukan peran secara eksplisit, iam:PassRole izin tidak diperlukan, dan defaultnya adalah menggunakan AWSServiceRoleForAutoScaling peran untuk semua operasi yang dilakukan pada grup tersebut. Untuk mempelajari layanan yang mendukung peran yang terkait dengan layanan, lihat AWS layanan yang bekerja dengan IAM. Untuk mempelajari layanan mana yang secara otomatis membuat peran yang terkait dengan layanan saat Anda melakukan tindakan dalam layanan tersebut, pilih tautan Ya dan lihat dokumentasi peran yang terkait dengan layanan untuk layanan tersebut.

Pengguna dapat meneruskan sebuah peran ARN sebagai sebuah parameter dalam setiap operasi API yang menggunakan peran tersebut untuk menetapkan izin ke layanan. Layanan kemudian memeriksa apakah pengguna memiliki izin iam:PassRole. Untuk membatasi pengguna agar hanya meneruskan peran yang disetujui, Anda dapat menyaring izin iam:PassRole dengan elemen Resources pernyataan kebijakan IAM.

Anda dapat menggunakan Condition elemen dalam kebijakan JSON untuk menguji nilai kunci yang disertakan dalam konteks permintaan semua AWS permintaan. Untuk mempelajari penggunaan kunci syarat dalam kebijakan, lihat Elemen kebijakan IAM JSON: Condition. Kunci syarat iam:PassedToService dapat digunakan untuk menentukan ke prinsipal layanan mana sebuah peran dapat diberikan. Untuk mempelajari selengkapnya tentang menggunakan kunci iam:PassedToService kondisi dalam kebijakan, lihat iam: PassedToService.

Contoh 1

Misalkan Anda ingin memberi pengguna kemampuan untuk meneruskan serangkaian peran yang disetujui ke EC2 layanan Amazon setelah meluncurkan instance. Anda memerlukan tiga elemen:

  • Kebijakan izin IAM yang dilamprkan ke peran yang menentukan apa yang dapat dilakukan peran tersebut. Cakupan diperbolehkan hanya untuk tindakan yang harus dilakukan peran, dan hanya untuk sumber daya yang diperlukan peran untuk tindakan tersebut. Anda dapat menggunakan kebijakan izin IAM yang AWS dikelola atau dibuat pelanggan.

    JSON
    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "A list of the permissions the role is allowed to use" ], "Resource": [ "A list of the resources the role is allowed to access" ] } }
  • Kebijakan kepercayaan untuk peran yang memungkinkan layanan untuk mengasumsikan peran. Misalnya, Anda dapat melampirkan kebijakan kepercayaan berikut pada peran dengan tindakan UpdateAssumeRolePolicy. Kebijakan kepercayaan ini memungkinkan Amazon EC2 untuk menggunakan peran dan izin yang dilampirkan pada peran tersebut.

    JSON
    { "Version": "2012-10-17", "Statement": { "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  • Kebijakan izin IAM yang dilampirkan pada pengguna IAM yang memungkinkan pengguna untuk hanya meneruskan peran yang disetujui tersebut. Anda biasanya iam:GetRole menambahkan iam:PassRole sehingga pengguna bisa mendapatkan detail peran yang akan diteruskan. Dalam contoh ini, pengguna hanya dapat meneruskan peran yang ada di akun yang ditentukan dengan nama yang diawali denganEC2-roles-for-XYZ-:

    JSON
    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/EC2-roles-for-XYZ-*" }] }

Sekarang pengguna dapat memulai EC2 instance Amazon dengan peran yang ditetapkan. Aplikasi yang berjalan pada instans dapat mengakses kredensial sementara untuk peran tersebut melalui metadata profil instans. Kebijakan izin IAM yang dilamprkan ke peran yang menentukan apa yang dapat dilakukan oleh instans tersebut.

Contoh 2

Amazon Relational Database Service (Amazon RDS) mendukung fitur yang disebut Enhanced Monitoring. Fitur ini memungkinkan Amazon RDS untuk memantau instans basis data dengan menggunakan agen. Ini juga memungkinkan Amazon RDS untuk mencatat metrik ke Amazon CloudWatch Logs. Untuk mengaktifkan fitur ini, Anda harus membuat peran layanan untuk memberi Amazon RDS izin untuk memantau dan menyusun metrik ke log Anda.

Untuk membuat peran untuk pemantauan yang ditingkatkan Amazon RDS.
  1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Pilih Peran, lalu pilih Buat peran.

  3. Pilih jenis peran AWS Layanan, dan kemudian untuk kasus Penggunaan untuk lainnya Layanan AWS, pilih layanan RDS. Pilih RDS — Enhanced Monitoring, lalu pilih Next.

  4. Pilih kebijakan RDSEnhanced MonitoringRole izin Amazon.

  5. Pilih Berikutnya.

  6. Untuk nama Peran, masukkan nama peran yang membantu Anda mengidentifikasi tujuan peran ini. Nama peran harus unik di dalam diri Anda Akun AWS. Bila nama peran digunakan dalam kebijakan atau sebagai bagian dari ARN, nama peran tersebut peka huruf besar/kecil. Saat nama peran muncul ke pelanggan di konsol, seperti selama proses masuk, nama peran tidak peka huruf besar/kecil. Karena berbagai entitas mungkin mereferensikan peran, Anda tidak dapat mengedit nama peran setelah dibuat.

  7. (Opsional) Untuk Deskripsi, masukkan deskripsi untuk peran baru ini.

  8. (Opsional) Tambahkan metadata ke pengguna dengan cara melampirkan tanda sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang menggunakan tanda di IAM, lihat Tag untuk AWS Identity and Access Management sumber daya.

  9. Tinjau peran dan kemudian pilih Buat peran.

Peran tersebut secara otomatis mendapatkan kebijakan kepercayaan yang memberikan izin layanan monitoring.rds.amazonaws.com untuk memegang peran tersebut. Setelah itu, Amazon RDS dapat melakukan semua tindakan yang diizinkan oleh kebijakan AmazonRDSEnhancedMonitoringRole.

Pengguna yang ingin Anda akses Enhanced Monitoring memerlukan kebijakan yang menyertakan pernyataan yang memungkinkan pengguna untuk mencantumkan peran RDS dan pernyataan yang memungkinkan pengguna untuk meneruskan peran, seperti berikut ini. Gunakan nomor akun Anda dan ganti nama peran dengan nama yang Anda berikan di langkah 6.

{ "Sid": "PolicyStatementToAllowUserToListRoles", "Effect": "Allow", "Action": ["iam:ListRoles"], "Resource": "*" }, { "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/RDS-Monitoring-Role" }

Anda dapat menggabungkan pernyataan ini dengan pernyataan dalam kebijakan lain atau menempatkannya ke dalam kebijakannya sendiri. Sebagai gantinya, untuk menentukan bahwa pengguna dapat meneruskan peran apa pun yang dimulaiRDS-, Anda dapat mengganti nama peran di ARN sumber daya dengan wildcard, sebagai berikut.

"Resource": "arn:aws:iam::account-id:role/RDS-*"

iam:PassRoletindakan dalam AWS CloudTrail log

PassRolebukan panggilan API. PassRoleadalah izin, artinya tidak ada CloudTrail log yang dihasilkan untuk IAMPassRole. Untuk meninjau peran apa yang diteruskan ke mana Layanan AWS CloudTrail, Anda harus meninjau CloudTrail log yang membuat atau memodifikasi AWS sumber daya yang menerima peran tersebut. Misalnya, peran diteruskan ke AWS Lambda fungsi saat dibuat. Log untuk CreateFunction tindakan menunjukkan catatan peran yang diteruskan ke fungsi.