Skema Identity and Access Management

Sedikitnya ada 2 issue yang menyelimuti teknologi komputasi awan, yaitu biaya dan keamanan. Sebagian menyatakan bahwa dengan menggunakan komputasi awan sangat menghemat pengeluaran sumber daya teknologi informasi, namun ada juga sebagian yang berpendapat bahwa teknologi komputasi awan sangatlah mahal. Pendapat hemat dan mahal ini sangat subjektif sekali. Pada dasarnya setiap perusahaan berusaha menghindari kerugian dan cara untuk menghindari kerugian adalah memahami penerapan teknologi yang akan digunakan. Sejujurnya tidak semua kasus perusahaan akan berdampak tepat jika menerapkan teknologi komputasi awan. Artinya penerapan teknologi komputasi awan bergantung dari bisnis yang dijalankan. Akhirnya penggunaan komputasi awan yang tepat akan dapat menghemat dan akhirnya meningkatkan keuntungan perusahaan. Pada sisi keamanan ada 2 hal yaitu akses dari sumber daya yang ada di komputasi awan dan data yang dititipkan di komputasi awan. Rekomendasi terbaik untuk mengamankan data adalah enkripsi in-transit, at-rest, dan letter of agreement.

Setiap akun AWS akan memiliki root user yang memiliki hak istimewa tertinggi yaitu mengkases seluruh sumber daya komputasi awan. Praktek terbaik adalah menghindari penggunaan root user untuk kebutuhan sehari-hari. Caranya dengan membuat IAM user dan tetap menjaga kredensial dari root user tetap berada di lokasi yang aman. Dengan IAM user maka dimungkinkan melakukan pengelolaan tugas. Secara bawaan IAM user tidak memiliki ijin apapun pada sumber daya sehingga root user perlu memberikan ijin terlebih dahulu untuk dapat melakukan pengelolaan tugas. Komponen IAM ada 4, yaitu:

  1. IAM user
    • seorang petugas atau aplikasi yang akan mengakses sumber daya komputasi awan, IAM user bisa membuat panggilan API, di setiap akun AWS setiap user harus memiliki nama yang unik dan tanpa spasi
  2. IAM group
    • merupakan kumpulan dari IAM user yang bisa digunakan untuk menyederhanakan permission ke banyak user
  3. IAM policy
    • sebuah dokumen yang mendefinisikan permission apa yang bisa dilakukan oleh user dan apa yang tidak bisa dilakukan user, ditulis dalam bentuk JSON, ada 2 tipe yaitu identity-based (ditempelkan ke user, group, atau role) dan resource-based (ditempelkan ke sumber daya komputasi misalnya EC2 dan S3), hal yang perlu diperhatikan dari policy adalah ARN atau Amazon Resource Name dan wildcard (*)
      • effect: bisa allow atau deny
      • action: tipe akses yang akan di allow atau di deny
      • resource: sumber daya komputasi yang menjadi objek
      • condition: kondisi yang sesuai dengan aturan

      • sumber: aws.amazon.com

  4. IAM role
    • digunakan untuk memberikan akses sementara pada sumber daya komputasi awan spesifik

Melalui AWS CloudTrail dapat diketahui siapa yang mengakses akun, kapan dan darimana serta aksi apa yang dilakukan. AWS CloudTrail biasanya disimpan dalam S3. Setiap policy yang sudah dibuat dapat di attach ke IAM group, misalnya ada IAM group developer, IAM group test, dan IAM group admin. Apabila ada karyawan baru dari developer, cukup dengan membuat IAM user dan ditambahkan di IAM group developer maka secara otomatis karyawan baru tersebut memiliki policy yang ada di IAM group developer. Selanjutnya jika karyawan baru dari developer tersebut mendapatkan hak khusus untuk mengakses sumber daya maka bisa dibuat IAM role. Karakteristik dari IAM role adalah memberikan keamanan kredensial secara temporer, tidak secara unik berasosiasi dengan 1 orang, dapat diasumsikan dengan orang, aplikasi atau layanan, dan biasanya digunakan untuk akses delegasi tertentu.

