MongoDB의 기본 실행 설정은 "NoAuth"이다. 설정의 "auth=true"가 주석처리됐다.
$ cat /etc/mongodb.conf
....
# auth = true
....
네트워크에 접근만 가능하다면, 누구든 데이터베이스에 접근 할 수 있다. 사설 네트워크라고 하더라도 취약점이 있을 수 있고 특히 내부 사용자일 경우 마음대로 접근 할 수 있으므로(보안사고는 "내부"에서 부터 시작된다.) 역시 접근 보안 설정은 해줘야 겠다.
User Administrator
접근제어를 위해서는 데이터베이스에 "userAdmin"이나 "userAdminAnyDatabase"역할을 가진 사용자가 있어야 한다. 이 사용자는 사용자의 생성, 역할 할당과 취소, 데이터베이스에 대한 권한 설정들을 할 수 있는 어드민 계정이다.
먼저 접근제어가 없는 상태로 몽고디비를 실행한다. 몽고디비 설정 파일의 "auth=true"을 주석처라하고 service restart 하거나, 쉘에서 직접 실행한다.
$ mongod --port 27017 --dbpath /home/mongo
mongo 쉘을 이용해서 몽고디비에 연결한다.
$ mongo --port 27017
이제 어드민 유저를 만든다. 어드민 유저는 userAdminAnyDatabase룰을 가진다. 나는 "yundream"이라는 어드민 계정 "admin" 데이터베이스에 추가했다.
MongoDB 인증
User Administrator
Recent Posts
Archive Posts
Tags