MongoDB Docker 컨테이너에 보안을 추가하는 방법

2726 단어 mongodbdockertutorial
데이터에 대한 무단 액세스를 방지하기 위해 모든 데이터베이스는 안전해야 합니다. Atlas 사용자의 경우 대부분이 Atlas에 의해 자동화되고 설정 마법사를 따르기만 하면 되기 때문에 데이터베이스에 대한 보안을 설정하기가 매우 쉽습니다. 보안 MongoDB 도커 컨테이너를 호스팅하는 데 필요한 단계를 안내해 드리겠습니다.

NB: 이 안내서는 귀하가 어느 정도docker 지식이 있고 작업 환경에 도커 설정이 있다고 가정합니다.

따라서 먼저 MongoDB docker container을 시작하고 실행해야 합니다. 이 작업은 다음 명령으로 수행할 수 있습니다.

docker run -d --name some-mongo \
    -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
    -e MONGO_INITDB_ROOT_PASSWORD=secret \
    mongo


여기를 자세히 보면 환경 변수 MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD를 사용하여 mongo 이미지(컨테이너)의 인스턴스를 생성하고 있습니다. 이 두 변수를 설정하면 데이터베이스 사용자가 생성됩니다. 사용자는 인증 인증 데이터베이스에 생성되고 역할이 부여됩니다. MongoDB의 슈퍼유저인 root. 이제 MongoDB 이미지가 some-mongo라는 이름으로 실행 중이므로 mongo 셸에 로그인하고 데이터베이스 사용자를 생성해야 합니다. 아래 명령을 실행하여 mongo 컨테이너에서 bash를 실행합니다.

docker container exec -it some-mongo bash


이제 실행 중인 터미널은 bash입니다. 이제 mongo를 실행하고 아래 명령을 사용하여 보안 로컬 데이터베이스에 연결해야 합니다.

mongo mongodb://mongoadmin:secret@localhost:27017


모든 것이 올바르게 실행되면 시스템에 따라 아래와 거의 유사한 터미널을 볼 수 있습니다.



이제 루트 사용자로 DB 명령을 실행하여 데이터베이스에 대한 데이터베이스 사용자를 생성할 수 있습니다.

데이터베이스 고객을 위한 사용자를 생성하려면 다음 명령을 실행합니다.

use customers
db.createUser({
    user: "web-app",
    pwd: "eureka",
    roles: [{role: "readWrite", db: "customers"}]
})


위의 명령을 실행한 후 데이터베이스 고객은 이제 사용자 web-app과 함께 안전한 DB가 됩니다. 이제 연결 문자열mongodb://web-app:eureka@<host>:<port>을 사용하여 데이터베이스에 액세스할 수 있습니다. 이제 서버 구성 또는 MongoDB Compass에서 이 연결 문자열을 사용하여 데이터를 찾아볼 수 있습니다.

예, 이제 도커 컨테이너에 안전한 데이터베이스가 생겼습니다 🙌👏🙌👏

좋은 웹페이지 즐겨찾기