①不對外開放端口、不公網裸奔
操作如下:
默認開啟的 9200 端口(ES)、5601 端口(Kibana)、9000 端口(cerebro)、5000 端口(ElasticHQ)等 ELK stack 相關端口不對外公布。
盡量內網環境運行,不公網裸奔。
如果要映射開放端口,要限定好指定 IP 訪問,用完后關閉端口映射。
②升級高版本 Elasticsearch,使用 X-pack 基礎安全功能
Elasticsearch 7.1&6.8 版本之后,X-pack 基礎安全功能免費。
這意味着:
Space、角色、用戶基礎功能免費,Elasticsearch、Kibana 訪問都可以設置上復雜的用戶名和密碼。
集群之間 TLS 加密通信免費。
互聯網訪問可以由 HTTP 升級為 HTTPS。
③設置 Nginx 反向代理服務器,並設置 HTTP Basic 認證來實現 Elasticsearch 的登錄認證
Elasticsearch 6.8 及 7.1 之前的版本適用。
④Elasticsearch 集群禁用批量刪除索引
批量刪除操作類似“rm -rf ”刪庫跑路操作,若 ES 集群沒有備份,后果不堪設想。
- 禁用批量刪除不止是對外,對內也能起到防護作用。對一些人來說,能夠用單個命令來刪除所有數據可能會導致可怕的后果。
- 如何避免意外的大量刪除?
實踐方案 1
你可以在你的 elasticsearch.yml 做如下配置:
action.destructive_requires_name: true
實踐方案 2
PUT /_cluster/settings
{
"persistent" : {
"action.destructive_requires_name":true
}
}
驗證:
DELETE kibana_*
報錯如下,也就是說不能批量刪除索引了:
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "Wildcard expressions or all indices are not allowed"
}
],
"type": "illegal_argument_exception",
"reason": "Wildcard expressions or all indices are not allowed"
},
"status": 400
}
⑤定期做好集群的全量和增量快照
結合:Elasticsearch _snapshot 和 restore API 能很好實現備份和恢復功能。確保數據由於誤操作,能第一時間恢復還原數據。
第三方導出工具:elasticdump,esm 等也都可以拿來主義。
⑥Elasticsearch 中保存的數據要做基本的脫敏處理
在涉及客戶安全數據或者一些商業性敏感數據的情況下,在不違反系統規則條件下,對真實數據進行改造並提供測試使用,如身份證號、手機號、卡號、客戶號等個人信息都需要進行數據脫敏。是數據庫安全 技術之一。
數據脫敏方式——通過對敏感信息采用脫敏方式進行匿名化,防止因生產庫中的主要數據,明文顯示在測試系統中,導致數據泄漏問題。
生活中也不乏數據脫敏的例子,比如:火車票上的身份證、電商收貨人電話都會對敏感信息做處理,打上 XXXX。
實際 Elasticsearch 存儲層面涉及較少,更多的是:后端做業務脫敏處理,前端脫敏顯示。
出處:轉載自微信公眾號銘毅天下