Mongodb生產安全清單

但願看完本章,能幫你增強數據的安全性,沒有最安全,只有更安全

看到羣裏有小夥伴發的截圖,趕忙寫了這篇文章,但願能幫助到你們。
Mongodb生產安全清單數據庫

數據庫安全清單

一、啓用訪問控制並強制執行身份驗證
 安全

啓用訪問控制並指定身份驗證機制。可使用MongoDB的SCRAM或x.509身份驗證機制,也能夠與現有的Kerberos / LDAP基礎結構集成。身份驗證要求全部客戶端和服務器在鏈接到系統以前都必須提供有效的憑據。服務器

二、配置基於角色的訪問控制
 網絡

首先建立一個用戶管理員,而後建立其餘用戶。爲訪問系統的每一個人/應用程序建立一個惟一的MongoDB用戶。
遵循最小特權原則。建立角色,以定義一組用戶所需的確切訪問權限。而後建立用戶,並僅爲其分配執行操做所需的角色。用戶能夠是我的或客戶端應用程序。
用戶能夠在不一樣的數據庫之間擁有特權。若是用戶須要對多個數據庫的特權,請建立一個具備授予適用數據庫特權的角色的單個用戶,而不是在不一樣的數據庫中屢次建立該用戶。ide

三、加密通訊(TLS / SSL)
 
配置MongoDB以對全部傳入和傳出鏈接使用TLS / SSL。使用TLS / SSL加密MongoDB部署的mongod和mongos組件之間以及全部應用程序和MongoDB之間的通訊。工具

從版本4.0開始,MongoDB使用本機TLS / SSL OS庫:
Windows安全通道(Schannel)
Linux / BSD OpenSSL
macOS安全傳輸加密

從版本4.0開始,MongoDB在可用TLS 1.1+的系統上禁用對TLS 1.0加密的支持。操作系統

四、加密和保護數據命令行

從MongoDB Enterprise 3.2開始,可使用WiredTiger存儲引擎的本機靜態加密來加密存儲層中的數據。
 不使用WiredTiger的加密功能,則應在每一個主機上使用文件系統,設備或物理加密(例如dm-crypt)對MongoDB數據進行加密。使用文件系統權限保護MongoDB數據。 MongoDB數據包括數據文件,配置文件,審覈日誌和密鑰文件。
 將日誌收集到中央日誌存儲中。這些日誌包含DB身份驗證嘗試,包括源IP地址。日誌

五、網絡限制
 
確保MongoDB在受信任的網絡環境中運行,並配置防火牆或安全組以控制MongoDB實例的入站和出站流量。
僅容許受信任的客戶端訪問可以使用MongoDB實例的網絡接口和端口。例如,使用IP白名單來容許從受信任的IP地址進行訪問。

能夠網絡和配置強化:
net.bindIp配置設置
security.clusterIpSourceWhitelist配置設置
authentication限制,用於指定每用戶IP白名單
 禁用直接SSH訪問

六、系統訪問審計

企業版支持:
跟蹤對數據庫配置和數據的訪問和更改。 MongoDB Enterprise包含系統審覈工具,能夠記錄MongoDB實例上的系統事件(例如,用戶操做,鏈接事件)。這些審覈記錄能夠進行法醫分析,並容許管理員驗證適當的控制措施。您能夠設置過濾器以記錄特定事件,例如身份驗證事件。

七、用專用用戶運行MongoDB
 

使用專用的操做系統用戶賬戶運行MongoDB進程。確保該賬戶具備訪問數據的權限,但沒有沒必要要的權限。

八、使用安全配置選項運行MongoDB

MongoDB支持對某些服務器端操做執行JavaScript代碼:mapReduce和$ where。若是不使用這些操做,請在命令行上使用--noscripting選項禁用服務器端腳本。
 保持輸入驗證啓用。默認狀況下,MongoDB經過net.wireObjectCheck設置啓用輸入驗證。這樣能夠確保mongod實例存儲的全部文檔都是有效的BSON。

Mongodb生產安全清單

生產環境中咱們該怎麼作呢?

一、數據庫

bind_ip 綁定具體的內網ip
修改默認監聽端口
開啓身份認證,啓用訪問控制,使用強密碼
數據庫用戶開放最小權限
若是是老版本:關閉掉http接口(net.http.enabled = False)和關閉掉Rest API接口(net.http.RESTInterfaceEnabled=False)

二、系統網絡

開啓網絡防火牆
若是是雲主機可使用安全組和Iptables
只容許內網訪問
不使用root用戶啓動,普通用戶啓動

三、加密和審計

程序訪問密碼加密傳輸加密開啓審計功能

相關文章
相關標籤/搜索