Access
 sql >> Teknologi Basis Data >  >> RDS >> Access

Dasar-dasar MongoDB:Mengonfigurasi Kontrol Akses Berbasis Peran (RBAC)

Dasar-dasar MongoDB:Mengonfigurasi Kontrol Akses Berbasis Peran (RBAC)

MongoDB, penyimpanan dokumen sumber terbuka dan database NoSQL paling populer di pasaran saat ini, menawarkan berbagai fitur lanjutan untuk mengelola keamanan atas penerapan MongoDB Anda. Dalam postingan tutorial ini, kami akan menunjukkan cara menyiapkan kontrol akses berbasis peran (RBAC) untuk mengelola akses pengguna di seluruh sistem MongoDB Anda untuk reIndex, mongodump, dan mongorestore.

Jika Anda adalah administrator database MongoDB, Anda mungkin telah menerima permintaan untuk memberikan kemampuan kepada pengguna individu untuk melakukan tindakan tertentu. Fitur keamanan MongoDB sudah cukup matang sekarang, dan memungkinkan Anda membuat dan menetapkan kontrol akses berbasis peran yang sangat terperinci.

Kita akan membahas contoh pemberian hak istimewa khusus kepada pengguna untuk melakukan tindakan pengindeksan ulang dalam pendekatan langkah demi langkah melalui penyelesaiannya. Sebelum kami mendemonstrasikan cara melakukan tindakan keamanan umum ini, mari kita lihat ikhtisar kontrol tindakan berbasis peran MongoDB.

Cara Kerja MongoDB RBAC

MongoDB memungkinkan Anda menggunakan mekanisme RBAC untuk membatasi akses ke pengguna melalui 'peran' yang ditetapkan. Kontrol akses RBAC tidak diaktifkan secara default dan harus dikonfigurasi oleh administrator di tim Anda. Dengan memberikan akses kepada pengguna ke resource tertentu, Anda mengizinkan peran atau pengguna tersebut untuk melakukan tindakan pada resource tersebut.

  • Sumber daya

    Database, koleksi, kumpulan koleksi, atau cluster.

  • Tindakan

    Operasi tertentu yang dapat dilakukan pengguna pada sumber daya (biasanya database).

MongoDB mendukung peran yang telah ditentukan sebelumnya yang disebut peran bawaan dengan tindakan yang disusun ke dalam grup logis seperti read(-Only), readWrite, backup, dll. MongoDB juga mendukung pembuatan peran yang ditentukan pengguna.

Mengotorisasi MongoDB reIndex RBAC Privileges

Sekarang setelah Anda memiliki beberapa konteks, mari masuk ke langkah-langkah memberi pengguna hak istimewa untuk melakukan tindakan indeks ulang.

Cara membuat hak reIndex melalui kontrol akses berbasis peran MongoDB #RBACClick To Tweet
  1. Tentukan Tindakan Hak Istimewa

    Tindakan dalam konteks MongoDB dikenal sebagai Tindakan Privilege dan Anda dapat menemukan daftar lengkap tindakan ini di dokumentasi MongoDB. Tindakan yang kami minati adalah reIndex, atau hak istimewa yang memungkinkan pengguna menjalankan perintah reIndex pada database atau koleksi tertentu. Karena perintah reIndex bisa mahal untuk koleksi dengan data dalam jumlah besar atau indeks dalam jumlah besar, ini adalah bagian dari peran administratif secara default.

  2. Berikan Hak Istimewa untuk Peran

    Setelah kami menentukan hak istimewa yang kami butuhkan, kami melanjutkan untuk memberikan hak istimewa tersebut ke sebuah peran. Anda juga dapat cukup memilih peran bawaan yang sudah memiliki hak istimewa, tetapi sebaiknya buat peran yang ditentukan pengguna sendiri daripada memodifikasi peran bawaan karena peran tersebut merupakan default yang baik untuk digunakan kembali.

    1. Buat Peran Buatan Pengguna Baru

      Inilah yang akan kami gunakan untuk membuat peran baru yang ditentukan pengguna:

      > use test
      switched to db test
      > db.createRole({role: "reIndexing", privileges: [], roles: ["readWrite"]}) // Create a new role out of the default readWrite rule.
      { "role" : "reIndexing", "privileges" : [ ], "roles" : [ "readWrite" ] }
      > db.getRole("reIndexing")
      {
      	"role" : "reIndexing",
      	"db" : "test",
      	"isBuiltin" : false,
      	"roles" : [
      		{
      			"role" : "readWrite",
      			"db" : "test"
      		}
      	],
      	"inheritedRoles" : [
      		{
      			"role" : "readWrite",
      			"db" : "test"
      		}
      	]
      }
    2. Berikan Hak Istimewa untuk Peran Baru

      Sekarang kita akan menetapkan hak istimewa yang kita inginkan ke peran yang ditentukan pengguna yang baru dibuat.

      > db.grantPrivilegesToRole("reIndexing", [ { resource: { db : "test", collection: "" }, actions: ["reIndex"] } ])
      > db.getRole("reIndexing", {showPrivileges: true})
      {
      	"role" : "reIndexing",
      	"db" : "test",
      	"isBuiltin" : false,
      	"roles" : [
      		{
      			"role" : "readWrite",
      			"db" : "test"
      		}
      	],
      	"inheritedRoles" : [
      		{
      			"role" : "readWrite",
      			"db" : "test"
      		}
      	],
      	"privileges" : [
      		{
      			"resource" : {
      				"db" : "test",
      				"collection" : ""
      			},
      			"actions" : [
      				"reIndex"
      			]
      		}
      	],
      	"inheritedPrivileges" : [
      ....
      	]
      }
      
      
  3. Berikan Peran kepada Pengguna

    Langkah terakhir adalah cukup menetapkan peran baru ini kepada pengguna:

    > db.getUser("indexUser")
    {
    	"_id" : "test.indexUser",
    	"user" : "indexUser",
    	"db" : "test",
    	"roles" : [
    		{
    			"role" : "readWrite",
    			"db" : "test"
    		}
    	]
    }
    > db.grantRolesToUser("indexUser", ["reIndexing"])
    > db.getUser("indexUser")
    {
    	"_id" : "test.indexUser",
    	"user" : "indexUser",
    	"db" : "test",
    	"roles" : [
    		{
    			"role" : "reIndexing",
    			"db" : "test"
    		},
    		{
    			"role" : "readWrite",
    			"db" : "test"
    		}
    	]
    }
    

    Jangan lupa untuk melakukan langkah-langkah ini pada pengguna tiruan sehingga Anda dapat menguji dan mengonfirmasi bahwa hak istimewa baru berfungsi sebelum memberikan dan memberi tahu pengguna yang relevan tentang otorisasi mereka.

