簇中索引很少索引_2019年1月1日2019年1月2日2019年1月3日2019年1月4日2019年1月5日2019年1月6日有两个用户USER1和USER2USER1对此索引模式具有完全权限。我只想为USER2提供前三个索引的访问权限。如何在ELK中实现这一目标弹性版本7.2
ht4b089n1#
此功能(索引级安全性)不可能与elasticsearch的基本许可证一起使用。但有几个其他的方法来存档它或多或少的投资的金钱和/或时间:1.获取包含索引级别安全性elasticsearch security的Elasticsearch订阅1.使用readonlyrest或search guard等第三方插件1.使用反向代理(apache httpd、nginx......)和进一步的配置,甚至使用自制代理API,在集群前面添加一个单独的安全层玩得开心点!
0mkxixxg2#
我知道你问的是弹性v7.2,但我偶然发现了这个问题,我使用的是ES v8.4.1。如果其他人最终从谷歌搜索到这里,我想说,这是非常有可能做什么OP想要的。我假设内置用户elastic的密码为“123456”,如果您使用的是Docker(link),则可以通过docker-compose.yml中的ELASTIC_PASSWORD: 123456设置该密码。如果你使用的是Docker,通过docker exec -it elasticsearch bash在elasticsearch Docker容器中执行exec。1.创建有权访问所需索引的角色:
elastic
docker-compose.yml
ELASTIC_PASSWORD: 123456
docker exec -it elasticsearch bash
curl -X POST "localhost:9200/_security/role/regular?pretty" -H 'Content-Type: application/json' -d' { "cluster": ["all"], "indices": [ { "names": [ "index_2019-01-01", "index_2019-01-02", "index_2019-01-03"], "privileges": ["all"] } ] } ' -u elastic:123456
1.创建具有该角色的用户:
curl -X POST "localhost:9200/_security/user/john?pretty" -H 'Content-Type: application/json' -d' { "password" : "123456", "roles" : [ "regular" ], "full_name" : "John John", "email" : "johnjohn@example.com", "metadata" : { "intelligence" : 7 } } ' -u elastic:123456
1.现在尝试从john可以访问的任何索引中提取所有文档(您应该可以看到所有文档):curl "localhost:9200/index_2019-01-01/_search?pretty=true" -u john:1234561.另外,尝试从john无权访问的索引中获取文档(您应该在响应中收到403 HTTP状态):curl "localhost:9200/index_2019-01-04/_search?pretty=true" -u john:123456
john
curl "localhost:9200/index_2019-01-01/_search?pretty=true" -u john:123456
curl "localhost:9200/index_2019-01-04/_search?pretty=true" -u john:123456
2条答案
按热度按时间ht4b089n1#
此功能(索引级安全性)不可能与elasticsearch的基本许可证一起使用。
但有几个其他的方法来存档它或多或少的投资的金钱和/或时间:
1.获取包含索引级别安全性elasticsearch security的Elasticsearch订阅
1.使用readonlyrest或search guard等第三方插件
1.使用反向代理(apache httpd、nginx......)和进一步的配置,甚至使用自制代理API,在集群前面添加一个单独的安全层
玩得开心点!
0mkxixxg2#
我知道你问的是弹性v7.2,但我偶然发现了这个问题,我使用的是ES v8.4.1。如果其他人最终从谷歌搜索到这里,我想说,这是非常有可能做什么OP想要的。
我假设内置用户
elastic
的密码为“123456”,如果您使用的是Docker(link),则可以通过docker-compose.yml
中的ELASTIC_PASSWORD: 123456
设置该密码。如果你使用的是Docker,通过
docker exec -it elasticsearch bash
在elasticsearch Docker容器中执行exec。1.创建有权访问所需索引的角色:
1.创建具有该角色的用户:
1.现在尝试从
john
可以访问的任何索引中提取所有文档(您应该可以看到所有文档):curl "localhost:9200/index_2019-01-01/_search?pretty=true" -u john:123456
1.另外,尝试从
john
无权访问的索引中获取文档(您应该在响应中收到403 HTTP状态):curl "localhost:9200/index_2019-01-04/_search?pretty=true" -u john:123456