elasticsearch+kibana实现权限控制-search-guard

一、版本
     1.elasticsearch 5.2.0
     2.kibana 5.2.0
二、es安装searchguard插件
     1.进入ES_HOME目录,运行
       bin/elasticsearch-plugin install -b com.floragunn:search-guard-5:5.2.0-12
       search-guard-5:5.2.0-12(:后为版本号,选择与自己版本匹配的search-guard插件)
三、kibana安装searchguard
     1.下载kibana search-guard插件
       https://github.com/floragunncom/search-guard-kibana-plugin/releases/download/v5.2.0-3/searchguard-kibana-5.2.0-3.zip
     2.通过ftp工具上传至KIBANA_HOME目录下
     3.进入KIBANA_HOME目录,运行
       bin/kibana-plugin install file://$KIBANA_HOME/searchguard-kibana-5.2.0-3.zip
       searchguard-kibana-5.2.0-3.zip(-5.2.0-3后为版本号,选择与自己版本匹配的search-guard插件)
四、下载search-guard-ssl
     1.进入ES_HOME目录,运行
       git clone https://github.com/floragunncom/search-guard-ssl.git
     生成search-guard-ssl目录
     2.进入search-guard-ssl/example-pki-scripts/目录
       cd search-guard-ssl/example-pki-scripts/
=======说明====================  
     下面有三个脚本,分别为
     gen_client_node_cert.sh 创建客户端证书
     gen_node_cert.sh        创建节点证书
     gen_root_ca.sh          创建根证书
===============================
五、修改脚本文件
     1.vim gen_client_node_cert.sh
     将-dname "CN=$CLIENT_NAME, OU=client, O=client, L=Test, C=DE"
     改为:-dname "CN=$CLIENT_NAME"
     2.vim gen_node_cert.sh
     将-dname "CN=$NODE_NAME.example.com, OU=SSL, O=Test, L=Test, C=DE" \
     改为:-dname "CN=$NODE_NAME"    
     3.vim example.sh(全部修改)
     #!/bin/bash
     set -e
     ./clean.sh
     ./gen_root_ca.sh password password 
     ./gen_node_cert.sh 0 password  password 
     ./gen_node_cert.sh 1 password  password 
     ./gen_client_node_cert.sh admin password password 
     (password自定义)
=====说明======================= 
    1.gen_root_ca.sh 123 123
    第一个参数为CA_PASS,即CA密码(根证书密码)
    第二个参数为TS_PASS,即TS密码(truststore,信任证书密码)
    2.gen_node_cert.sh 0 123 123
    第一个参数为node编号,生成证书后的文件名为node-0*
    第二个参数为KS_PASS(keystore文件密码)
    第三个参数为CA_PASS
    3.gen_client_node_cert.sh admin 123
    第一个参数为客户端节点名称,生成证书后的文件名为admin*
    第二个参数为KS_PASS
    第三个参数为CA_PASS
=================================
六、生成证书和密匙库
    1.运行./example.sh
    2.将example-pki-scripts文件夹中的node-0-keystore.jks和truststore.jks复制到elasticsearch的配置目录中
      cp truststore.jks node-0-keystore.jks $ES_HOME/config/
    3.将example-pki-scripts文件夹中的admin-keystore.jks和truststore.jks复制到elasticsearch程序目录下的plugins/search-guard-5/sgconfig下
      cp truststore.jks admin-keystore.jks $ES_HOME/plugins/search-guard-5/sgconfig
七、修改配置文件
1.vim  ES_HOME/config/elasticsearch.yml  添加如下信息
 searchguard.ssl.transport.enabled: true
    searchguard.ssl.transport.keystore_filepath: node-0-keystore.jks
    searchguard.ssl.transport.keystore_password: changeit
    searchguard.ssl.transport.truststore_filepath: truststore.jks
    searchguard.ssl.transport.truststore_password: changeit
    searchguard.ssl.transport.enforce_hostname_verification: false
    searchguard.authcz.admin_dn:
            - "CN=admin, OU=client, O=client, L=Test, C=DE"  
  2.vim KIBANA_HOME/config/kibana.yml 修改如下信息
    elasticsearch.username: "kibanaserver"
    elasticsearch.password: "kibanaserver"
    elasticsearch.ssl.verify: false
八、启动es,并将相关配置初始化写入es中
 1.ES_HOME/bin/elasticsearch -d
    2.cd ES_HOME/plugins/search-guard-5/
 3.tools/sgadmin.sh -ts ES_HOME/config/truststore.jks -tspass password -ks sgconfig/kirk-keystore.jks -kspass password -cd sgconfig/ -icl -nhnv -h hostname/IP
九、启动kibana,并验证
 1.nohup KIBANA_HOME/bin/kibana &
 2.访问127.0.0.1:5601 
      跳出登陆框,输入用户名和密码   admin/admin
      进入kibana用户界面即成功
    3.或者直接访问es:127.0.0.1:9200
      跳出登陆框,输入用户名和密码   admin/admin
      返回集群信息即成功
=======说明======================
    searchguard 主要有5个配置文件在ES_HOME/plugins/search-guard-5/sgconfig 下:
    sg_config.yml:主配置文件不需要做改动。
    sg_internal_users.yml:本地用户文件,定义用户密码以及对应的权限。
    sg_roles.yml:权限配置文件
    sg_roles_mapping.yml:定义用户的映射关系
    sg_action_groups.yml:定义权限
=================================
十、自定义用户(sloan)
    1.cd ES_HOME/plugins/search-guard-5/
    2.tools/hash.sh -p password
    3.vim sgconfig/sg_internal_users.yml  添加如下信息
      sloan:
        hash:************************************************************** (hash.sh生成的码)
    4.vim sgconfig/sg_roles_mapping.yml  在
      sg_all_access:
         users:
          - admin
      后加上-sloan
    5.重新初始化数据,参考第八步
    6.参考第九步进行验证

你可能感兴趣的:(elasticsearch+kibana实现权限控制-search-guard)