Keamanan Data Tenant: RBAC, Isolasi, dan Audit Aktivitas

6 September 202634 Kali Dibaca

Keamanan data merupakan salah satu aspek penting dalam membangun platform SaaS yang digunakan oleh banyak bisnis. Ketika satu platform melayani beberapa tenant, sistem harus memastikan bahwa setiap pengguna hanya dapat mengakses data dan fitur yang memang menjadi haknya.

Keamanan tidak cukup hanya mengandalkan login dan password. Platform perlu memiliki beberapa lapisan perlindungan, mulai dari kontrol akses pengguna, isolasi data antar-tenant, hingga pencatatan aktivitas yang dapat digunakan untuk audit dan investigasi.

Tiga komponen yang penting dalam pengelolaan keamanan data tenant adalah Role-Based Access Control (RBAC), isolasi penyimpanan, dan audit log.

Apa Itu Keamanan Data Tenant?

Tenant merupakan bisnis atau organisasi yang menggunakan platform SaaS.

Dalam satu platform, terdapat kemungkinan banyak tenant menggunakan aplikasi dan infrastruktur yang sama. Meskipun demikian, data setiap tenant harus tetap dipisahkan.

Sebagai contoh, jika perusahaan A dan perusahaan B menggunakan platform yang sama, pengguna perusahaan A tidak boleh dapat melihat pelanggan, transaksi, laporan, atau data internal milik perusahaan B.

Keamanan tenant mencakup dua hal utama:

  1. Memastikan pengguna hanya dapat mengakses data tenant yang benar.

  2. Memastikan pengguna hanya dapat melakukan tindakan sesuai dengan hak aksesnya.

Keduanya perlu diterapkan secara bersamaan.

Role-Based Access Control (RBAC)

Role-Based Access Control atau RBAC adalah mekanisme pengaturan hak akses berdasarkan peran pengguna.

Daripada memberikan izin satu per satu kepada setiap pengguna, administrator dapat menentukan role dan permission yang dimiliki oleh role tersebut.

Contohnya:

  • Admin

  • Supervisor

  • Operator

  • Finance

  • Staff

Setiap role dapat memiliki izin yang berbeda sesuai dengan kebutuhan pekerjaan.

Kontrol Akses yang Granular

RBAC dapat dibuat lebih detail daripada sekadar membedakan pengguna biasa dan administrator.

Misalnya, sebuah modul memiliki beberapa jenis permission:

  • Buka — melihat atau mengakses modul

  • Ubah — mengedit data

  • Hapus — menghapus data

  • Ekspor — mengunduh data

  • Tambah — membuat data baru

Dengan permission granular, administrator dapat memberikan akses sesuai kebutuhan masing-masing operator.

Contohnya, operator dapat diberikan izin untuk melihat dan mengubah data, tetapi tidak memiliki izin untuk menghapus atau mengekspor data.

Prinsip Least Privilege

Salah satu prinsip penting dalam kontrol akses adalah least privilege.

Artinya, pengguna sebaiknya hanya diberikan akses yang diperlukan untuk menjalankan tugasnya.

Jika seorang operator hanya perlu melihat dan memperbarui data transaksi, tidak ada alasan untuk memberikan akses administrator penuh.

Pendekatan ini dapat membantu mengurangi dampak ketika akun pengguna mengalami penyalahgunaan atau aksesnya tidak sengaja diberikan terlalu luas.

Contoh Pembagian Hak Akses

Sebagai contoh sederhana, sebuah sistem dapat memiliki konfigurasi seperti:

RoleBukaUbahHapusEkspor
Admin✓✓✓✓
Supervisor✓✓Terbatas✓
Operator✓✓✕✕
Viewer✓✕✕✕

Pembagian aktual tentu perlu disesuaikan dengan struktur organisasi dan kebutuhan masing-masing bisnis.

Yang penting, permission tidak diberikan berdasarkan jabatan semata, tetapi berdasarkan aktivitas yang memang perlu dilakukan pengguna.

Isolasi Data Antar-Tenant

RBAC saja belum cukup untuk mengamankan platform multi-tenant.

Sistem juga harus memastikan bahwa data dari satu tenant tidak dapat diakses oleh tenant lain.

Jika menggunakan pendekatan database-per-tenant, setiap tenant dapat memiliki database yang terpisah.

Contohnya:

Tenant A → Database A

Tenant B → Database B

Tenant C → Database C

Pemisahan tersebut memberikan batas tambahan pada lapisan penyimpanan data.

Namun, aplikasi tetap harus melakukan validasi tenant pada setiap proses yang relevan. Isolasi database bukan alasan untuk mengabaikan kontrol akses pada lapisan aplikasi.

Tenant Context

Setiap request ke aplikasi perlu memiliki konteks tenant yang jelas.

Secara sederhana, alurnya dapat berupa:

Login → Identifikasi User → Identifikasi Tenant → Validasi Role → Validasi Permission → Akses Data

Dengan mekanisme tersebut, sistem dapat menentukan siapa pengguna yang melakukan request, berasal dari tenant mana, dan apakah pengguna tersebut memiliki izin untuk menjalankan tindakan yang diminta.

Validasi ini penting untuk mencegah akses lintas tenant.

Keamanan pada Operasi Data

Kontrol akses perlu diterapkan pada setiap operasi penting, bukan hanya pada tampilan antarmuka.

Misalnya, menyembunyikan tombol "Hapus" dari pengguna belum cukup.

Backend juga harus memeriksa apakah pengguna benar-benar memiliki permission untuk melakukan penghapusan.

Hal yang sama berlaku untuk:

  • Membuat data

  • Mengubah data

  • Menghapus data

  • Mengekspor data

  • Mengakses laporan

  • Mengubah konfigurasi

  • Mengelola pengguna

