MongoDB Sharded Cluster Yetkilendirmenin Etkinleştirilmesi

MongoDB kurulduktan sonra varsayılan olarak yetkilendirme (authentication) etkinleştirilmemiş şekilde gelir, kullanıcılar kullanıcı adı/parola ve yetki seviyesindeki veri tabanlarını belirtmeye gerek duymadan giriş yapabilirler. Yetkilendirme, güvenlik için son derece önemlidir ve etkinleştirilmesi gerekir.

Etkinleştirme işlemi için sırasıyla aşağıdaki adımlar uygulanmalıdır (Sunucu Centos Linux 7, MongoDB sürümü 3.2’dir):

  1.  Öncelikle openssl ile bir anahtar dosyası oluşturulur, bağlantı ve sunucular arası iletişim için bu dosyayı kullanacaktır.
    [mongodb@mongodb1 ~]$ cd /mongodb
    [mongodb@mongodb1 ~]$ mkdir keyfile
    [mongodb@mongodb1 ~]$ openssl rand -base64 346 > keyfile/mongodb-keyfile
    [mongodb@mongodb1 ~]$ chmod 600 keyfile/mongodb-keyfile
  2. Oluşturulan bu dosya, tüm sunucuların ilgili dizinine kopyalanır. Tüm sunuculardaki anahtar dosyası aynı olmalıdır.
  3. Tüm mongod ve mongos işlemleri, bu keyfile kullanılarak tekrar açılır. Komutlara –keyfile <dosya_yolu> şeklinde parametre verilir. Aşağıda örnek mongod (config, shard) ve mongos (router) işlemleri için örnek komutlar bulunmaktadır.
    [mongodb@mongodb1 ~]$ mongod --configsvr --dbpath cfg0 --port 26001 --fork --logpath logs/log.cfg0 --logappend --keyFile keyfile/mongodb-keyfile
    [mongodb@mongodb1 ~]$ mongod --shardsvr --replSet shA --dbpath shA0 --logpath logs/log.shA0 --port 27500 --fork --logappend --keyFile keyfile/mongodb-keyfile
    [mongodb@mongodb1 ~]$ mongos --configdb mongodb1:26001,mongodb2:26001,mongodb3:26001 --fork --logappend --logpath logs/log.mongos0 
    --keyFile keyfile/mongodb-keyfile
  4. Yetkilendirme etkinleştirmenin bir sonraki adımı yönetici hesabı oluşturmaktır.
    [mongodb@mongodb1 ~]$ mongo
    mongos> use admin
    mongos> db.createUser(
      {
        user: "adminUser",
        pwd: "parola",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" },
                 { role: "readWriteAnyDatabase", db: "admin" },
                 { role: "dbAdminAnyDatabase", db:"admin" },
                 { role: "clusterAdmin", db:"admin" }  ]
      }
    )
  5. Aşağıdaki komutla kullanıcının durumu görülebilir.
    mongos> db.getUser("adminUser")
  6. Bundan sonraki mongos girişlerinde yetkilendirme yaparak girmek gerekmektedir, yoksa hata alırsınız.
    [mongodb@mongodb1 ~]$ mongo --port 27017 -u adminUser -p parola --authenticationDatabase admin
    
    
    
    
    
    
    

     

Bir cevap yazın

Your email address will not be published. Required fields are marked *.

*
*

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>