Bagaimana Menjauhkan Para Peretas dari "Data" Anda dengan Cassandra Rbac?
Penyimpanan data selalu menjadi poin utama dalam database. Kehilangan data atau kecolongan data bisa jadi sangat merugikan bagi pihak terkait karena data yang disimpan bisa jadi merupakan data penting seperti alamat dan nomor rekening.
"Hacker" biasanya menggunakan celah untuk memebus keamanan dan mendapatkan data yang tersimpan didalamnya. Datastax menawarkan strategi agar data tetap aman yaitu dengan menggunakan Cassandra Role-Based Access Control (RBAC).
Dengan beberapa strategi yang sangat sederhana untuk diterapkan, kita semua dapat mengambil langkah-langkah dasar untuk menggunakan Cassandra RBAC agar data kita lebih aman. Pada contoh kali ini kami akan berasumsi bahwa kami berurusan dengan pengguna yang dikelola secara internal oleh Cassandra, dan tidak berasal dari sumber eksternal seperti Lightweight Directory Access Protocol (LDAP), tetapi prinsipnya sangat mirip.
1. Cassandra memiliki model yang membingungkan yang memperlakukan semua peran sebagai peran, dan semua pengguna sebagai peran.
Daripada memperlakukan pengguna dan peran sebagai tipe objek database yang berbeda, Cassandra menggunakan objek "peran" untuk merujuk ke peran sebagai kumpulan izin dan juga entitas yang masuk untuk menggunakan izin tersebut. Pengguna Anda adalah manusia, dan perangkat lunak yang melakukan login ke database. Peran Anda akan menjadi kumpulan izin database tertentu yang kemudian diberikan kepada pengguna. Kecuali Anda memiliki alasan yang sangat spesifik untuk melakukannya, hindari memberikan izin database secara langsung kepada pengguna. Untuk memperjelasnya, berikut ini contohnya:
BUAT PERAN alicethehuman dengan LOGIN = true;
BUAT PERAN HANYA;
GRANT SELECT, JELASKAN DI mykeyspace.mytable UNTUK HANYA BACA;
GRANT SELECT, JELASKAN di mykeyspace.myothertable UNTUK READONLY;
PEMBERIAN PERAN READONLY UNTUK alicethehuman;
Jadi, perhatikan dalam contoh di atas bahwa manusia kita dibedakan oleh fakta bahwa LOGIN = true diberikan padanya, lalu kita membuat peran yang diberi label dengan jelas, dan memberikan izin khusus untuk itu, lalu kita menetapkan peran tersebut ke alicetheuser. Yang harus kita hindari adalah pernyataan seperti ini:
GRANT SELECT ON mykeyspace.mytable TO alicethehuman; # Jangan lakukan ini
Mengikuti pola umum ini akan membuat perizinan database Anda jauh lebih dapat dipelihara karena individu yang membentuk organisasi datang dan pergi dan memiliki perubahan dalam tanggung jawab mereka.
2. Buat peran dasar untuk izin yang sangat umum seperti "hanya-baca" dan standarisasi pada mereka.
Ini adalah saran yang relatif mudah, tetapi sangat membantu untuk menambahkan kejelasan pada penyiapan otorisasi Anda. Contoh akan bervariasi tergantung pada peran dan tanggung jawab organisasi Anda, tetapi contoh tipikal adalah READONLY, READWRITE, & CREATOR. Ini juga dapat membantu untuk menyertakan prefiks atau sufiks untuk cakupan umum. Jika peran khusus untuk ruang kunci, awali nama peran dengan singkatan untuk nama ruang kunci. Demikian pula, jika peran khusus untuk tabel, sufiks nama peran dengan singkatan tabel. Ini hanyalah saran untuk Anda mulai, gunakan beberapa kreativitas di sini, tetapi dokumentasikan dan distandarisasi di seluruh tim database Anda.
3. Jangan berikan terlalu banyak peran pada peran
Akhirnya, ada baiknya untuk tidak menyusun skema Role-based access control (RBAC) Anda terlalu dalam. Mungkin sulit untuk melacak izin khusus yang disampaikan dengan terlalu banyak hierarki atau bersarang. Tetap sederhana. Sebagian besar, peran Anda harus hanya terdiri dari HIBAH untuk izin objek tertentu, dan pengguna harus diberikan peran tunggal atau sangat kecil. Hindari menetapkan "peran peran" kepada pengguna, dan demi kebaikan harap jangan memberikan pengguna kepada pengguna lain meskipun sistem akan mengizinkan Anda.
Sumber: Datastax