搜索卫士中的单一权限

single permissions in search guard

我查看了搜索卫士的最新文档,https://docs.search-guard.com/latest/roles-permissions 只找到了对单一权限的简短说明:

Single permissions either start with cluster: or indices:, followed by a REST-style path that further defines the exact action the permission grants access to.

所以一个权限可以在 cluster 级别或 indices 级别。

indices:data/read/search

所以:之前的部分可能是索引或簇,但我不清楚分号后的部分如何理解,以及这些部分由“/”分隔。

有人可以向我解释更多相关信息或指出一些我可能遗漏的文档吗?

谢谢

鼎军

这实际上与Search Guard无关,而是与Elasticsearch有关。当您与 Elasticsearch 交互时,例如索引数据或搜索数据,你真正在做的是执行actions。每个动作都有一个名字,这个名字就是你概述的格式。

例如,看看 org.elasticsearch.action.search.SearchAction:

public class SearchAction extends Action<SearchRequest, SearchResponse, SearchRequestBuilder> {

public static final SearchAction INSTANCE = new SearchAction();
public static final String NAME = "indices:data/read/search";

private SearchAction() {
    super(NAME);
}
...

}

Search Guard 的权限架构基于这些 Elasticsearch 操作名称。所以命名约定实际上是一个Elasticsearch命名约定。

Elastic 不再发布这些动作名称的列表。 AFAIK 在 X-Pack Security 中你实际上不能深入到这个级别的关于权限的细节,这可能就是他们停止这样做的原因。

Search Guard Kibana 插件附带了一个权限列表,您可以将其用作指南:

https://github.com/floragunncom/search-guard-kibana-plugin/blob/6.x/public/apps/configuration/permissions/indexpermissions.js

https://github.com/floragunncom/search-guard-kibana-plugin/blob/6.x/public/apps/configuration/permissions/clusterpermissions.js

问题是您是否真的需要在如此细粒度的级别上实施安全性。这就是行动小组的目的。这些是预定义的权限集,应该涵盖大多数用例。此外,如果 Elasticsearch 中的权限发生变化,它们会随每个版本更新,因此使用操作组比依赖单一权限更安全。但一如既往,这取决于用例。