创建或更新角色 API
编辑创建或更新角色 API编辑
在原生领域添加和更新角色。
先决条件编辑
- 要使用此 API,您必须至少拥有
manage_security
集群权限。
路径参数编辑
-
name
- (字符串) 角色的名称。
请求正文编辑
以下参数可以在 PUT 或 POST 请求的正文中指定,并与添加角色有关
-
applications
-
(列表) 应用程序权限条目的列表。
-
application
(必需) - (字符串) 此条目适用的应用程序的名称
-
privileges
- (列表) 字符串列表,其中每个元素都是应用程序权限或操作的名称。
-
resources
- (列表) 权限应用于的资源列表。
-
-
cluster
- (列表) 集群权限列表。这些权限定义了拥有此角色的用户能够执行的集群级别操作。
-
global
- (对象) 定义全局权限的对象。全局权限是集群权限的一种形式,它与请求相关。目前,对全局权限的支持仅限于应用程序权限的管理。此字段是可选的。
-
indices
-
(列表) 索引权限条目的列表。
-
field_security
- (对象) 角色所有者具有读取权限的文档字段。有关更多信息,请参阅 设置字段和文档级别安全性。
-
names
(必需) - (列表) 此条目中权限适用的索引(或索引名称模式)列表。
-
privileges
(必需) - (列表) 角色所有者在指定索引上拥有的索引级别权限。
-
query
- 定义角色所有者具有读取权限的文档的搜索查询。指定索引中的文档必须与该查询匹配,才能被角色所有者访问。
-
-
metadata
- (对象) 可选的元数据。在
metadata
对象中,以_
开头的键保留供系统使用。 -
run_as
- (列表) 此角色所有者可以模拟的用户列表。有关更多信息,请参阅 代表其他用户提交请求。
-
remote_indices
-
(列表) 远程索引权限条目的列表。
远程索引对 使用基于 API 密钥的模型配置的远程集群 有效。它们对使用 基于证书的模型 配置的远程集群没有影响。
-
clusters
(必需) - (列表) 此条目中权限适用的集群别名列表。
-
field_security
- (对象) 角色所有者具有读取权限的文档字段。有关更多信息,请参阅 设置字段和文档级别安全性。
-
names
(必需) - (列表) 远程集群(使用
clusters
指定)上此条目中权限适用的索引(或索引名称模式)列表。 -
privileges
(必需) - (列表) 角色所有者在指定索引上拥有的索引级别权限。
-
query
- 定义角色所有者具有读取权限的文档的搜索查询。指定索引中的文档必须与该查询匹配,才能被角色所有者访问。
-
有关更多信息,请参阅 定义角色。
示例编辑
以下示例添加了一个名为 my_admin_role
的角色
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 } }
成功的调用将返回一个 JSON 结构,显示角色是否已创建或更新。
以下示例配置了一个可以在 JDBC 中运行 SQL 的角色
POST /_security/role/cli_or_drivers_minimal { "cluster": ["cluster:monitor/main"], "indices": [ { "names": ["test"], "privileges": ["read", "indices:admin/get"] } ] }
以下示例配置了一个在远程集群上具有远程索引权限的角色
POST /_security/role/role_with_remote_indices { "remote_indices": [ { "clusters": [ "my_remote" ], "names": ["logs*"], "privileges": ["read", "read_cross_cluster", "view_index_metadata"] } ] }
远程索引权限适用于别名为 |
|
为远程集群( |
|
为 |