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