MongoDB ACL 설정을 하면서...

2022. 7. 28. 12:08Computer/Data

 몽고DB 를 이용하고 있던 와중에 보안을 위해 ACL 등록을 진행하였고, VM , k8s 의 worker node 등이 산재했던 부분들이 있어서, 우선 1차적으로 내부 internal proxy 로 ACL 를 등록해두고, 이후 vm,k8s 등의 ip 관리를 할 수 있는 툴을 만들어, acl 등록하는 형태로 진행하려고 하였으나, 몽고디비는 아래와 같은 모양새로 연결을 하는데.

mongodb://{id}:{password}@{mongo1},{mongo2},{mongo3}/{databasename}?{options}

여기서 중요한 포인트가 있다.

서비스나 클라이언트에서는 위 요청을 통해서 mongodb 의 hostname 과 port 를 받아오고, 이를 직접 요청하도록 되어 있었다.

이러다 보니, 처음 한번 proxy 를 통해서 경유할 때는 ACL 설정이 된 proxy ip 로 문제가 없었는데, 이후 부터는 실제 서비스의 client ip 로 mongodb 로 요청이 가게 되다보니... 문제가 많았다. 

이를 해결할 수 있는 방법들이 있으나, 이보다 그냥 ip 등록시 매번 등록하는게 낫다고 판단하고 진행하기로 하였다. 

홉도 없고, proxy 관리도 안해도 되고... 그냥 ip 등록만 잘해주면 되니까 말이다...

 

굳이 이방식으로 하려는 분들은 service 쪽에 /etc/hosts 에서 proxy ip 와 mongodb 의 hostname 을 맵핑해줘서, dns cheating 을 하시거나, mongodb 의 directconnection 을 통해서 proxy 로 직접 연결하도록 하면된다, 그러나 이경우는 replicaset 의 secondary 들을 사용하여 read 에 대한 부하를 줄일 수 없으니 주의하길 바란다. ( 게임쪽은 대게 master 를 주로 사용하니 크게 문제 없어보인다. ) 

 

반응형

'Computer > Data' 카테고리의 다른 글

Database ACID  (2) 2024.02.22
The Cap Theorem  (0) 2021.03.25