Membagi Hak Akses AWS User Menggunakan AWS Identity and Access Management (IAM)

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:

Image

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:

  1. Sebelumnya sudah dibuatkan S3 bucket untuk keperluan demo artikel ini dengan nama ludes-demo-1 dan ludes-demo-2

    Image

  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

    Image

  3. 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

    Image

  4. Selanjutnya adalah memulai konfigurasi AWS IAM. Masuk ke halaman service IAM pada AWS Web Console. Kemudian pilih menu Policies

    Image

  5. Pada halaman Policies, klik tombol Create policy

    Image

  6. Mulai konfigurasi policy untuk akses S3 user ludes.demo.1. Pilih dan cari service S3

    Image

  7. Kemudian pilih actions yang diizinkan. Pada artikel ini, sebagai simulasi akan diberikan seluruh S3 actions

    Image

  8. 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.

    Image

  9. 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

    Image

  10. 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 *

    Image

  11. Kemudian masukkan Tags jika diinginkan atau optional. Pada contoh di artikel ini, saya berikan tag dengan key Name dan valuenya adalah nama policy

    Image

  12. Selanjutnya berikan nama policy dan deskripsinya. Jika sudah selesai review, selesaikan proses pembuatan policy.

    Image

  13. 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

    Image

  14. Masukkan juga ARN untuk object. Masukkan nama bucket ludes-demo-2 dan pada object klik checkbox Any

    Image

  15. Berikan juga tag dengan key Name, diisi value nama policy

    Image

  16. Selanjutnya berikan nama policy dan deskripsinya. Jika sudah selesai review, selesaikan proses pembuatan policy.

    Image

  17. Setelah proses pembuatan policy selesai. Selanjutnya adalah konfigurasi User groups. Pada halama service IAM, klik menu User groups.

    Image

  18. Selanjutnya klik tombol Create group.

    Image

  19. Buat user group baru dengan nama ludes-demo-1

    Image

  20. 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.

    Image

  21. Lakukan hal yang sama untuk user group ludes-demo-2. Buat group baru dengan nama ludes-demo-2.

    Image

  22. Cari nama policy "policy-ludes-demo-2" dan attach ke user group. Kemudian klik tombol Create group.

    Image

  23. Hal selanjutnya yang dilakukan adalah membuat user. Kembali pada halaman IAM service, klik menu Users.

    Image

  24. Klik tombol Add user.

    Image

  25. 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.

    Image

  26. Masukkan user ke group. Kali ini masukkan ke group ludes-demo-1.

    Image

  27. Masukkan tag jika diperlukan. Pada contoh kali ini saya berikan tag dengan key Name dan value nama user. Kemudian klik Next: Review

    Image

  28. Review konfigurasi, jika sudah sesuai klik tombol Create user.

    Image

  29. 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.

    Image

  30. 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.

    Image

  31. Masukkan user ke group ludes-demo-2.

    Image

  32. Masukkan tag jika diperlukan. Kali ini saya berikan tag key Name dan value nama user.

    Image

  33. Review konfigurasi. Jika sudah sesuai, klik tombol Create user.

    Image

  34. Pada halaman selanjutnya, lakukan hal yang sama seperti user sebelumnya. Simpan credentials user.

    Image

  35. 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.

    Image

  36. 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.

    Image

  37. Selanjutnya coba akses ke bucket ludes-demo-2. Kali ini user ludes.demo.1 tidak diizinkan untuk akses dan melihat isi file di dalamnya.

    Image

  38. Berikutnya adalah mencoba login menggunakan user lain. Coba login dengan menggunakan user ludes.demo.2

    Image

  39. 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.

    Image

  40. 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.

    Image

  41. 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.

  42. Pada artikel kali ini, saya tes menggunakan AWS CLI yang dijalankan di Ubuntu Linux. Konfigurasi AWS CLI untuk kedua profile tersebut.

    Image

  43. 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.

    Image

  44. 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.

    Image

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

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: