文章目录
1.es权限管理简介
这里主要学习一下es基于用户的权限管理是怎么运转的。在权限管理中有这样几个部分,es内部的权限管理可以认为是遵循了RBAC的模式,Role-Based-Access-Control , 对应的有这么些概念
- secured resource 需要限制访问的资源(索引,doc,field, aliases等)
- privilege 一些执行动作,(write,read)
- permissions 权限,是对某个资源可以执行哪些的动作的集合,比如可以对 topic这个index执行写操作,就是一个permission
- role 是permissions的集合
1.1 role的权限定义
用户user的创建比较简单,都是直接和role进行关联,所以role的定义变得很有内容。
PUT /_security/role/<name>
{
"run_as": [ ... ],
"cluster": [ ... ],
"global": { ... },
"indices": [ ... ],
"applications": [ ... ]
}
可以看到,为一个role分配权限的时候包括了这样几个部分
1.run_as: 可以按照别的用户的权限来给自己授予权限
2.cluster: 集群级别的权限,主要是集群管理,监控等权限
3.global: global权限是用来管理application的,下面会详述
4.indices:这个是最常用的,就是对那些索引有什么操作权限权限
5.applications: 这个是为那些自定义权限的组件定义的,定义比较灵活
一个实例
POST /_security/role/my_admin_role
{
"cluster": ["all"],
"indices": [
{
"names": [ "index1", "index2" ],
"privileges": ["all"],
"field_security" : { // optional
"grant" : [ "title", "body" ]
},
"query": "{\"match\": {\"title\": \"foo\"}}" // optional
}
],
"applications": [
{
"application": "myapp",
"privileges": [ "admin", "read" ],
"resources": [ "*" ]
}
],
"run_as": [ "other_user" ], // optional
"metadata" : { // optional
"version" : 1
}
}
1.2 创建user
POST /_security/user/jacknich
{
"password" : "j@rV1s",
"roles" : [ "admin", "other_role1" ],
"full_name" : "Jack Nicholson",
"email" : "jacknich@example.com",
"metadata" : {
"intelligence" : 7
}
}
上面的过程简单的展示了创建user和role的过程。
2. es创建role的权限详解
通过上面已经简单了解了role的权限构成,这里会详细的介绍各个组成部分。其实对于es的主要的权限管理还是在cluster和indeces上面,run_as算是一种授权的方式,并不代表了具体的权限,applications这个是周边组件自定义权限使用,下面会详述。权限被划分为cluster级别和indices级别。
2.1 run_as权限
run_as,对应的属性值就是一系列的user 的权限,在上一篇中已经介绍过run_as的功能了,他只是为了授权更方便,并不改变基本的权限粒度
2.2 cluster 相关权限
cluster级别的权限也有很多,大部分都是集群状态数据的管理
| 权限大类别 | 权限明细 | 含义 | 备注 |
|---|---|---|---|
| cluster | |||
| all | 所有cluster级别的权限 | ||
| create_snapshot | 为现有的数据创建快照的权限 | ||
| manage | 对集群的管理权限,包括集群的设置,rerouting等,但是不包括对security的管理 | ||
| manage_ccr | 跨集群副本操作的权限 | ||
| manage_ilm | index life manage,对索引的生命周期管理的权限 |

本文深入解析了Elasticsearch的权限管理系统,涵盖角色定义、用户创建、权限详解及内置角色和用户,帮助读者掌握ES安全配置的核心要点。

2781

被折叠的 条评论
为什么被折叠?



