Dalam pengelolaan atau manajemen Amazon Web Services (AWS), sudah lazim jika user yang mengelola lebih dari satu. Usernya pun bermacam macam jenis dan hak aksesnya. Misakan administrator atau admin yang memiliki hak akses lebih dibandingkan user pada umumnya. Misalkan juga ada user/developer yang hanya boleh akses ke service atau resource tertentu yang ada kaitannya dengan aplikasi yang sedang dia develop/kembangkan atau dia kelola.
Di AWS terdapat service yang memberikan fitur dimana berbagai macam user tadi dapat diberikan hak akses atau privilege sesuai porsinya atau sesuai kebutuhannya saja. Hal ini dimungkinkan dikonfigurasi di service AWS Identity and Access Management (IAM).
Dengan IAM, kita dapat memberikan pengamanan atau security lebih ke services atau resources AWS yang kita gunakan. Sehingga user user yang tidak berkepentingan tidak menggunakan atau melakukan konfigurasi yang tidak semestinya. Hal ini juga dapat mencegah terjadinya hal hal yang tidak diinginkan, misalnya: misconfiguration atau kesalahan konfigurasi karena user salah akses ke resource yang tidak semestinya dia lakukan. Selain itu untuk mencegah adanya fraud karena penggunakan service atau resource yang tidak semestinya sehingga menambah atau membebani biaya atau cost AWS dari yang semestinya.
Sekilas dokumentasi terkait AWS IAM dapat dilihat di link berikut Dokumentasi AWS IAM
Pada artikel kali ini, saya akan memberikan langkah langkah atau tutorial sederhana terkait konfigurasi AWS IAM. Dimana skenarionya adalah akan membuat 2 user dengan 2 akses berbeda. Sebelumnya sudah dibuat 2 AWS S3 bucket, dimana bucket tersebut hanya dapat diakses oleh user yang memiliki akses ke bucket tersebut.
Topologi yang digunakan dalam artikel ini, sebagai berikut:
User ludes.demo.1 hanya dapat askes ke S3 Bucket ludes-demo-1 S3 Bucket. User ludes.demo.2 juga hanya dapat ke S3 Bucket miliknya yaitu ludes-demo-2 S3 Bucket. Ketika user ludes.demo.1 akan akses bucket user lain misal ludes-demo-2 S3 Bucket akan gagal dan sebaliknya.
Berikut langkah langkah konfigurasinya:
-
Sebelumnya sudah dibuatkan S3 bucket untuk keperluan demo artikel ini dengan nama ludes-demo-1 dan ludes-demo-2
-
S3 bucket ludes-demo-1 nantinya hanya dapat diakses oleh user ludes.demo.1 dan di dalam bucket sudah ada dummy file dengan nama ludes-demo-1.txt
-
Begitu juga dengan S3 bucket ludes-demo-2, nantinya hanya dapat diakses oleh user ludes.demo.2 dan di dalam bucket sudah ada dummy file dengan nama ludes-demo-2.txt
-
Selanjutnya adalah memulai konfigurasi AWS IAM. Masuk ke halaman service IAM pada AWS Web Console. Kemudian pilih menu Policies
-
Pada halaman Policies, klik tombol Create policy
-
Mulai konfigurasi policy untuk akses S3 user ludes.demo.1. Pilih dan cari service S3
-
Kemudian pilih actions yang diizinkan. Pada artikel ini, sebagai simulasi akan diberikan seluruh S3 actions
-
Namun untuk resource hanya akan diberikan akses ke spesific resource atau resource tertentu saja. Pada contoh di artikel ini, hanya bucket dan object sesuai user saja yang diberikan akses.
-
Mulai dengan klik Add ARN pada bucket di gambar sebelumnya, kemudian isi nama bucket. Pada bagian ini, dimulai dengan bucket untuk user ludes.demo.1. Masukkan nama bucket ludes-demo-1
-
Kemudian pada bagian object, klik Add ARN dan masukkan nama bucket ludes-demo-1 dan akses ke seluruh object. Dapat diwakilkan dengan klik checbox Any atau wildcard dengan karaketer *
-
Kemudian masukkan Tags jika diinginkan atau optional. Pada contoh di artikel ini, saya berikan tag dengan key Name dan valuenya adalah nama policy
-
Selanjutnya berikan nama policy dan deskripsinya. Jika sudah selesai review, selesaikan proses pembuatan policy.
-
Lakukan hal yang sama untuk policy akses yang akan digunakan oleh user ludes.demo.2 ke S3 bucket ludes-demo-2. Langkah yang sama bisa dimulai dengan menyamakan langkah dari poin nomor 5 sampai 8. Kemudian seperti contoh pada point nomor 9, pada konfigurasi ARN bucket kali ini masukkan nama bucket ludes-demo-2
-
Masukkan juga ARN untuk object. Masukkan nama bucket ludes-demo-2 dan pada object klik checkbox Any
-
Berikan juga tag dengan key Name, diisi value nama policy
-
Selanjutnya berikan nama policy dan deskripsinya. Jika sudah selesai review, selesaikan proses pembuatan policy.
-
Setelah proses pembuatan policy selesai. Selanjutnya adalah konfigurasi User groups. Pada halama service IAM, klik menu User groups.
-
Selanjutnya klik tombol Create group.
-
Buat user group baru dengan nama ludes-demo-1
-
Attach policy yang sudah dibuat sebelumnya. Kali ini cari nama policy "policy-ludes-demo-1" dan attach ke user group. Kemudian klik tombol Create group.
-
Lakukan hal yang sama untuk user group ludes-demo-2. Buat group baru dengan nama ludes-demo-2.
-
Cari nama policy "policy-ludes-demo-2" dan attach ke user group. Kemudian klik tombol Create group.
-
Hal selanjutnya yang dilakukan adalah membuat user. Kembali pada halaman IAM service, klik menu Users.
-
Klik tombol Add user.
-
Masukkan nama user, pada contoh kali ini adalah ludes.demo.1. Kemudian user ini akan diberikan akses ke Web Management Console dan juga programmatic access yang akan digunakan untuk simulasi via AWS CLI. Masukkan password dan klik Next: Permissions.
-
Masukkan user ke group. Kali ini masukkan ke group ludes-demo-1.
-
Masukkan tag jika diperlukan. Pada contoh kali ini saya berikan tag dengan key Name dan value nama user. Kemudian klik Next: Review
-
Review konfigurasi, jika sudah sesuai klik tombol Create user.
-
Selanjutnya akan diarahkan ke halaman berhasil membuat user. Simpan informasi terkait credentials user seperti access key, secret access key. Atau bisa dengan download file .csv yang berisi credentials user.
-
Kemudian buat user lain yang akan digunakan pada simulasi di artikel kali ini. Buat user dengan nama ludes.demo.2. Berikan akses yang sama seperti user sebelumnya, yaitu akses ke Web Console dan programmatic access.
-
Masukkan user ke group ludes-demo-2.
-
Masukkan tag jika diperlukan. Kali ini saya berikan tag key Name dan value nama user.
-
Review konfigurasi. Jika sudah sesuai, klik tombol Create user.
-
Pada halaman selanjutnya, lakukan hal yang sama seperti user sebelumnya. Simpan credentials user.
-
Sampai poin ini, konfigurasi yang diperlukan sudah selesai. Selanjutnya kita akan memastikan atau verifikasi dari konfigurasi yang sudah kita lakukan sebelumnya. Mulailah dengan mencoba login ke AWS Web Console menggunakan user ludes.demo.1.
-
Setelah berhasil login, coba akses ke halaman service S3. Kemudian masuk ke bucket ludes-demo-1. Kali ini user ludes.demo.1 dapat akses ke bucket tersebut dan dapat melihat file dummy yang ada di dalamnya.
-
Selanjutnya coba akses ke bucket ludes-demo-2. Kali ini user ludes.demo.1 tidak diizinkan untuk akses dan melihat isi file di dalamnya.
-
Berikutnya adalah mencoba login menggunakan user lain. Coba login dengan menggunakan user ludes.demo.2
-
Mulailah dengan akses ke S3 bucket ludes-demo-2. Kali ini user ludes.demo.2 dapat mengakses bucket tersebut dan melihat dummy file yang ada di dalamnya.
-
Kemudian coba akses ke S3 bucket ludes-demo-1. Kali ini user ludes.demo.2 tidak diizinkan untuk masuk ke bucket tersebut dan tidak dapat melihat isi dalam bucket tersebut.
-
Sampai pada poin ini kita dapat membuktikan bahwa hak akses ludes.demo.1 dan ludes.demo.2 sudah sesuai dengan porsinya masing masing ketika mencoba akses AWS Web Console. Selanjutnya akan kita coba simulasi juga bagaimana hak akses user user tersebut jika melakukan simulasi akses S3 bucket via AWS CLI.
-
Pada artikel kali ini, saya tes menggunakan AWS CLI yang dijalankan di Ubuntu Linux. Konfigurasi AWS CLI untuk kedua profile tersebut.
-
Dimulai dari user ludes.demo.1. Mencoba list isi bucket dari bucket ludes-demo-1. Hasilnya user ludes.demo.1 dapat melihat isi file dalam bucket tersebut. Namun jika akan akses ke bucket ludes-demo-2, user ludes.demo.1 tidak diizinkan untuk melakukan command tersebut.
-
Simulasikan hal yang sama dengan user ludes.demo.2. User ludes.demo.2 hanya dapat akses ke bucket ludes-demo-2 dan tidak dapat akses ke bucket ludes-demo-1.
Sampai sini kita sudah selesai mensimulasi pembatasan hak akses AWS User menggunakan AWS IAM. Pada penerapannya konfigurasi ini nantinya dapat bervariasi dan juga bisa berbeda di setiap environmentnya. Namun yang jadi kuncinya dari setiap konfigurasi AWS IAM adalah cobalah memulai dengan least privilege atau hak akses yang paling sedikit yang dapat diakses oleh user.
Sekian artikel kali ini dan semoga bermanfaat.
Tinggalkan Balasan