Elasticsearch 如何安全加固

①不对外开放端口、不公网裸奔

操作如下:

默认开启的 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. 禁用批量删除不止是对外,对内也能起到防护作用。对一些人来说,能够用单个命令来删除所有数据可能会导致可怕的后果。
  2. 如何避免意外的大量删除?

实践方案 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 存储层面涉及较少,更多的是:后端做业务脱敏处理,前端脱敏显示。

出处:转载自微信公众号铭毅天下

现在学习还不晚;
原文地址:https://www.cnblogs.com/ainimore/p/12893347.html