[컴][[db] mongodb 의 계정관련 보안

password restriction / restric password / 암호 제한 / limit / mongodb 에서 패스워드에 제한을 걸 수 있나?

mongodb 의 계정과 보안

패스워드 제한

결론적으로 가능하지 않다.

ref. 1 에서 아래와 같은 사항에 대한 mongodb 기능이 있는지 물어본다. ref. 1 에서는 LDAP 를 이용하는 대안을 이야기해 준다. 하지만 이 대안도 Enterprise 버전에서만 가능하다고 한다.

현재(2022-05-31) SERVER-7363 처럼 요청사항은 존재하지만, 아직 unresolved 이다.

  1. 최소길이 제한
  2. 특정 password 문자열 제한
  3. 최소한 포함해야 하는 문자
  4. 들어가면 안되는 단어들
  5. 이전에 사용했던 암호

로그인 횟수 제한

일정 로그인 시도가 실패하면 계정을 lock 하는 방법도 제공하지 않는다.(ref. 3)

session time out

접속시점에 일정시간이 지나면 timeout 하게 하는 option 을 넣을 수 있다. 하지만 이것은 mongo server 에서 제공하는 기능이 아니라, mongo driver 단에서 제공하는 기능이다. 그래서 client 에서 접속시 idletime 을 set 하는 것 만 가능하다.

audit 기능

Enterprise version 에서만 지원하는 듯 하다. 아래 링크를 보면 community version 에 audit 기능을 넣은 것도 있긴 한듯 하다.

audit log 를 file, syslog, console 로 출력할 수 있다. 그리고 format 도 정할 수 있다. JSONBSON 이 가능하다.

# mongod.conf
auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongodb/audit_mongodb.bson

기타 사용할만한 log

  1. clientConnections

mongosh client 가 db 에 접속할 때마다 clientConnections collection 에 doc 를 만들어서 접속시간 로그를 남길 수 있다.

<your-home-directory>/.mongoshrc.js

db.clientConnections.insertOne( { connectTime: ISODate() } )

를 추가

  1. db.setProfilingLevel(2)

level 2 인 경우 profiler 가 모든 operation들의 데이터를 모으게 된다.

See Also

  1. 쿠…sal: [컴][db] mongodb 를 production 에서 배포시 확인할 사항

References

  1. Configure strong password user - Ops and Admin - MongoDB Developer Community Forums
  2. [SERVER-7363] Allow users to set specify a password validation policy - MongoDB Jira
  3. Limit failed logins from MongoDB shell - Ops and Admin / Installation & Upgrades - MongoDB Developer Community Forums, 2021-06

댓글 없음:

댓글 쓰기