​ 配置tls加密通信及身份验证,主要目的是为了确保集群数据安全。在es早期版本,安全认证相关功能都属于商业付费服务,一般普通公司如果集群部署在内网,基本上就忽略了这些安全认证,当然也可以通过Nginx反向代理来进行控制。现在,官方宣布从6.8和7.1开始,免费提供很多项安全功能。其中包括tls加密通信,基于角色访问控制(RBAC)等功能。这对很多使用ELK技术栈的公司来说是一个福利。

一、配置 TLS 和身份验证

1、我们要做的第一件事是生成证书,通过这些证书便能允许节点安全地通信。但是一般情况下,我们可以通过elasticsearch自带的elasticsearch-certutil的命令生成证书。然后各节点通过该证书可以进行安全通信。

在搭建好es集群的条件下,生成证书:

cd /usr/local/elasticsearch
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

2、上面命令执行成功后,会在config文件夹下生成elastic-certificates.p12证书。然后编辑配置文件elasticsearch.yml,将以下内容添加到配置文件末尾:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

3、将上面步骤生成的elastic-certificates.p12证书复制到另外两个node02与node03节点上对应的config文件夹中并授权,同时将上面配置选项也都复制到对应节点的elasticsearch.yml文件里。

chown -R elasticsearch. /usr/local/elasticsearch/config/elastic-certificates.p12

4、现在三台node节点上都有了证书,同时elasticsearch.yml文件中也都增加了安全配置项。启动三个节点。待节点启动完毕之后,进入其中一个节点elasticsearch目录,执行以下命令,进行密码设置:

bin/elasticsearch-setup-passwords interactive

5、由于现在Elasticsearch设置了密码,所以logstash过滤数据之后往es集群中推送的时候以及将数据展示到kibana时,需要添加权限认证。增加es集群的用户及密码:

logstash:

user => "elastic"
password => "password"

kibana:

elasticsearch.username: "elastic"
elasticsearch.password: "password"

6、elasticsearch-head插件此时再去访问有安全认证的es集群时http://node01:9100,会发现无法进行查看,打开控制台可以看到报错:401 unauthorized,head无法登陆的问题:

在/usr/local/elasticsearch/config/elasticsearch.yml中添加如下三行配置:

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

修改三台es节点,然后重新启动,再次url+认证信息方式可以正常访问es集群。

http://ip:9100/?auth_user=elastic&auth_password=passwd

二、在 Kibana 中配置基于角色的访问控制 (RBAC)

由于ELK日志管理属于基础设施平台,所以接入多个应用系统是正常现象,如果接入多个系统的索引文件没有进行权限划分,那么很大程度会出现索引文件误处理现象,为了避免这种情况发生,多用户及权限设置必不可少。

如果是像这个例子中的全新安装情况,Kibana 将询问您是否希望加载一些样本数据。

现在我们就创建角色。找到并单击 roles(角色)选项。

单击 Create role(创建角色)。

针对不同用户只能查看各自系统的索引文件。第一步需要创建角色,将某个角色和索引文件进行绑定。

  • 1、创建第一个应用系统test01 角色,选择对应的索引文件,分配对应的权限read

  • 2、 创建第二个系统test02角色,选择对应的索引文件,分配对应的权限read

  • 3、创建两个用户test01/test01(用户名/密码),test02/test02, 然后分配对应系统角色和kibana_user角色

  • 5、用户创建完后,可以进行登录验证。

    登录test01用户,只能查询test01的索引日志。

虽然test01用户可以看到其他的索引index-pattern, 但是无法查询到数据。所以保证了其他系统索引文件的安全。

登录test02用户,只能查询test02 索引日志,其他索引无法查询到数据。

test02用户选择其他未分配权限的索引,无法查询到数据。

到此,系统多用户安全认证日志平台搭建完成!

