授予数据流和别名的权限
编辑授予数据流和别名的权限
编辑Elasticsearch 安全功能允许您保护针对数据流和别名执行的操作。
数据流权限
编辑使用索引权限来控制对数据流的访问。授予数据流的权限会授予其后备索引相同的权限。
例如,my-data-stream
由两个后备索引组成:.ds-my-data-stream-2099.03.07-000001
和 .ds-my-data-stream-2099.03.08-000002
。
用户被授予对 my-data-stream
的 read
权限。
{ "names" : [ "my-data-stream" ], "privileges" : [ "read" ] }
因为该用户会自动获得对该数据流的后备索引的相同权限,所以该用户可以直接从 .ds-my-data-stream-2099.03.08-000002
检索文档。
resp = client.get( index=".ds-my-data-stream-2099.03.08-000002", id="2", ) print(resp)
response = client.get( index: '.ds-my-data-stream-2099.03.08-000002', id: 2 ) puts response
const response = await client.get({ index: ".ds-my-data-stream-2099.03.08-000002", id: 2, }); console.log(response);
GET .ds-my-data-stream-2099.03.08-000002/_doc/2
稍后,my-data-stream
会滚动更新。这将创建一个新的后备索引:.ds-my-data-stream-2099.03.09-000003
。因为用户仍然拥有对 my-data-stream
的 read
权限,所以该用户可以直接从 .ds-my-data-stream-2099.03.09-000003
检索文档。
resp = client.get( index=".ds-my-data-stream-2099.03.09-000003", id="2", ) print(resp)
response = client.get( index: '.ds-my-data-stream-2099.03.09-000003', id: 2 ) puts response
const response = await client.get({ index: ".ds-my-data-stream-2099.03.09-000003", id: 2, }); console.log(response);
GET .ds-my-data-stream-2099.03.09-000003/_doc/2
别名权限
编辑使用索引权限来控制对别名的访问。对索引或数据流的权限不会授予其别名的权限。有关管理别名的信息,请参阅别名。
例如,current_year
别名仅指向 2015
索引。用户被授予对 2015
索引的 read
权限。
{ "names" : [ "2015" ], "privileges" : [ "read" ] }
当用户尝试从 current_year
别名检索文档时,Elasticsearch 会拒绝该请求。
resp = client.get( index="current_year", id="1", ) print(resp)
response = client.get( index: 'current_year', id: 1 ) puts response
const response = await client.get({ index: "current_year", id: 1, }); console.log(response);
GET current_year/_doc/1
要从 current_year
检索文档,用户必须拥有该别名的 read
索引权限。
{ "names" : [ "current_year" ], "privileges" : [ "read" ] }