MongoDB 보안 인증을 설정 했을때 Key 파일 생성 및 적용 방법
MongoDB 보안 인증을 설정 했을때 Key 파일 생성 및 적용 방법
MongoDB를 디폴트로 설치했을 경우 보안에 대한 아무런 조치가 되어 있지 않기 때문에 그냥 기본 값으로 사용하면 해킹 쉽게 노출된다고 할 수 있습니다. 27017 에대한 포트 스캔을 이용하여 접근하면 username/password 없이도 DB에 admin 권한으로 접근할 수 있기 때문에, 해커들이 DB의 내용 전부 삭제해버리고 데이터는 자신이 보관하고 있으니 비트코인을 입금하라는 경우도 있을 정도로 보안에 위약합니다.
반드시 admin 계정 생성을 하고 security.authorization: enabled
을 설정해서 사용하시기 바랍니다. admin 계정을 생성하는 법은 아래 링크를 참고하시기 바랍니다.
security.authorization: enabled
를 설정하게 되면 레프리카 셋이나 샤드 클러스터를 설정하는데, 암호화된 key를 필요로 하게 됩니다.
MongoDB의 레플리카 셋에 사용할 key를 생성해보록 하겠습니다.
openssl rand -base64 756 > <path-to-keyfile> chmod 400 <path-to-keyfile>
일단 기본 명령은 위와 같습니다. openssl 패키지를 이용하여 생성합니다.
chmod 명령을 이용해 권한을 400 으로 바꿔주고, 생성된 키파일을 각각의 레프리카 셋 멤버의 노드에 복사 해줍니다.
아래는 생성부터 배포까지 예제 입니다.
$ openssl rand -base64 756 > /var/lib/mongo/mongo_repl.key $ chmod 400 /var/lib/mongo/mongo_repl.key 세컨더리로 키 배포 $ scp /var/lib/mongo/mongo_repl.key mongo-rs02:/var/lib/mongo/ $ scp /var/lib/mongo/mongo_repl.key mongo-rs03:/var/lib/mongo/ 2번 노드 $ chmod 400 /var/lib/mongo/mongo_repl.key $ chown mongod.mongod /var/lib/mongo/mongo_repl.key 3번 노드 $ chmod 400 /var/lib/mongo/mongo_repl.key $ chown mongod.mongod /var/lib/mongo/mongo_repl.key
각각의 노드에서 설정 파일에 키를 적용합니다. 레플리카 셋의 모든 멤버에 설정을 해줘야 합니다.
vi /etc/mongod.conf
security: authorization: enabled keyFile: /var/lib/mongo/mongo_repl.key
이런식으로 키를 설정해줘야만 보안 설정이 된 상태에서 레플리카셋 또는 샤드 클러스터를 생성할 수 있습니다.
최신 댓글