🚧
ElasticSearch && X_Pack_Security X_Pack_Security基础配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 xpack.security.enabled: true xpack.security.authc.accept_default_password: false xpack.security.authc.realms: realm1: type: native order: 0 enabled: true relam2: type: ldap order: 1 xpack.security.authc: anonymous: username: anonymous_user roles: role1, role2 authz_exception: true
生成Security密码 1 2 3 4 5 cd bin # 自动生成 ./elasticsearch-setup-passwords auto # 手动生成 注意:该命令仅仅第一次执行有效,后续若希望修改密码,可以通过KibanaUI/ES X_PACK_Security API进行修改 ./elasticsearch-setup-passwords interactive
elastic 超级用户
Kibana 用于连接并且和Elasticsearch通信的
logstash_system 用于在Elasticsearch中存储监控信息
beats_system 用于在Elasticsearch中存储监控信息
Tips : 千万要注意自己的配置,笔者在配置集群YML文件时,设置最小Cluster Master节点需要两个。因此执行密码手动重置时,抛出Master节点不足错误。
X_Pack_Security API 用户CRUD API 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 # 查看所有用户 curl -X GET -u elastic "localhost:9200/_xpack/security/user" # 查看指定用户 curl -X GET -u elastic "localhost:9200/_xpack/security/user/${userName}" # 创建用户 curl -X POST -u elastic "localhost:9200/_xpack/security/user/${userName}" -H 'Content-Type: application/json' -d' { # 声明密码 分配权限 "password" : "j@rV1s", "roles" : [ "admin", "other_role1" ], "full_name" : "Jack Nicholson", "email" : "jacknich@example.com", "metadata" : { "intelligence" : 7 } } # 修改密码 curl -X POST "localhost:9200/_xpack/security/user/${userName}/_password" -H 'Content-Type: application/json' -d' { "password" : "s3cr3t" } # 禁用、启用、删除用户 curl -X PUT "localhost:9200/_xpack/security/user/${userName}/_disable" curl -X PUT "localhost:9200/_xpack/security/user/${userName}/_enable" curl -X DELETE "localhost:9200/_xpack/security/user/${userName}"
角色CRUD API 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 # 查询所有角色 curl -X GET "localhost:9200/_xpack/security/role" # 查询具体role curl -X GET "localhost:9200/_xpack/security/role/${roleName}" # 删除角色 curl -X DELETE "localhost:9200/_xpack/security/role/${roleName}" # 创建角色 curl -X POST "localhost:9200/_xpack/security/role/${roleName}" -H 'Content-Type: application/json' -d' { # 角色 所能操作的cluster "cluster": ["all"], "indices": [ { # role所能操作的cluster 符合条件的index(必选) "names": [ "index1", "index2" ], # 具体权限(必选) "privileges": ["all"], "field_security" : { // 可选 "grant" : [ "title", "body" ] }, "query": "{"match": {"title": "foo"}}" // 可选 } ], "run_as": [ "other_user" ], // 可选 "metadata" : { // 可选 "version" : 1 } } '
Kibana && X_Pack_Security X_Pack_Security基础配置 当es集群启动后,Kibana想要连接到集群,则需要配置相关权限账户信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 elasticsearch.username: "kibana" elasticsearch.password: "%{password} " //todo xpack.security.enabled: true xpack.security.encryptionKey: "32位或更长自定义加密KEY" xpack.security.sessionTimeout: 600000
Kibana的用户认证方式
Basic Authentication:默认选项 ,登录kibana时,需要填写帐密。基于ES的native relam
SAML Single Sign-On:允许用户使用外部身份提供者(如Okta或Auth0)登录Kibana。在Kibana中设置SAML之前,请确保在Elasticsearch中启用和配置SAML。
User authentication 为了访问受保护的资源,一个用户必须通过密码、凭证、或者其它方式(通常是token)来证明他们的身份标识。
认证过程由一个或多个被称为“realms”的认证服务来处理。
你可以用本机支持管理和认证用户,或者集成外部的用户管理系统(比如:LDAP 和 Active Directory)。
X-Pack安全特性提供了内置的realms,比如:native,ldap,active_directory,pki,file 和 saml。如果没有一个内置realms满足你的需求,你还可以构建自己的realm。
当启用X-Pack安全特性时,根据你配置的realms,你必须将用户凭证附加到发送到Elasticsearch的请求中。例如,当使用支持用户名和密码的realms时,你可以简单的将basic auth头信息添加到请求中。