elasticsearch插件 x-pack.security组件的使用

1.离线安装x-pack:

(6版本以后内置xpack,只需要开启)

下载es对应的相应版本的x-pack,修改版本号即可通过官方链接下载:

https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.1.1.zip

下载后放到指定位置如/usr/x-pack-6.1.1.zip并到es安装目录下运行:

./bin/elasticsearch-plugin install file:///usr/x-pack-6.1.1.zip

安装完重启即可,默认用户 elasitc:changeme

restful访问方式改为 curl -u elastic:changeme -XGET .......

安装后使用head修改yml文件:

  head需要:

  http.cors.enabled: true
  http.cors.allow-origin:’*’

  安装x-pack后需要:

  http.cors.allow-headers: “Authorization”

访问head格式更改为:

http://localhost:9100/?auth_user=elastic&auth_password=changeme

破解x-pack参考:

http://blog.csdn.net/mvpboss1004/article/details/65445023

http://blog.csdn.net/qq_20641565/article/details/78286894

2.xpack.security权限简介

xpack权限均基于角色(role)分配,具体用户(user)基于相应角色(role)创建。具体权限如下:
    集群层面:
        all:所有集群管理操作,如快照,节点关闭/重新启动,设置更新,重新路由或管理用户和角色。
        monitor:所有集群只读操作,如集群健康状态,热线程,节点信息,节点和集群统计信息,快照/恢复状态,挂起的集群任务。
        monitor_ml:所有只读机器学习操作,例如获取有关数据输入,作业,模型快照或结果的信息。
        monitor_watcher:所有只读的观察者操作,如获取手表和观察者的统计数据。
        manage:构建monitor并添加更改集群中的值的集群操作。 这包括快照,更新设置和重新路由。此权限不包括管理安全性的功能。
        manage_index_templates:索引模板上的所有操作。
        manage_ml:所有机器学习操作,如创建和删除数据Feed,作业和模型快照。
        manage_pipeline:所有摄取管道的操作
        manage_security:所有安全相关的操作,如用户和角色的CRUD操作和缓存清除。
        manage_watcher:所有观察者操作,如手表,执行,激活或确认。
        transport_client:传输客户端连接所需的所有权限。 远程集群需要启用跨群集搜索。
    索引层面:
        all:对索引的任何操作
        monitor:监控所需的所有操作(恢复,细分信息,索引统计信息和状态)
        manage:所有monitor权限加索引管理(别名,分析,缓存清除,关闭,删除,存在,刷新,映射,打开,强制合并,刷新,设置,搜索碎片,模板,验证)。
        view_index_metadata:对索引元数据(别名,别名,获取索引,存在,字段映射,映射,搜索碎片,类型存在,验证,加热器,设置)的只读访问。 这个特权主要可供Kibana用户使用。
        read:只读操作
        read_cross_cluster:只能从远程集群访问搜索操作
        index:插入更新文档,不能查删。
        create:创建文档(不能查删(包括自己创建的文档),可以更新文档)
        delete:删除文档(不能查曾,只能删除文档)
        write:    对文档执行所有写入操作的权限,其中包括索引,更新和删除文档以及执行批量操作的权限。还授予对更新映射操作的访问权限。
        delete_index:对指定的索引有删除权利(只能删除,不能建查任何索引)
        create_index:对指定的索引有创建权利(只能创建,不能查删任何索引)
    文档层面:
        文档级安全权限限制对索引中特定文档的访问,可以再角色定义中通过查询匹配来指定访问文档的权限
    字段层面:
        字段级安全权限限制对文档中特定字段的访问,可以在角色定义中指定每个角色可以访问的字段
        查询时只显示规定字段,其余权限归属索引。

3.java客户端api

maven pom.xml导入(maven库里没有xpack包则需要用es官网的maven库):

  <repositories>
        <repository>
            <id>elasticsearch-releases</id>
            <url>https://artifacts.elastic.co/maven</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
   </repositories>    
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
            <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>5.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>5.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>x-pack-transport</artifactId>
        <version>5.2.0</version>
    </dependency>
  </dependencies>

连接es集群:

Settings settings = Settings.builder()
                .put("cluster.name", "my-application")
                .put("xpack.security.transport.ssl.enabled", false)
                .put("xpack.security.user", "elastic:changeme")
                .put("client.transport.sniff", true)
                .build();
client = new PreBuiltXPackTransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
XPackClient xClient = new XPackClient(client);

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值