open distro for elasticsearch 是由亚马逊AWS支持的基于Apache License,Version 2.0协议的100%开源的Elasticsearch发行版。与Elastic公司官方的Elasticsearch版本最大的区别是:剔除了基于elastic协议发布的xpack插件,增加了开源插件。新增插件功能包括安全、告警、索引生命周期管理、性能分析、SQL等企业级功能。简单理解就是集成了开源版xpack插件的elasticsearch。
和xpack一样open distro也提供了security插件,实现加密通信、用户登陆认证、操作授权、文档和字段级别访问控制、日志审计等企业级安全功能。opendisro_security插件也支持有internaldatabase、Active Directory, LDAP,OpenID Connect 等多种后台认证服务组成的认证链。默认采用internaldatabase方式实现用户管理,内部的用户数据、权限数据、角色数据存储在ES集群的.opendistro_security
索引中,和xpack的native realms 类似。系统默认初始化的用户有:
opendisro_security插件默认支持三种用户管理方式:配置文件、kibana图形化界面、API命令
配置文件
应用场景:适合Elasticsearch安装后初始化用户数据,不适合后续业务管理。
操作方法:
第一步,在ES_HOME/plugins/opendistro_security/securityconfig/中编辑internal_users.yml、roles_maping.yml、roles.yml 文件中的用户、角色和权限数据
第二步,启动Elasticsearch服务
第三步,运行plugins/opendistro_security/tools/securityadmin.sh 脚本将数据更新到.opendistro_security
索引中
kibana图形化界面
API 命令
查看用户
GET _opendistro/_security/api/internalusers
新建用户
PUT _opendistro/_security/api/internalusers/wangzhen
{
"password":"6789@jkl",
"backend_roles":[],
"attributes":{
"age":18
}
}
#响应
{
"status" : "CREATED",
"message" : "'wangzhen' created."
}
修改用户
官方推荐的PATCH 方法修改用户并不能成功,并报错
PATCH _opendistro/_security/api/internalusers/wangzhen
{
"op":"replace",
"path":"/backend_roles",
"value":["admin"]
}
应该使用和新建用户一样的方法,且可以更新密码:
PUT _opendistro/_security/api/internalusers/wangzhen
{
"password":"6789@jkl",
"backend_roles":["admin"],
"attributes":{
"age":18
}
}
#响应
{
"status" : "OK",
"message" : "'wangzhen' updated."
}
删除用户
DELETE /_opendistro/_security/api/internalusers/wangzhen
#响应
{
"status" : "OK",
"message" : "'wangzhen' deleted."
}