
MongoDB Atlas는 MongoDB에서 제공하는 클라우드 작업환경인데 이를 활용해서 데이터베이스 배포와 관리, 유지보수를 손쉽게 할 수 있다.
프로젝트에서 MongoDB를 사용하기 위해 먼저 Atlas에서 클러스터를 생성하고, 데이터베이스를 만든 후 컬렉션과 도큐멘트를 작성한다.

MongoDB의 기본 구조는 위와 같이 Document(필드, key-value)이 모여 Collection이 되고, Collection이 모여 Database를 이룬다.
MongoDB Atlas에는 Database Access와 Network Access가 있는데, 데이터베이스 보안을 관리하는 중요한 구성 요소이다.
Database Access
Database Access 관리는 사용자와 그룹의 데이터베이스 접근권한을 설정하는데 중점을 둔다. 이를 통해 특정 사용자 또는 그루벵 대한 데이터베이스 접근을 허용하거나 제한할 수 있다.
- 사용자 관리 : 데이터베이스 사용자를 생성, 삭제, 수정할 수 있다. 각 사용자에게 로그인을 위한 아이디와 패스워드를 할당하며, 필요에 따라 다양한 권한을 설정할 수 있다.
- 역할 기반 접근 제어(RBAC) : 사용자 또는 그룹에 특정 역할을 할당하여, 데이터베이스 내에서 수행할 수 있는 작업의 범위를 제어한다. 예를 들어, 일부 사용자는 데이터를 읽을 수만 있고, 다른 사용자는 데이터를 읽고 쓸 수 있도록 설정할 수 있다.
Network Access
Network Access관리는 데이터베이스 서버에 대한 네트워크 접근을 제어한다. 이 설정을 통해 어떤 IP 주소 또는 어떤 IP 주소 범위에서 데이터베이스에 접근할 수 있는지를 결정한다.
- IP 화이트리스팅 : 특정 IP 주소 또는 IP 주소 범위를 화이트리스트에 추가하여, 이러한 주소에서만 데이터베이스 서비스에 접근할 수 있도록 설정한다.
- VPC 피어링 : 가상 프라이빗 클라우드(VPC)간에 피어링 연결을 설정하여, 다른 클라우드 서비스와의 안전한 데이터 통신을 가능하게 한다.
- AWS PrivateLink 지원 : AWS PrivateLink를 사용하여 데이터를 AWS 서비스 간에 개인 네트워크를 통해 전송할 수 있도록 지원하며, 이는 데이터가 인터넷을 통과하지 않도록 하여 보안을 향상시킨다.

MongoDB Atlas에서는 기본적으로 사용자가 명시적으로 화이트리스트에 IP 주소를 추가하기 전까지, 모든 외부 접속은 차단된다. 데이터베이스에 접근하려면 관리자가 화이트리스트에 접근을 허용할 IP 주소를 추가해야 하고, 이 주소로부터의 접속만이 허용된다.
때문에 개인 혼자 사용하는 것이 아닌 팀프로젝트에서 사용하는 것이라면 네트워크 접근 권한을 열어주어야 한다.
- 어떤 곳에서든 접근이 가능하게 0.0.0.0/0을 추가하거나 (보안상의 이유로 추천하지 않는 방법이다.)
- 팀원들의 사용 IP환경을 전부 추가해주야 한다.
보안 강화를 위한 권장 사항
- 필요한 IP 주소만 추가: 실제로 필요한 경우에만 특정 IP 주소를 화이트리스트에 추가하고, 불필요한 접근은 차단하도록 한다.
- 동적 IP 주소 대응: IP 주소가 자주 바뀌는 환경에서는 VPN을 사용하거나 더 넓은 범위의 네트워크를 화이트리스트에 추가하는 것을 고려할 수 있다.
- 보안 감사 및 모니터링: 정기적으로 화이트리스트를 검토하고, 불필요하게 추가된 IP 주소는 제거하여 데이터베이스 보안을 유지한다.