Hak Istimewa Tambahan:mongodump &mongorestore

Kami mendemonstrasikan contoh reIndex terlebih dahulu untuk mengilustrasikan pemberian hak istimewa kepada peran dan pemberian peran kepada pengguna.

Kasus penggunaan yang lebih umum adalah memberikan otorisasi untuk melakukan tindakan pencadangan dan pemulihan menggunakan mongodump dan mongorestore . Ini dapat dilakukan dalam satu langkah melalui peran bawaan MongoDB, dan hak istimewa pencadangan dan pemulihan dapat diberikan untuk memungkinkan pengguna menjalankan mongodump dan mongorestore , masing-masing.

Cara menyiapkan pencadangan MongoDB dan memulihkan hak istimewa #RBAC dengan mongodump dan mongorestoreKlik Untuk Tweet

Misalnya, berikut ini cara kami memberikan izin kepada pengguna untuk mencadangkan dan memulihkan basis data apa pun. Perhatikan bahwa peran ini hanya tersedia untuk pengguna di database admin.

> db.grantRolesToUser("backupUser", ["backup", "restore"])
> db.getUser("backupUser")
{
	"_id" : "admin.backupUser",
	"user" : "backupUser",
	"db" : "admin",
	"roles" : [
		{
			"role" : "restore",
			"db" : "admin"
		},
		{
			"role" : "backup",
			"db" : "admin"
		},
		{
			"role" : "readWrite",
			"db" : "admin"
		}
	]
}

Menambahkan izin ke pencadangan dan pemulihan pada satu database atau koleksi memerlukan lebih banyak pekerjaan. Untuk mongodump , Anda juga harus memberikan hak istimewa temukan pada database yang diberikan, namun mongorestore memiliki persyaratan hak istimewa yang lebih rumit.

Tertarik dengan keamanan MongoDB? Berikut adalah postingan teratas tentang topik keamanan MongoDB:

  • Tiga A keamanan MongoDB – Otentikasi, Otorisasi &Audit
  • Tiga langkah sederhana untuk meningkatkan keamanan instalasi MongoDB Anda
  • Mengonfigurasi autentikasi MongoDB-CR sebagai default di MongoDB 3.x
  • SSL MongoDB dengan sertifikat yang ditandatangani sendiri di Node.js
  • 10 kiat untuk meningkatkan keamanan MongoDB Anda


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Basis Data Relasional vs Non-Relasional:Apa Bedanya?

  2. Apakah Microsoft Access Masih Relevan di 2020?

  3. Lihat Presentasi 'Mengoptimalkan Microsoft Access dengan SQL Server' saya

  4. Cara Menampilkan Item Tersembunyi di Browser Objek VBA

  5. Membuka atau Menautkan Teks atau Excel sebagai Sumber Data di Microsoft Access