password restriction / restric password / 암호 제한 / limit / mongodb 에서 패스워드에 제한을 걸 수 있나?
mongodb 의 계정과 보안
패스워드 제한
결론적으로 가능하지 않다.
ref. 1 에서 아래와 같은 사항에 대한 mongodb 기능이 있는지 물어본다. ref. 1 에서는 LDAP 를 이용하는 대안을 이야기해 준다. 하지만 이 대안도 Enterprise 버전에서만 가능하다고 한다.
현재(2022-05-31) SERVER-7363 처럼 요청사항은 존재하지만, 아직 unresolved 이다.
- 최소길이 제한
- 특정 password 문자열 제한
- 최소한 포함해야 하는 문자
- 들어가면 안되는 단어들
- 이전에 사용했던 암호
로그인 횟수 제한
일정 로그인 시도가 실패하면 계정을 lock 하는 방법도 제공하지 않는다.(ref. 3)
- [SERVER-12818] Lock/Disable and Unlock/Enable a User - MongoDB Jira: 수동으로 account 를 lock/unlock 하는 기능도 제공하지 않는다.
session time out
- Connection String URI Format — MongoDB Manual
- mongodb - How can I set maxIdleTimeMS by command line or mongo-shell? - Database Administrators Stack Exchange
접속시점에 일정시간이 지나면 timeout 하게 하는 option 을 넣을 수 있다. 하지만 이것은 mongo server 에서 제공하는 기능이 아니라, mongo driver 단에서 제공하는 기능이다. 그래서 client 에서 접속시 idletime 을 set 하는 것 만 가능하다.
audit 기능
Enterprise version 에서만 지원하는 듯 하다. 아래 링크를 보면 community version 에 audit 기능을 넣은 것도 있긴 한듯 하다.
audit log 를 file, syslog, console 로 출력할 수 있다. 그리고 format 도 정할 수 있다. JSON
과 BSON
이 가능하다.
# mongod.conf
auditLog:
destination: file
format: BSON
path: /var/lib/mongodb/audit_mongodb.bson
기타 사용할만한 log
clientConnections
mongosh client 가 db 에 접속할 때마다 clientConnections
collection 에 doc 를 만들어서 접속시간 로그를 남길 수 있다.
<your-home-directory>/.mongoshrc.js
에
db.clientConnections.insertOne( { connectTime: ISODate() } )
를 추가
db.setProfilingLevel(2)
level 2 인 경우 profiler 가 모든 operation들의 데이터를 모으게 된다.
댓글 없음:
댓글 쓰기