ElasticSearch5.x基于SearchGuard的账号密码权限管控

ElasticSearch5.x基于SearchGuard的账号密码权限管控

ElasticSearch生产集群做了证书认证,数据需要共享了怎么办?怎样安全的数据共享?

单纯的使用证书对外开放是不现实的,在最开始搭建生产集群的时候能能够预留出来十几个client证书用于认证已经很了不起了,那如果有几百个接入体,每个接入体都需要特色化的权限,而不是单纯的读组和写组。
这样就需要最基础的账密认证方式,并且能够实现权限的管控。
基于这个目标,我们需要做的是单独拿出来一台client角色的客户端,解除该client角色的$ElasticSearch_HOME/config/elasticsearch.yml下的

searchguard.ssl.http.enabled=false

配置更改为false,代表禁用该节点的http_ssl功能,意味着可以使用简单的http账号密码来进行数据的访问。
访问需要使用ElasticSearch的低阶APIhttps://www.elastic.co/guide/en/elasticsearch/client/java-rest/5.4/_basic_authentication.html

final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
        new UsernamePasswordCredentials("user", "password"));

RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200))
        .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
            }
        })
        .build();

实现简单的权限管控,建议可以通过业务数据库进行一层封装留痕记录和管控,底层使用SearchGuard提供的sgconfig下的yml文件来实现用户组的管理和用户的基础操控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值