开启ELK安全认证

集群身份认证需要跟集群内部安全通信一起配置不然会报错
一、集群身份认证
在elasticsearch.yml配置文件中加入
xpack.security.enabled: true
二、集群内部安全通信
1.生成证书
为Elasticsearch集群创建一个证书颁发机构。
bin/elasticsearch-certutil ca
2.为集群中的每个节点生成证书和私钥
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
可以在创建过程中加入密码
3.将证书拷贝到elasticsearch的每个节点下面config/certs目录下
elastic-certificates.p12
4.配置elasticsearch.yml文件
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

5.如果在创建证书的过程中加了密码,需要将你的密码加入到你的Elasticsearch keystore中去。每个节点都需要
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password

bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_passwo

三、给认证的集群创建用户密码所有机器
bin/elasticsearch-setup-passwords interactive

通过第三步,可以给ES中许多内置的用户创建密码
• elastic 账号:拥有 superuser 角色,是内置的超级用户。
• kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
• logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
• beats_system账号:拥有 beats_system 角色。用户 Beats 在 Elasticsearch 中存储监控信息时使用。
elastic是超级用户,它可以做任何事情
四、在Kibana中设置登录ES的用户
我们可以首先给Kibana配置上超级用户elastic,这样可以使用Kibana给ES集群配置不同的用户与角色。
• 角色:我们可以给ES中的角色,赋予对不同索引的不同的读写权限。
• 用户:我们可以将不同角色,赋予用户。
有两种方式使kibana访问ES集群。
• 在Kibana.yml中配置
elasticsearch.username: “xxx”
elasticsearch.password: “xxx”
• 使用Kibana.keystore
bin/kibana-keystore create
bin/kibana-keystore add elasticsearch.name
bin/kibana-keystore add elasticsearch.password
#删除
bin/kibana-keystore remove xxxx
登录Kibana设置角色跟用户
在这里插入图片描述

我们可以看到security下一个为设置用户一个为设置角色。
更多可查看
https://www.elastic.co/cn/blog/getting-started-with-elasticsearch-security
5.使用python连接设置好用户验证的ES集群
使用elasticsearch库
class ElasticSearchClient(object):
# TODO:实例和事务化单个node,若需要多个node,需要重构代码
def init(self):
self.es_servers = [{
“host”: ‘xx.xx.141.141’,
“port”: ‘9200’
}]
self.es_client = elasticsearch.Elasticsearch(hosts=self.es_servers,http_auth=(“xxxx”, “xxxx”))#加入http_auth=(“用户名”,“密码”)
# TODO:进行创建一个数据库,即index
def create_es_index(self, index_name):
self.es_client.indices.create(index=index_name)

# TODO:进行删除一个数据库,即index
def delete_es_index(self, index_name):
    self.es_client.indices.delete(index=index_name)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值