業務方的伺服器經安全檢查,發現以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 建立使用者,此使用者建立成功,則後續...