Pengenalan Service Account

Pada modul sebelumnya kita membahas security dan access control untuk GCS. Pada modul ini kita akan bahas bagaimana service account membantu meningkatkan security.

Identity & Access Management

Seperti yang kita ketahui, GCP diatur oleh policy yang berisi members dan roles.

  • Members menggunakan unik email address, dimana email dapat berupa individual , group atau service account.
  • Roles adalah list yang berisi permission yang diassign untuk member. Contoh Instance Admin, Pub/Sub Publisher, Storage Object Viewer. Anda juga dapat membuat custom roles.

Members adalah human users dimana proses authentication menggunakan credential (password) yang terikat dengan user lifecycle.

Tidak disarankan menggunakan akun ini untuk non-human operations. Jika digunakan dalam tugas otomasi atau akses secara program, akses dapat berhenti berfungsi jika user tersebut berhenti dari organisasi atau ada masalah sekuritas. Bahaya lainnya adalah password, key dan credentials lainnya dapat bocor melalui source code.

Service Accounts (SA)

Untuk mengatasi masalah diatas, digunakan Service Account (SA), yaitu akun khusus untuk menjalankan non-human task tertentu dan dapat diassign authorization dengan level yang spesifik dan detail.

Identitas SA dapat diasumsikan oleh aplikasi untuk melakukan operasi otorisasi yang dicapai dengan menggunakan kredensial SA dalam bentuk keys. Dan keys tersebut dapat dirotasi dengan mudah.

GCP menyediakan Google-managed (default dari Google) dan user-managed SA (custom account yang Anda buat sendiri).

Setiap services yang berjalan di GCP mengasumsikan identitas SA. Contoh, Compute VM dijalankan oleh default compute service account.

Namun Anda tetap dapat membuat custom SA, contoh lihat gambar dibawah. Service compute engine VM dengan SA ingester-app, dimana SA diatur hanya dapat mengakses bucket dan pub/sub topic tertentu. Jika data SA bocor, masalah sekuritas dapat dibatasi. Sementara jika kita menggunakan default SA, maka masalah sekuritas akan terbuka untuk semua service compute engine VM.

Service Account Keys

Google-managed SA akan menggunakan Google-managed keys. Sementara untuk user-managed SA, user harus memanage keys.

Untuk public user-managed keys disimpan dalam platform, sementara private user-managed keys dapat didownload dalam bentuk JSON file, yang dapat Anda gunakan dalam programmatic task.

Perhatian: selalu berhati-hati dengan key tersebut, jika terjadi kebocoran, maka Anda memberikan akses kepada hacker.

Best Practice Google Storage Access Control

  • Gunakan IAM untuk buckets bulk access pada project level. Jadi hanya bucket dalam project tersebut saja yang dapat diakses.
  • Gunakan ACLs untuk granular access (akses yang lebih rinci) pada buckets tertentu, ACL akan memberikan ijin yang spesifik pada scope yang berisi user tertentu.
  • Google sendiri merekomendasikan penggunaan IAM dibandingkan ACLs.

Tabel berikut adalah contoh IAM dan ACLs.

Cloud Storage IAM
Cloud Storage ACLs

Dapat dilihat penggunaan ACLs lebih rumit dibandingkan IAM, oleh karena itu Google lebih merekomendasikan penggunaan IAM.

External Source

Sharing is caring: