針對docker中的mongo容器增加鑑權

2022-05-03 21:00:13 字數 1634 閱讀 1099

業務方的伺服器經安全檢查,發現以docker容器啟動的mongo未增加鑑權的漏洞,隨優化之

mongo以docker compose方式啟動,映象的版本號為4.2.6,docker-compose.yml配置檔案內容如下:

version: '2'

services:

mongodb:

image: mongo:latest

container_name: test_mongodb

volumes:

- "/data/mongodb/data/configdb/:/data/configdb"

- "/data/mongodb/data/db/:/data/db"

restart: always

ports:

- "27128:27017"

version: '2'

services:

mongodb:

image: mongo:latest

container_name: test_mongodb

volumes:

- "/data/mongodb/data/configdb/:/data/configdb"

- "/data/mongodb/data/db/:/data/db"

restart: always

ports:

- "27128:27017"

environment:

- mongo_initdb_root_username=admin

- mongo_initdb_root_password=123456

$ docker-compose up

# 進入容器

$ docker exec -it mongo_container_id bash

# 進入mongo服務

$ mongo

>use admin

> db.createuser(]})

# 返回1表示鑑權成功

> db.auth("

mongo_user

", "

123456")

1

當基於spring boot服務端的業務啟動並連線mongo時,報如下異常

caused by: com.mongodb.mongoqueryexception: query failed with error 13 and error message 'not authorized on db to execute command '

該異常表示建立的使用者沒有系統索引的操作許可權,此時更新使用者許可權即可,具體命令如下:

> use admin

> db.auth("mongo_user", "123456")

> db.grantrolestouser( "mongo_user", [ , ] )

# 再次檢視該使用者許可權資訊

> db.system.users.find().pretty()

1) mongodb使用者、角色和許可權管理

2) mongodb之許可權管理——使用者的增刪改查和內建角色說明

linux使用docker安裝mongo

拉取mongo映象,mongo latest 指最新版本,也可指定版本號拉取 mongo latest docker pull mongo latest新增容器並執行mongo,設定登陸許可權 docker run itd name mongo p 27017 27017 mongo auth 進入...

Docker映象操作 Mongo安裝

docker 安裝 mongodb 菜鳥教程 runoob.com 通過 docker ps 命令檢視容器的執行資訊 接著使用以下命令新增使用者和設定密碼,並且嘗試連線 docker exec it mongo mongo admin 建立乙個名為 admin 密碼為 123456 的使用者。db....

docker安裝mongo初體驗

8 到此啟動好了mongo,但是我怎麼進入mongo呢?故此,需要進入容器,命令如下 docker exec it 容器id bin bash 進入容器 9 進入之後,可以通過如下命令依次建立使用者和庫 mongo use admin db.createuser 建立使用者,此使用者建立成功,則後續...