ElasticSearch shield安全组件从安装到配置完整版

1.安装shield

bin/plugin install license

bin/plugin install shield

 

2.重启Elasticsearch

先关闭进程

ps–ef | grep elasticsearch

kill-9 pid

启动es

setsid./elasticsearch

3.用户配置

安装完成后,需要配置对应角色的用户,shield预定了三个用户角色

分别是:

1)admin 可以操作任何的集群和索引的动作

2)power_user 可以监控集群和执行任何索引操作

3)user 可以在任何索引上执行读操作。

配置对应角色的用户命令是:

bin/shield/esusers useradd 用户名 -r 角色

按回车输入对应密码(密码至少是6个字符或者数字长度)

用户名密码配置成功之后可以在config/shield下面看到 users和users_roles文件

users中是用户名和密码,密码是加密过的

users_roles是你建立的用户所属的角色

 


创建管理员用户 bin/shield/esusers useradd es_admin -r admin

登陆管理员 curl -u es_admin -XGET http://192.168.134.129:9200

如果出现失败,可能需要在/etc/elasticsearch/elasticsearch.yml中加入下面的内容:

shield:

authc:

realms:

default:

type: esusers

order: 0

enabled: true

files:

users: "/etc/elasticsearch/shield/users"

users_roles: "/etc/elasticsearch/shield/users_roles"


 

创建user用户

bin/shield/esusersuseradd es_read -r user

 

4. 启用消息验证

bin/shield/syskeygen

将生成的秘钥复制到集群中的其余节点上(系统密钥是一个对称密钥,所以同一个密钥必须位于集群中的每个节点上。

 

 

5.启用审核

elasticsearch.yml:中添加shield.audit.enabled:true,启动审核功能,Shield会存储与自己Elasticsearch集群尝试和成功交互的记录,可以使用这些信息来跟踪正在对您的集群做了什么,并确定潜在安全。默认情况下,事件被记录到一个专门的elasticsearch-access.log文件中ES_HOME/logs。您还可以将事件存储在Elasticsearch索引中,以便于分析和控制记录的事件

6.HTTP方式访问Elasticsearch

1、在浏览器上访问Elasticsearch

格式:http://192.168.134.129:9200/_plugin/head/

2、在服务器上使用curl

curl -u es_admin-XGET http://192.168.134.129:9200

 

7.java api操作

第一种

         官方的针对TransportClient中加入shield的代码配置如下

TransportClient client = newTransportClient(ImmutableSettings.builder().put("cluster.name","myClusterName").put("shield.user","transport_client_user:changeme")).addTransportAddress(newInetSocketTransportAddress("localhost",9300)).addTransportAddress(newInetSocketTransportAddress("localhost",9301));

 

第二种:

1、加入shield-2.3.5.jar包

2、修改setting

想要使用的用户和密码,请修改为你实际的。

importorg.elasticsearch.shield.ShieldPlugin;

 

Settings settings = Settings.settingsBuilder().put("cluster.name", "pasm")

        .put("shield.user","adminName:adminname").build();

3.修改client

以下为你需要连接的ES的ip和port,请修改为你实际值。

Client client = TransportClient.builder().addPlugin(ShieldPlugin.class).settings(settings)

       .build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.134.129"), 9200));

 

8.Shield用户管理基本操作

新增用户

     bin/shield/esusersuseradd 用户名 -r 角色

查看所有用户

     bin/shield/esuserslist

 

修改用户密码

     bin/shield/esuserspasswd 账户

 

删除用户

     bin/shield/esusersuserdel es_read

 

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值