ElasticSearch权限控制实战

tech2024-10-24  26

1 简介

  当前直接使用ElasticSearch以及通过Kibana访问时,没有做任何限制,没有做用户和权限的控制,安全性上有一定风险,因此通过ES提供的X-PACK来实现这一需求。官网简介如下:X-Pack是一种Elastic Stack扩展,可将安全性,警报,监控,报告和图形功能捆绑到一个易于安装的软件包中。 通过X-Pack组件可以无缝协同工作,但您可以轻松地启用或禁用要使用的功能(6.3版本后默认集成,免费功能可直接使用)。

2 部署安装

2.1生成证书

借助elasticsearch-certutil命令生成证书: bin/elasticsearch-certutil ca -out config/elastic-certificates.p12 -pass ""

● 执行成功后在config目录下会生成证书文件,如下所示:

 

2.2配置文件修改

cd elasticsearch/config

vi elasticsearch.yml

新增如下配置项:

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.keystore.path: elastic-certificates.p12

xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

2.3设置密码

   执行设置用户名和密码的命令,这里需要为4个用户分别设置密码,elastic, kibana, logstash_system,beats_system      执行  bin/elasticsearch-setup-passwords interactive   --手动配置每个用户密码模式

注意:在设置密码前需执行bin/elasticsearch -d 命令启动es

3 Index权限

● all : 最高权限,选择之后,无论其它的选不选.都具有所有权限

● manage: 集群数据增删改查所有权限。覆盖下面所有选项

● write : 增删改操作。覆盖下面所有选项

● read: 只读操作

● index: 插入和更新操作

● create: 插入操作

● delete: 删除操作

● delete_index: 删除索引

● create_index: 创建索引

4 权限管理Api

4.1角色管理

https://www.elastic.co/guide/en/elasticsearch/reference/6.0/security-api-roles.html

● GET /_xpack/security/role

● GET /_xpack/security/role/<name>

● POST /_xpack/security/role/<name>/_clear_cache

● POST /_xpack/security/role/<name>

● PUT /_xpack/security/role/<name>

4.2用户管理

https://www.elastic.co/guide/en/elasticsearch/reference/6.0/security-api-users.html

● GET /_xpack/security/user

● GET /_xpack/security/user/<username>

● DELETE /_xpack/security/user/<username>

● POST /_xpack/security/user/<username>

● PUT /_xpack/security/user/<username>

● PUT /_xpack/security/user/<username>/_disable

● PUT /_xpack/security/user/<username>/_enable

● PUT /_xpack/security/user/<username>/_password

 

最新回复(0)