본문 바로가기
Server

몽고디비 2) Security Authentication 설정 (with Replica Set)

by Gil Granger 2019. 4. 12.

 

 

사용자 계정 인증이 없어도 거의 모든 관리자 권한을 사용할 수가 있다.

보안 측면에서 이를 방지하고 사용자 인증(ID/PASSWORD) 모드를 적용하기 위해서는 아래와 같이 설정 단계가 추가적으로 이루어져야 한다.

 

 

 

security.authorization: "enabled" 인 상태에서는 Replica Set 서버 추가가 되지 않으며 keyFile 과 함께 사용은 가능하다.

 

 

 

가동

./mongod --config /home/vmmongo/vmmongo/config/mongodb.conf --replSet rs

 

 

접속 (auth db는 admin으로 하겠다.)

 

./mongo -host mongo1 -port 25249 -u "valueup" --authenticationDatabase "admin"

 

어드민 계정 생성

 

use admin
db.createUser({ user: "admin", pwd: "password", roles: ["root" ] })

 

유저 확인

show users

 

사용자 생성 

 

예)

db.createUser( { user: "testadmin", pwd: "password", roles : [ "userAdminAnyDatabase" ]  } )
db.createUser( { user: "testuser", pwd: "password", roles : [ { role: "readWrite", db: "testdb"} ]  } )

 

사용자 변경

 

예)

db.updateUser("testuser", {roles:[ "dbAdminAnyDatabase", "readWriteAnyDatabase" , "userAdminAnyDatabase"  ]})
db.updateUser("testuser", {roles:[{role: "dbAdmin", db: "testdb" }, "userAdminAnyDatabase"  ]})

 

권한 부여

 

예)

db.grantRolesToUser("testuser", [{role: "clusterAdmin", db:"admin"}])

 

 

DB 계정확인

db.getUsers()

 

DB 확인

show dbs
db

 

 

계정 접속

db.auth("testadmin", "password")

 

 

 

Keyfile 설정 (https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/)

 

 

KeyFile 생성

openssl rand -base64 756 > /etc/mongodb.key
chmod 400 /etc/mongodb.key

 

 

keyfile은 생성후 각 노드에게 같은 파일을 복사한다.

 

 

 

<mongodb.conf> 파일 수정 ( Primary / Secondery / Arbiter )

security: 
  keyFile: "/home/vmmongo/vmmongo/config/mongodb-keyfile" 
  clusterAuthMode: "keyFile" 
  authorization : "enabled" 

 

 

재시작 후 접속

 

 

'Server' 카테고리의 다른 글

몽고디비 1) Replica Set 설정  (1) 2019.04.12
Redis Replication - Master Slave Sentinel  (0) 2019.03.20
Redis 5.0.4 Install  (0) 2019.03.20

댓글