MongoDB安全檢查表
本文介紹一些應實施的安全措施,以保護您的MongoDB安全。
1.啓用訪問控制和強制驗證
啓用訪問控制並指定認證機制。可以使用默認的MongoDB身份驗證機制或現有的外部框架。 認證要求所有客戶端和服務器在連接到系統之前提供有效的憑據。 在羣集部署中,爲每個MongoDB服務器啓用身份驗證。
2.配置基於角色的訪問控制
先創建用戶管理員,然後創建其他用戶。 爲訪問系統的每個人員和應用程序創建一個唯一的MongoDB用戶。
創建定義一組用戶需要的確切訪問權限的角色。 遵循最低權限的原則。 然後創建用戶並分配他們只需要執行其操作所需的角色。用戶可以是個人或客戶端應用程序。
3.加密通信
配置MongoDB爲所有傳入和傳出連接使用TLS/SSL。 使用TLS/SSL加密MongoDB部署的mongod和mongos組件之間以及所有應用程序和MongoDB之間的通信。
4.加密和保護數據
從MongoDB Enterprise 3.2開始,WiredTiger存儲引擎的本機加密在Rest中可以配置爲加密存儲層中的數據。
如果您沒有使用WiredTiger的加密功能,則應使用文件系統,設備或物理加密在每臺主機上對MongoDB數據進行加密。 使用文件系統權限保護MongoDB數據。MongoDB數據包括數據文件,配置文件,審覈日誌和密鑰文件。
5.限制網絡曝光
確保MongoDB在受信任的網絡環境中運行,並限制MongoDB實例監聽傳入連接的接口。 只允許受信任的客戶端訪問MongoDB實例可用的網絡接口和端口。
6.審計系統活動
跟蹤數據庫配置和數據的訪問和更改。 MongoDB Enterprise包括一個系統審覈工具,可以在MongoDB實例上記錄系統事件(例如用戶操作,連接事件)。 這些審覈記錄允許進行法證分析,並允許管理員驗證正確的控制。
7.使用專用用戶運行MongoDB
使用專用的操作系統用戶帳戶運行MongoDB進程。 確保帳戶具有訪問數據但沒有不必要權限的權限而導致的安全問題。
8.使用安全配置選項運行MongoDB
MongoDB支持執行某些服務器端操作的JavaScript代碼:mapReduce
,group
和$where
。 如果不使用這些操作,請使用命令行上的--noscripting
選項禁用服務器端腳本。
在生產部署中僅使用MongoDB線路協議。 不啓用以下功能,所有這些都啓用了Web服務器接口:net.http.enabled
,net.http.JSONPEnabled
和net.http.RESTInterfaceEnabled
。保持這些禁用,除非向後兼容性要求。
注:自 MongoDB3.2 版本以來已棄用:MongoDB的HTTP接口
保持輸入驗證有效。 MongoDB默認通過wireObjectCheck
設置啓用輸入驗證。 這確保了mongod實例存儲的所有文檔都是有效的BSON。
9.請求安全技術實施指南(如適用)
「安全技術實施指南」(STIG)載有美國國防部內部署的安全準則。 MongoDB Inc.根據要求提供其STIG,用於需要的情況。 請索取副本以獲取更多信息。