Agar orang, aplikasi atau layanan dapat diassume sebuah role maka grant permission harus diubah ke role. Pengubahan grant permission ke role dapat melalui Amazon Security Token Service. Ada 2 istilah pendekatan untuk membuat akses kendali yaitu RBAC (role-based access control) dan ABAC (attribute-based access control). Cara melakukan akses kendali dengan RBAC yaitu:

  1. Buat spesifik permission ke user berdasarkan fungsi pekerjaan
  2. Buat sebuah IAM role yang berbeda untuk setiap kombinasi permission
  3. Lakukan pembaruan permission dengan menambah akses ke setiap sumber daya yang baru
Penerapan RBAC sangat baik untuk akes kendali fine-grained atau akses yang detail, sayangnya RBAC akan memakan waktu untuk melakukan pembaruan permission dari sumber daya. Berbeda dengan ABAC yang memanfaatkan tagging yaitu key-value. Dengan tag akan lebih mudah dilakukan pencarian dan filtering sumber daya. Jadi dengan ABAC permission akan secara otomatis ter-apply berdasarkan attributes dan granular permission atau ijin terperinci mungkin dilakukan tanpa memperbarui permission. Namun, dalam pendekatan ABAC harus hati-hati dalam memberikan tag, artinya penulisan tag harus betul-betul sama setiap hurufnya. Cara melakukan akses kendali dengan ABAC yaitu:
  1. Atur akses kendali atribute di identitas
  2. Penuhi syarat atribute pada sumber daya baru
  3. Konfigurasi permission berdasarkan atribut
  4. Uji dengan membuat sumber daya baru dan verifikasi permission otomatis berjalan
Salah satu tujuan dari IAM adalah memungkinkan pembuatan user federasi. Pilihan untuk melakukan federasi user dapat menggunakan AWS Security Token Service, security assertion markup language (SAML), dan amazon cognito. Federasi identitas dengan broker identitas akan melewati langkah user mengakses broker, kemudian identitas broker akan meminta autentikasi ke corporate identity store, jika berhasil didapatkan maka identity broker akan meminta security credentials ke AWS STS lalu mengirim kembali ke user, sesampainya di user security credentials tersebut digunakan untuk mengakses submer daya. Agak panjang langkah yang dilewati identity broker. Jika federasi identitas denga SAML maka user akan meminta SAML assertion dari identity store, lalu masuk ke portal IdP dan SAML assertion berhasil didapatkan oleh user, selanjutnya SAML assertion tersebut akan digunakan untuk masuk ke dalam AWS STS dan mendapatkan role atau policy sedemikian sehingga dilanjutkan ke console dari AWS.

Cara paling sederhana untuk membuat identity federation adalah dengan Amazon Cognito. Cara kerjanya pertama user akan memberikan autentikasi ke amazon Cognito user pool, lalu amazon Cognito user pool akan melanjutkan ke IdP federasi sehingga didapatkan IdP token untuk user, selanjutnya IdP token tersebut digunakan untuk meminta ke amazon Cognito identity pool berupa AWS credentials, dan dengan AWS credentials tersebut sumber daya komputasi AWS akan didapatkan. Setelah mengetahui identity federation maka akan ada 2 pola dari organisasi yaitu satu account dengan banyak VPC dan banyak account dengan VPC setiap akun. Kebanyakan organisasi menggunakan banyak akun. Keuntungan dari pola banyak akun dengan setiap akun ada VPC adalah unit bisnis yang terisolasi, membedakan antara development-test-production, isolasi proses audit atau perbaikan data, lebih mudah membagi beban kerja, dan lebih mudah memicu peringatan biaya untuk setiap konsumsi unit bisnis. Untuk memudahkan banyak akun tersebut maka bisa digunakan layanan AWS Organizations. Di AWS Organization untuk membuat kebijakan digunakan SCP atau service control policies yang bersifat spesialis. Jika dalam suatu jaringan hanya ada SCP pada root maka secara otomatis seluruh OU akan mengikuti kebijakan SCP di root tersebut, namun ketika suatu OU memiliki SCP sendiri maka otomatis SCP yang dari root diabaikan dan menggunakan SCP yang lebih spesial ke OU tersebut.




ref:
aws.amazon.com

Komentar