笔记四十九: 管集群身份认证与用户鉴权 
                                                    
                        
                    
                    
  
                    
                    数据泄露
- 5700 万用户数据泄漏
- 1.08 亿条投注信息泄漏原因分析
- ES 在默认安装后,不提供任何形式的安全防护
- 错误的配置信息导致公网可以访问 ES 集群- 在elasticsearch.yml文件中,server.host被错误的配置为0.0.0.0
 
- 在
数据安全性的基本需求
- 身份认证- 鉴定用户是否合法
 
- 用户鉴权- 指定哪个用户可以访问哪个索引
 
- 传输加密
- 日志审计
一些免费的方案
- 设置 Nginx 的反向代理
- 安装免费的 Security 插件- Search Guard - https://search-guard.com/
- ReadOnly REST - https://github.com/sscarduzio/elasticsearc...
 
- X-Pack 的 Basic 版- 从 ES 6.8 & ES 7.0 开始,Security 纳入 x-pack 的 Basic 版本中,免费使用一些基本的功能
- https://www.elastic.co/what-is/elastic-sta...
 
Anthentication - 身份认证
- 认证体系的几种类型- 提供用户名和密码
- 提供秘钥或 Kerberos 票据
 
- Realms : X-Pack 中的认证服务- 内置 Realms (免费)- File / Native (用户名密码保存在 Elasticsearch)
 
- 外部 Realms (收费)- LDAP / Active Directory / PKI / SAML / Kerberos
 
 
- 内置 Realms (免费)
RBAC - 用户鉴权
- 什么是 RBAC:Role Based Access Control, 定义一个角色,并分配一组权限。权限包括索引 级,字段级,集群级的不同的操作。然后通过将角色分配给用户,使得用户拥有这些权限- User:The authenticated User
- Role:A named set of permissions
- Permission – A set of one or more privileges against a secured resource
- Privilege – A named group of 1 or more actions that user may execute against a secured resource
 
Privilege
- Cluster Privileges- all / monitor / manager / manage_index / manage_index_template / manage_rollup
 
- Indices Privileges- all / create / create_index / delete / delete_index / index / manage / read /writeview_index_metadata
 
创建内置的用户和角色
- 内置的角色与用户用户 角色 elastic Supper User kibana The user that is used by Kibana to connect and communicate with Elasticsearch. logstash_system The user that is used by Logstash when storing monitoring information in Elasticsearch. beats_system The user that the different Beats use when storing monitoring information in Elasticsearch. apm_system The user that the APM server uses when storing monitoring information in Elasticsearch. Remote_monitoring_user The user that is used by Metricbeat when collecting and storing monitoring information in Elasticsearch. 
使用 Security API 创建用户
POST /_security/user/lsk
{
      "password": "password",
      "roles": ["admin"],
      "full_name": "Crazy Zard",
      "email":"541306829@qq.com",
      "metadata": {
        "intelligence":7
      }
}开启并配置 X-Pack 的认证与鉴权
- 修改配置文件,打开认证于授权- bin/elasticsearch -E node.name=node0 -E cluster.name=geektime -E path.data=node0_data -E http.port=9200 -E xpack.security.enabled=true - E xpack.security.transport.ssl.enabled=true
 
- 创建默认的用户和分组- bin/elasticsearch-password interactive
- 使用docker时并进入到容器中 elasticsearch-setup-passwords interactive
 
- 当集群开启身份认证之后,配置 Kibana
- Demo- 创建一个Role,配置为某个索引只读权限 、创建一个用户,把用户加入Role
 
配置 Kibana
- 修改 kibana.yml- elasticsearch.username: “kibana”
- elasticsearch.password: “changeme”
 
创建 Role
创建用户
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           CrazyZard 的个人博客
 CrazyZard 的个人博客
         
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
开启并配置 X-Pack 的认证与鉴权 下面有一个命令错误了
bin/elasticsearch-password interactive
正确的应该是: bin/elasticsearch-setup-passwords interactive