Dengan demikian, permission tidak hanya menjadi fitur UI, tetapi benar-benar menjadi bagian dari mekanisme keamanan aplikasi.

Jejak Audit

Selain mengatur siapa yang boleh melakukan suatu tindakan, sistem juga perlu mengetahui siapa yang telah melakukan tindakan tersebut.

Di sinilah audit log berperan.

Audit log mencatat aktivitas penting yang terjadi di dalam platform sehingga administrator dapat melakukan penelusuran ketika diperlukan.

Contohnya:

  • Siapa yang mengubah data

  • Kapan perubahan dilakukan

  • Data atau modul yang diubah

  • Jenis tindakan

  • Tenant yang terkait

  • Status tindakan

Contoh Aktivitas yang Perlu Dicatat

Tidak semua aktivitas harus dicatat dengan tingkat detail yang sama.

Aktivitas yang memiliki dampak terhadap data atau keamanan dapat menjadi prioritas, seperti:

  • Login dan logout

  • Perubahan password

  • Perubahan permission

  • Penambahan pengguna

  • Penghapusan pengguna

  • Perubahan data penting

  • Penghapusan data

  • Ekspor data

  • Perubahan konfigurasi

  • Perubahan status transaksi

Pencatatan dapat disesuaikan dengan kebutuhan bisnis dan kebijakan audit yang diterapkan.

Audit untuk Investigasi

Audit log dapat membantu ketika terjadi masalah.

Misalnya, sebuah data penting tiba-tiba berubah. Administrator dapat memeriksa riwayat aktivitas untuk mengetahui kapan perubahan terjadi dan akun mana yang melakukan tindakan tersebut.

Dengan adanya jejak aktivitas, proses investigasi tidak hanya bergantung pada dugaan atau ingatan pengguna.

Audit log juga dapat membantu mengidentifikasi pola aktivitas yang tidak biasa.

Audit Log Harus Terlindungi

Audit log sendiri merupakan data penting sehingga tidak seharusnya dapat diubah sembarangan oleh pengguna biasa.

Jika pengguna yang melakukan perubahan dapat menghapus atau memanipulasi catatan aktivitasnya sendiri, fungsi audit menjadi jauh lebih lemah.

Karena itu, akses terhadap audit log sebaiknya dibatasi dan pengelolaannya dilakukan dengan mekanisme yang aman.

Pengelolaan Pengguna

Keamanan tenant juga bergantung pada bagaimana akun pengguna dikelola.

Administrator sebaiknya dapat:

  • Menambahkan pengguna

  • Mengubah role

  • Mengatur permission

  • Menonaktifkan akun

  • Menghapus akses

  • Melihat aktivitas pengguna

Ketika seseorang tidak lagi bekerja pada suatu tenant, aksesnya sebaiknya dapat segera dinonaktifkan.

Hal ini membantu mencegah akun lama tetap memiliki akses terhadap data perusahaan.

Ekspor Data

Fitur ekspor sering kali dianggap sebagai fitur biasa, padahal dapat menjadi salah satu aktivitas yang perlu mendapat perhatian khusus.

Seorang pengguna yang dapat mengekspor data mungkin dapat mengambil data dalam jumlah besar sekaligus.

Karena itu, permission ekspor sebaiknya dapat dikontrol secara terpisah.

Selain itu, aktivitas ekspor dapat dicatat dalam audit log sehingga administrator mengetahui siapa yang melakukan ekspor dan kapan aktivitas tersebut dilakukan.

Keamanan Berlapis

Keamanan data tenant sebaiknya tidak bergantung pada satu mekanisme.

Lapisan keamanan dapat mencakup:

Autentikasi → RBAC → Tenant Isolation → Validasi Backend → Enkripsi → Audit Log → Monitoring

Setiap lapisan memiliki fungsi yang berbeda.

Jika satu lapisan mengalami kesalahan konfigurasi, lapisan lainnya tetap dapat memberikan perlindungan tambahan.

Monitoring Aktivitas

Selain audit log, sistem dapat menggunakan monitoring untuk melihat aktivitas yang tidak biasa.

Misalnya:

  • Percobaan login berulang

  • Perubahan permission dalam jumlah besar

  • Ekspor data dalam jumlah tidak biasa

  • Perubahan konfigurasi penting

  • Aktivitas administrator yang tidak umum

Monitoring tidak selalu berarti setiap aktivitas harus langsung dianggap sebagai ancaman. Data tersebut dapat digunakan sebagai sinyal untuk pemeriksaan lebih lanjut.

Backup dan Pemulihan

Keamanan data juga berkaitan dengan kemampuan memulihkan data ketika terjadi masalah.

Backup perlu dilakukan secara terencana dan diuji secara berkala agar dapat digunakan ketika diperlukan.

Untuk platform multi-tenant, strategi backup dapat disesuaikan dengan arsitektur penyimpanan yang digunakan.

Jika setiap tenant memiliki database terpisah, proses backup dan pemulihan dapat dikelola berdasarkan tenant sesuai kebutuhan.

Kesimpulan

Keamanan data tenant membutuhkan lebih dari sekadar sistem login.

RBAC membantu menentukan fitur dan tindakan yang dapat dilakukan setiap pengguna. Isolasi data membantu menjaga agar informasi antar-tenant tidak tercampur. Sementara itu, audit log memberikan jejak aktivitas yang dapat digunakan untuk monitoring, kepatuhan, dan investigasi.

Ketiga komponen tersebut dapat menjadi bagian dari pendekatan keamanan berlapis pada platform SaaS.

Dengan permission yang granular, pemisahan data yang tepat, validasi akses di sisi backend, serta pencatatan aktivitas penting, bisnis memiliki kontrol yang lebih baik terhadap siapa yang dapat mengakses dan mengubah data mereka.