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:
Memastikan pengguna hanya dapat mengakses data tenant yang benar.
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:
| Role | Buka | Ubah | Hapus | Ekspor |
|---|---|---|---|---|
| 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.