当前直接使用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