Все базы данных должны быть безопасными, чтобы предотвратить несанкционированный доступ к вашим данным. Для пользователей Atlas очень просто установить безопасность для вашей базы данных, поскольку большинство из них автоматизировано Atlas, и все, что вам нужно сделать, это следовать мастеру настройки, но все становится сложнее, когда вы размещаете свой собственный экземпляр Mongo, используя возможности docker, поэтому я собираюсь провести вас через шаги, необходимые для размещения безопасного докер-контейнера MongoDB.
NB: Это руководство предполагает, что у вас есть некоторые знания о docker и вы настроили docker в своей рабочей среде.
Итак, прежде всего, нам нужно, чтобы контейнер MongoDB docker был запущен и работал, это можно сделать с помощью команды
docker run -d --name some-mongo
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin
-e MONGO_INITDB_ROOT_PASSWORD=secret
mongo
Если вы внимательно посмотрите, мы создаем экземпляр образа mongo (контейнер) с переменными окружения MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD Установка этих двух переменных создаст пользователя базы данных, пользователь будет создан в базе данных аутентификации auth и получит роль root, которая является суперпользователем в MongoDB. Теперь, когда образ MongoDB запущен с именем some-mongo, нам нужно войти в оболочку mongo и создать пользователей для наших баз данных. Выполните приведенную ниже команду для запуска bash на контейнере mongo.
docker container exec -it some-mongo bash
Теперь в терминале запущен bash, теперь нам нужно запустить mongo и подключиться к нашей защищенной локальной базе данных с помощью команды ниже.
mongo mongodb://mongoadmin:secret@localhost:27017
Если все работает правильно, вы должны увидеть терминал, почти такой же, как показан ниже, в зависимости от вашей системы.
Теперь мы выполняем команды DB от имени пользователя root и можем создать пользователей для наших баз данных.
Чтобы создать пользователя для клиентов базы данных, выполните следующие команды
use customers
db.createUser({
user: "web-app",
pwd: "eureka",
roles: [{role: "readWrite", db: "customers"}]
})
После выполнения вышеуказанных команд клиенты базы данных теперь будут безопасной БД с пользователем web-app. Теперь база данных будет доступна со строкой подключения mongodb://web-app:eureka@<host>:<port>
. Теперь вы можете использовать эту строку подключения в конфигурации вашего сервера или даже в MongoDB Compass для просмотра данных.
Ура, теперь у вас есть защищенная база данных на вашем докер-контейнере 🙌👏🙏🙌👏