Назад | Перейти на главную страницу

Аутентификация на dockerized mongodb

Я использую официальный образ докера mongodb: 2.6. Я пытаюсь понять, как включить прямую аутентификацию с помощью user:password Режим.

Как указать, что mongo должен работать при аутентификации?

Как создать каждый user:password?

Руководство MongoDB включает в себя руководства для включение аутентификации и добавление пользователя в базу данных.

Предполагая, что вы используете автономный образ с именем mongo, вы можете передать параметр, чтобы включить аутентификацию, запустив изображение с docker командная строка похожа на:

 docker run --name mongod -d mongo --auth

Остальные шаги по включению и настройке контроля доступа не относятся к Docker. После запуска mongod с --auth Параметр вам необходимо создать пользователя с правами администратора, а затем любых дополнительных пользователей.

Также стоит изучить MongoDB. Контрольный список безопасности по другим соображениям безопасности.

Примечание: версия MongoDB 2.6 достигла конец жизни в октябре 2016 г. Я настоятельно рекомендую выполнить обновление до поддерживаемой версии (например, последней версии 3.2.x или 3.4.x) для продолжения поддержки.

  1. Запустите экземпляр mongo docker на своем сервере

    docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo
    
  2. Откройте bash на запущенном экземпляре докера.

    docker ps
    

    КОНТЕЙНЕР IDIMAGE КОМАНДА СОЗДАЕТ СТАТУС ИМЕНА ПОРТОВ

    b07599e429fb mongo "docker-entrypoint ..." 35 минут назад вверх на 35 минут 0.0.0.0:27017->27017/tcp musing_stallman

    docker exec -it b07599e429fb bash
    root@b07599e429fb:/#
    
  3. Войдите в оболочку mongo, набрав mongo.

    root@b07599e429fb:/# mongo
    
  4. В этом примере я настрою пользователя с именем ian и предоставлю ему доступ для чтения и записи к базе данных cool_db.

    > use cool_db
    
    > db.createUser({
        user: 'ian',
        pwd: 'secretPassword',
        roles: [{ role: 'readWrite', db:'cool_db'}]
    })
    
  5. Выход из оболочки mongod и bash.

  6. Теперь запустите докер mongo с включенной аутентификацией.

    docker run -d -p 27017:27017 -v ~/dataMongo:/data/db mongo mongod --auth
    
  7. Мне удалось подключиться к экземпляру, запущенному на сервере Google Cloud, с моего локального ноутбука с Windows, используя приведенную ниже команду.

    mongo <ip>:27017/cool_db -u ian -p secretPassword
    
  8. Вы можете зафиксировать образ экземпляра контейнера. Это сохранит все изменения, внесенные в его файловую систему, включая каталог / data / db. Вы можете запустить этот образ везде, где работает docker-engine.

    docker commit mongodb mongodb-backup
    

    Ссылка: https://blog.madisonhub.org/setting-up-a-mongodb-server-with-auth-on-docker/

Ответ основан на моем ответе в stackoverflow: https://stackoverflow.com/a/46645243/3877642