사용자 계정 인증이 없어도 거의 모든 관리자 권한을 사용할 수가 있다.
보안 측면에서 이를 방지하고 사용자 인증(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 |
댓글