Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2
Aplikasi yang berjalan pada instans Amazon EC2 harus menyertakan AWS kredensional dalam permintaan API. AWS Anda dapat meminta pengembang menyimpan AWS kredensitas langsung dalam instans Amazon EC2 dan mengizinkan aplikasi dalam hal itu untuk menggunakan kredenal tersebut. Tetapi pengembang kemudian harus mengelola kredensil dan memastikan bahwa mereka meneruskan kredensil dengan aman ke setiap instance dan memperbarui setiap instans Amazon EC2 ketika saatnya untuk memperbarui kredensialnya. Banyak pekerjaan tambahan.
Sebagai gantinya, Anda dapat dan harus menggunakan peran IAM untuk mengelola kredenal sementara untuk aplikasi yang berjalan pada instans Amazon EC2. Bila Anda menggunakan peran, Anda tidak perlu mendistribusikan kredenal jangka panjang (seperti kredenal masuk atau kunci akses) ke instans Amazon EC2. Sebagai gantinya, peran menyediakan izin sementara yang dapat digunakan aplikasi saat mereka melakukan panggilan ke AWS sumber daya lain. Saat meluncurkan instans Amazon EC2, Anda menentukan peran IAM untuk diasosiasikan dengan instans. Aplikasi yang berjalan pada instans kemudian dapat menggunakan kredensial sementara yang diberikan oleh peran untuk menandatangani permintaan API.
Menggunakan peran untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2 memerlukan sedikit konfigurasi tambahan. Aplikasi yang berjalan pada instans Amazon EC2 diabstraksikan AWS oleh sistem operasi tervirtualisasi. Karena pemisahan ekstra ini, Anda memerlukan langkah tambahan untuk menetapkan AWS peran dan izin terkait ke instans Amazon EC2 dan membuatnya tersedia untuk aplikasinya. Langkah ekstra ini adalah pembuatan profil instance yang dilampirkan ke instance. Profil instans berisi peran dan dapat memberikan kredensial sementara peran ke aplikasi yang berjalan pada instans. Kredensial sementara tersebut kemudian dapat digunakan dalam panggilan API aplikasi untuk mengakses sumber daya dan membatasi akses ke sumber daya yang ditentukan oleh peran tersebut saja.
catatan
Hanya satu peran yang dapat ditetapkan ke instans Amazon EC2 sekaligus, dan semua aplikasi pada instans memiliki peran dan izin yang sama. Saat memanfaatkan Amazon ECS untuk mengelola instans Amazon EC2, Anda dapat menetapkan peran ke tugas Amazon ECS yang dapat dibedakan dari peran instans Amazon EC2 yang dijalankannya. Menetapkan setiap tugas peran selaras dengan prinsip akses yang paling tidak memiliki hak istimewa dan memungkinkan kontrol terperinci yang lebih besar atas tindakan dan sumber daya.
Untuk informasi selengkapnya, lihat Menggunakan peran IAM dengan tugas Amazon ECS di Panduan Praktik Terbaik Amazon Elastic Container Service.
Penggunaan peran dengan cara ini memiliki beberapa keuntungan. Karena kredensi peran bersifat sementara dan diperbarui secara otomatis, Anda tidak perlu mengelola kredensi, dan Anda tidak perlu khawatir tentang risiko keamanan jangka panjang. Selain itu, jika Anda menggunakan satu peran untuk beberapa instance, Anda dapat membuat perubahan pada satu peran tersebut dan perubahan tersebut menyebar secara otomatis ke semua instance.
catatan
Meskipun peran biasanya ditetapkan ke instans Amazon EC2 saat Anda meluncurkannya, peran juga dapat dilampirkan ke instans Amazon EC2 yang sedang berjalan. Untuk mempelajar cara melampirkan peran pada instans yang sedang berjalan, lihat Peran IAM untuk Amazon EC2.
Topik
Bagaimana cara kerja peran untuk instans Amazon EC2?
Pada gambar berikut, pengembang menjalankan aplikasi pada instans Amazon EC2 yang memerlukan akses ke bucket S3 bernama. amzn-s3-demo-bucket-photos Administrator membuat peran Get-pics layanan dan melampirkan peran tersebut ke instans Amazon EC2. Peran ini mencakup kebijakan izin yang memberikan akses hanya-baca ke bucket S3 tertentu. Ini juga mencakup kebijakan kepercayaan yang memungkinkan instans Amazon EC2 untuk mengambil peran dan mengambil kredensi sementara. Saat aplikasi berjalan pada instans, itu menggunakan kredensial sementara peran untuk mengakses bucket foto. Administrator tidak perlu memberikan izin kepada developer untuk mengakses bucket foto, dan developer tidak perlu membagikan atau mengelola kredensial.
-
Administrator menggunakan IAM untuk membuat peran
Get-pics. Dalam kebijakan kepercayaan peran, administrator menetapkan bahwa hanya instans Amazon EC2 yang dapat mengambil peran tersebut. Dalam kebijakan izin peran, administrator menentukan izin hanya-baca untuk bucketamzn-s3-demo-bucket-photos. -
Pengembang meluncurkan instans Amazon EC2 dan menetapkan peran
Get-picstersebut ke instance tersebut.catatan
Jika Anda menggunakan konsol IAM, profil instans dikelola untuk Anda dan sebagian besar transparan bagi Anda. Namun, jika Anda menggunakan API AWS CLI atau untuk membuat dan mengelola peran dan instans Amazon EC2, Anda harus membuat profil instans dan menetapkan peran tersebut sebagai langkah terpisah. Kemudian, saat Anda meluncurkan instans, Anda harus menentukan nama profil instans dan bukan nama peran.
-
Saat aplikasi berjalan, itu mendapatkan kredensial keamanan sementara dari metadata instans Amazon EC2, sebagaimana dijelaskan dalam Mengambil Kredensial Keamanan dari Metadata Instans. Ini adalah kredensial keamanan sementara yang mewakili peran tersebut dan berlaku untuk periode waktu yang terbatas.
Dengan beberapa AWS SDKs
, pengembang dapat menggunakan penyedia yang mengelola kredenal keamanan sementara secara transparan. (Dokumentasi untuk individu AWS SDKs menjelaskan fitur yang didukung oleh SDK tersebut untuk mengelola kredensional.) Atau, aplikasi bisa mendapatkan kredensi sementara langsung dari metadata instance instans Amazon EC2. Kredensial dan nilai terkait tersedia dari kategori
iam/security-credentials/(dalam hal ini,role-nameiam/security-credentials/Get-pics) metadata. Jika aplikasi mendapatkan kredensial dari metadata instans, itu dapat menyimpan kredensial tersebut. -
Dengan menggunakan kredensial sementara yang diambil, aplikasi mengakses bucket foto. Karena kebijakan terlampir pada peran
Get-pics, aplikasi memiliki izin hanya-baca.Kredensi keamanan sementara yang tersedia pada instans secara otomatis diperbarui sebelum kedaluwarsa sehingga set yang valid selalu tersedia. Aplikasi hanya perlu memastikan bahwa itu mendapatkan serangkaian kredensial baru dari metadata instans sebelum metadata yang sedang digunakan kedaluwarsa. Dimungkinkan untuk menggunakan AWS SDK untuk mengelola kredensional sehingga aplikasi tidak perlu menyertakan logika tambahan untuk menyegarkan kredensialnya. Misalnya, membuat instan klien dengan Penyedia Kredensial Profil Instans. Namun, jika aplikasi mendapatkan kredensial keamanan sementara dari metadata instans dan sudah menyimpannya, itu akan mendapatkan rangkaian kredensial yang diperbarui setiap jam, atau setidaknya 15 menit sebelum rangkaian yang sedang digunakan kedaluwarsa. Waktu kedaluwarsa termasuk dalam informasi yang dikembalikan dalam kategori.
iam/security-credentials/role-name
Izin yang diperlukan untuk menggunakan peran dengan Amazon EC2
Untuk meluncurkan instance dengan peran, pengembang harus memiliki izin untuk meluncurkan instans Amazon EC2 dan izin untuk meneruskan peran IAM.
Kebijakan contoh berikut memungkinkan pengguna untuk menggunakan Konsol Manajemen AWS untuk meluncurkan instance dengan peran. Kebijakan ini mencakup wildcard (*) untuk memungkinkan pengguna meneruskan peran apa pun dan melakukan tindakan Amazon EC2 yang terdaftar. ListInstanceProfilesTindakan ini memungkinkan pengguna untuk melihat semua peran yang tersedia di Akun AWS.
contoh Contoh kebijakan yang memberikan izin kepada pengguna untuk menggunakan konsol Amazon EC2 untuk meluncurkan instans dengan peran.
Membatasi peran mana yang dapat diteruskan ke instans Amazon EC2 (menggunakan) PassRole
Anda dapat menggunakan PassRole izin untuk membatasi peran mana yang dapat diteruskan pengguna ke instans Amazon EC2 saat pengguna meluncurkan instance. Ini membantu mencegah pengguna menjalankan aplikasi yang memiliki izin lebih dari yang diberikan kepada pengguna—yaitu, agar dapat memperoleh hak istimewa yang ditingkatkan. Misalnya, bayangkan pengguna Alice hanya memiliki izin untuk meluncurkan instans Amazon EC2 dan bekerja dengan bucket Amazon S3, tetapi peran yang diteruskannya ke instans Amazon EC2 memiliki izin untuk bekerja dengan IAM dan Amazon DynamoDB. Dalam hal ini, Alice mungkin dapat meluncurkan instance, masuk ke dalamnya, mendapatkan kredensi keamanan sementara, dan kemudian melakukan tindakan IAM atau DynamoDB yang tidak dia otorisasi.
Untuk membatasi peran mana yang dapat diteruskan pengguna ke instans Amazon EC2, Anda membuat kebijakan yang mengizinkan PassRole tindakan tersebut. Anda kemudian melampirkan kebijakan ke pengguna (atau ke grup IAM milik pengguna) yang akan meluncurkan instans Amazon EC2. Di Resource elemen kebijakan, Anda mencantumkan peran atau peran yang diizinkan diteruskan pengguna ke instans Amazon EC2. Saat pengguna meluncurkan suatu instans dan mengaitkan peran dengannya, Amazon EC2 akan memeriksa apakah pengguna diizinkan untuk meneruskan peran tersebut. Tentu saja, Anda juga harus memastikan bahwa peran yang dapat diteruskan oleh pengguna tidak mencakup lebih banyak izin dari yang seharusnya dimiliki oleh pengguna.
catatan
PassRole bukan merupakan tindakan API dengan cara yang sama seperti RunInstances atau ListInstanceProfiles. Sebagai gantinya, ini adalah izin yang AWS memeriksa setiap kali peran ARN diteruskan sebagai parameter ke API (atau konsol melakukan ini atas nama pengguna). Itu membantu administrator untuk mengontrol peran mana yang dapat diteruskan oleh pengguna yang mana. Dalam kasus ini, itu memastikan bahwa pengguna diizinkan untuk melampirkan peran tertentu ke instans Amazon EC2.
contoh Contoh kebijakan yang memberikan izin kepada pengguna untuk meluncurkan instans Amazon EC2 dengan peran tertentu
Kebijakan sampel berikut memungkinkan pengguna untuk menggunakan Amazon EC2 API untuk meluncurkan instans dengan peran. Elemen Resource menentukan Amazon Resource Name (ARN) dari peran. Dengan menentukan ARN, kebijakan memberi izin kepada pengguna untuk hanya meneruskan peran Get-pics. Jika pengguna mencoba menentukan peran yang berbeda saat meluncurkan suatu instans, tindakan tersebut gagal. Pengguna memang memiliki izin untuk menjalankan setiap instans, terlepas dari apakah mereka meneruskan suatu peran.
Memungkinkan peran profil instans untuk beralih ke peran dalam akun lain
Anda dapat mengizinkan aplikasi yang berjalan di instans Amazon EC2 untuk menjalankan perintah di akun lain. Untuk melakukan ini, Anda harus mengizinkan peran instans Amazon EC2 di akun pertama untuk beralih ke peran di akun kedua.
Bayangkan Anda menggunakan dua Akun AWS dan Anda ingin mengizinkan aplikasi yang berjalan pada instans Amazon EC2 untuk menjalankan AWS CLI111111111111 Instance tersebut menyertakan peran profil abcd instance yang memungkinkan aplikasi melakukan tugas Amazon S3 hanya-baca di bucket dalam akun amzn-s3-demo-bucket1 yang sama. 111111111111 Namun demikian, aplikasi tersebut juga harus diizinkan untuk menjalankan efgh peran lintas akun untuk mengakses amzn-s3-demo-bucket2 bucket Amazon S3 dalam akun 222222222222.
Peran profil instans abcd Amazon EC2 harus memiliki kebijakan izin berikut untuk mengizinkan aplikasi mengakses bucket Amazon S3amzn-s3-demo-bucket1:
Akun 111111111111 Kebijakan abcd Izin Peran
Peran abcd harus mempercayai layanan Amazon EC2 untuk menjalankan peran tersebut. Untuk melakukannya, peran abcd harus memiliki kebijakan kepercayaan berikut:
Akun 111111111111 Kebijakan abcd Kepercayaan Peran
Anggap bahwa peran lintas akun efgh memungkinkan tugas Amazon S3 hanya baca di bucket amzn-s3-demo-bucket2 dalam akun 222222222222 yang sama. Untuk melakukannya, peran lintas akun efgh harus memiliki kebijakan izin berikut:
Akun 222222222222 Kebijakan efgh Izin Peran
Peran efgh harus mempercayai profil instans abcd untuk menjalankannya. Untuk melakukannya, peran efgh harus memiliki kebijakan kepercayaan berikut:
Akun 222222222222 Kebijakan efgh Kepercayaan Peran
Bagaimana saya memulainya?
Untuk memahami cara kerja peran dengan instans Amazon EC2, Anda perlu menggunakan konsol IAM untuk membuat peran, meluncurkan instans Amazon EC2 yang menggunakan peran tersebut, lalu memeriksa instance yang sedang berjalan. Anda dapat menguji metadata instans untuk melihat bagaimana kredensial sementara peran tersedia untuk sebuah instans. Anda juga dapat melihat bagaimana aplikasi yang berjalan pada suatu instans dapat menggunakan peran tersebut. Gunakan sumber daya berikut ini untuk mempelajari lebih banyak.
-
Peran IAM di Tutorial Instans Amazon EC2
. Video tertaut menunjukkan cara menggunakan peran IAM dengan instans Amazon EC2 untuk mengontrol apa yang dapat dilakukan aplikasi saat dijalankan pada instance. Video menunjukkan bagaimana aplikasi (ditulis dalam AWS SDK) bisa mendapatkan kredensi keamanan sementara melalui peran. -
Penelusuran SDK. Dokumentasi AWS SDK menyertakan penelusuran yang menunjukkan aplikasi yang berjalan pada instans Amazon EC2 yang menggunakan kredensi sementara untuk peran guna membaca bucket Amazon S3. Setiap penelusuran berikut menyajikan langkah serupa dengan bahasa pemrograman yang berbeda:
-
Konfigurasikan Peran IAM untuk Amazon EC2 dengan SDK for Java di Panduan Pengembang AWS SDK untuk Java
-
Luncurkan Instans Amazon EC2 menggunakan SDK for .NET di Panduan Pengembang AWS SDK untuk .NET
-
Membuat Instans Amazon EC2 dengan SDK for Ruby di Panduan Pengembang AWS SDK untuk Ruby
-
Informasi Terkait
Untuk informasi selengkapnya tentang membuat peran atau peran untuk instans Amazon EC2, lihat informasi berikut:
-
Untuk informasi selengkapnya tentang penggunaan peran IAM dengan instans Amazon EC2, buka Panduan Pengguna Amazon EC2.
-
Untuk membuat peran, lihat Pembuatan peran IAM
-
Untuk informasi lebih lanjut tentang membuat kredensial keamanan sementara, lihat Kredensial keamanan sementara di IAM.
-
Jika Anda bekerja dengan IAM API atau CLI, Anda harus membuat dan mengelola profil instans IAM. Untuk informasi selengkapnya tentang profil instans, lihat Gunakan profil contoh.
-
Untuk informasi selengkapnya tentang kredensil keamanan sementara untuk peran dalam metadata instans, lihat Mengambil Kredensil Keamanan dari Metadata Instans di Panduan Pengguna Amazon EC2.