因为现在 es 只有访问权限限制,是没有做操作权限验证,做操作权限验证需要花钱买 X-pack 的许可证,所以导致了 es 这边数据操作是随意的,很容易出现问题。
做一点限制操作是很有必要的。主要限制有:
1、从管理角度出发,限制只有部分人才有资格可以直接操作 es,包括 kibana 等等;
2、从配置角度出发,限制一些操作,主要是 delete 操作。**
这篇文章的主要重点是限制 delete 操作。
上图是微博大V的一次误删,连大V都会手抖和头脑发热,更何况是我们这些小卒。
所以做限制 delete 操作是刻不容缓的。
disable allowing to delete indices via wildcards or _all
禁止通过prefix*
, *
或 _all
来删除 index,这部分的配置有两种方法可以实现
方法1:
编辑 elasticsearch.yml
,找到下面内容,去掉注释即可
#action.destructive_requires_name: true
// 去掉注释
action.destructive_requires_name: true
方法2:
通过 cluster update settings api 去更新集群配置
PUT _cluster/settings
{
"persistent": {
"action.destructive_requires_name": true
}
}
测试如下:
DELETE bi-capture-event-2018.03.3*
{
"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
}
测试通过。
禁止删除 index 通过prefix*
, *
或 _all
是可以避免很多误操作的,例如上面的微博大V如果有配置这个的话,就不会出现这种问题。
现在线上生产集群已经配置这个了。
参考资料
本文由 Chakhsu Lau 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。