基于ELK Stack7.1.0构建多用户安全认证日志系统的更多相关文章

  1. 基于ef core 2.0的数据库增删改审计系统

    1.首先是建审计存储表 CREATE TABLE [dbo].[Audit] ( [Id] [uniqueidentifier] NOT NULL, [EntityName] [nvarchar](1 ...

  2. 基于ASP.NET 4.0开发的微商城系统OdnShop,开源发布

    基于ASP.NET 4.0开发的开源微商城系统,我们的目标是构建一个核心完善而又轻量级的微商城平台,目前基本的核心功能,包括微信登陆/支付,产品管理,购物车与订单管理等,轻量级是为了更加便于理解源码和 ...

  3. ELK统一日志系统的应用

    收集和分析日志是应用开发中至关重要的一环,互联网大规模.分布式的特性决定了日志的源头越来越分散, 产生的速度越来越快,传统的手段和工具显得日益力不从心.在规模化场景下,grep.awk 无法快速发挥作 ...

  4. 从0搭建一个基于 ELK 的日志、指标收集与监控系统

    为了使得私有化部署的系统能更健壮,同时不增加额外的部署运维工作量,本文提出了一种基于 ELK 的开箱即用的日志和指标收集方案. 在当前的项目中,我们已经使用了 Elasticsearch 作为业务的数 ...

  5. 开源低代码平台开发实践二:从 0 构建一个基于 ER 图的低代码后端

    前后端分离了! 第一次知道这个事情的时候,内心是困惑的. 前端都出去搞 SPA,SEO 们同意吗? 后来,SSR 来了. 他说:"SEO 们同意了!" 任何人的反对,都没用了,时代 ...

  6. 微信小程序教学第二章:小程序中级实战教程之预备篇 - 项目结构设计 |基于最新版1.0开发者工具

    iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...

  7. ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台(elk5.2+filebeat2.11)

    ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台 参考:http://www.tuicool.com/articles/R77fieA 我在做ELK日志平台开始之初选择为 ...

  8. 如何基于 K8S 多租能力构建 Serverless Container

    当前 Kubernetes 已经成为名副其实的企业级容器编排规范,很多云平台都开始提供兼容 Kubernetes 接口的容器服务.而在多用户支持方面,多数平台选择直接提供专属虚机集群,用户需要花费大量 ...

  9. Packet Tracer 5.0 构建CCNA实验(2)—— 配置VLAN

    Packet Tracer 5.0 构建CCNA实验(2)—— 配置VLAN Vlan(Virtual Local Area Network) 即虚拟局域网.VLAN可以把同一个物理网络划分为多个逻辑 ...

随机推荐

  1. UI自动化之特殊处理三(日期控件\表格\富文本)

    日期控件\表格\富文本也是一些常遇到的需要特殊处理的定位 目录 1.日期控件 2.表格 3.富文本 1.日期控件 第一种:输入框属性为:readonly="readonly" # ...

  2. Delphi控件-复合控件

     http://blog.csdn.net/cml2030/article/details/3166634 Delphi控件-复合控件 标签: delphidestructorbuttonstring ...

  3. Pku2054 Color a Tree

    有一个N个结点的有根树,1是这个树的根.现在要对这N个结点依次进行染色,每个结点染色要花费1个单位的时候,同时要满足一个结点仅在其父亲被染色后才可被染色,每个结点有个权值Ci,如果我们在第Ti时间对i ...

  4. Nginx https服务器证书安装步骤

    本文档指导您如何在 Nginx 服务器中安装 SSL 证书. 说明: 本文档以证书名称 www.domain.com 为例. Nginx 版本以 nginx/1.16.0 为例. 当前服务器的操作系统 ...

  5. vue 中注册全局组件

    1  全局注册组件 建一个 js 文件, 注册全局组件, 并且暴露出去 然后再在 main.js  中引入       在页面就可以直接使用了    2 全局注册过滤器 建立文件, 包含所有过滤器方法 ...

  6. 事件驱动体系结构(EDA)

  7. API网关spring cloud gateway和负载均衡框架ribbon实战

    通常我们如果有一个服务,会部署到多台服务器上,这些微服务如果都暴露给客户,是非常难以管理的,我们系统需要有一个唯一的出口,API网关是一个服务,是系统的唯一出口.API网关封装了系统内部的微服务,为客 ...

  8. MySQL学习笔记(上)

    在进行SQL注入原理的剖析的时候,对MySQL数据库掌握薄弱,参照菜鸟教程的MySQL教程速刷一遍MySQL 关于MySQL MySQL是最流行的关系型数据库管理系统,在WEB方面MySQL是最好的R ...

  9. 浅谈格雷码(Grey Code)在信息学竞赛中的应用

    1.格雷码的概念 1.性质 格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同. 常用的二进制数与格雷码间的转换关系如 ...

  10. P3188 [HNOI2007]梦幻岛宝珠

    传送门 注意到 $a,b$ 不大 考虑对每一个 $a*2^b$ 的 $b$ 分别背包 设 $f[i][j]$ 表示只考虑 $b=i$ 的物品时,容量为 $j= \sum a$ 的最大价值 这个就是普通 ...