ES鉴权设计以及相关探讨

这篇具有很好参考价值的文章主要介绍了ES鉴权设计以及相关探讨。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

鉴权,分别由组成

  • : 表示身份认证,认证相关用户是否存在以及相关的用户名和密码是否一致
  • : 完成身份的后,还需要判断用户是否有相关操作的权限。

因此对于某一个用户来说,通常情况下,需要完成才能够满足一个完整的业务场景,因此通常将鉴权放在一起考量。本文探讨es的鉴权常用的鉴权方式以及相关鉴权设计方式。


1. es的鉴权设计

es通常不需要进行鉴权设计,但是由于一些项目的安全性要求,会进行要求鉴权配置

: 身份认证

身份的认证有4种方式:

  • SASL/GSSAPI:kerberos认证方式,一般使用随机密码的keytab认证方式,密码是加密的,也是企业里使用最多的认证方式,在0.9版本引入;
  • SASL/PLAIN:这种方式其实就是一个账号/密码的认证方式,不过它有很多缺陷,比如用户名密码是存储在文件中,不能动态添加,密码明文等等!这些特性决定了它比较鸡肋,但好处是足够简单,这使得我们可以方便地对它进行二次开发,在0.10版本引入;
  • SASL/SCRAM:针对SASL/PLAIN方式的不足而提供的另一种认证方式。这种方式的用户名/密码是存储中zookeeper的,因此能够支持动态添加用户。该种认证方式还会使用sha256或sha512对密码加密,安全性相对会高一些,在0.10.2版本引入;
  • SASL/OAUTHBEARER:是基于OAuth 2.0的认证框架,实现较为复杂,目前业内应该较少使用,在2.0版本引入。

: 操作权限
5种操作权限:
CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,

注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限。

2. es鉴权应用范围

es的鉴权范围,通常会包括2个层面

  • es之间的通信
  • 客户端跟es之间的通信

3. es鉴权的常用方法

  • 设置 Nginx 的反向代理
  • 安装免费的 Security 插件
  1. https://search-guard.com/
  2. https://github.com/sscarduzio/elasticsearch-readonlyrest-plugin
  • X-Pack 的 Basic 版(从 ES 6.8 & ES 7.0 开始,Security 纳入 x-pack 的 Basic 版本中,免费使用一些基本的功能 https://www.elastic.co/what-is/elastic-stack-security)

最常用的是X-Pack ,使用的是简单认证模式

3.1 认证体系

认证体系的几种类型

  • 提供用户名和密码
  • 提供秘钥或 Kerberos 票据
  • Realms : X-Pack 中的认证服务
  • 内置 Realms (免费): File / Native (用户名密码保存在 Elasticsearch)
  • 外部 Realms (收费): LDAP / Active Directory / PKI / SAML / Kerberos

3.2 x-pack认证

3.2.1 开启并配置 X-Pack 的认证与鉴权

  • 修改配置文件,打开认证于授权
bin/elasticsearch -E node.name=node0 -E cluster.name=geektime -E path.data=node0_data -E http.port=9200 -E xpack.security.enabled=true - E xpack.security.transport.ssl.enabled=true
  • 创建默认的用户和分组
bin/elasticsearch-passwords interactive
  • 当集群开启身份认证之后,配置 Kibana

3.2.2 默认用户和角色

用户 角色
elastic Supper User
kibana The user that is used by Kibana to connect and communicate with Elasticsearch.
logstash_system The user that is used by Logstash when storing monitoring information in Elasticsearch.
beats_system The user that the different Beats use when storing monitoring information in Elasticsearch.
apm_system The user that the APM server uses when storing monitoring information in Elasticsearch.
Remote_monitoring_user The user that is used by Metricbeat when collecting and storing monitoring information in Elasticsearch.

3.2.3 创建用户和角色

使用 Security API 创建用户

POST /_security/user/lsk
{
      "password": "password",
      "roles": ["admin"],
      "full_name": "Crazy Zard",
      "email":"541306829@qq.com",
      "metadata": {
        "intelligence":7
      }
}

3.2.4 通过用户名和密码访问es

使用用户名和密码查询es集群文章来源地址https://www.toymoban.com/news/detail-828713.html

curl -XGET -u user:pass -H 'Content-Type: application/json' 'http://localhost:9200/_cluster/health?pretty'

4. 参考文档

  • es官网

到了这里,关于ES鉴权设计以及相关探讨的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式搜索引擎ES

    elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应

    2024年02月04日
    浏览(39)
  • 分布式搜索分析引擎ES

    es是实时的分布式搜索分析引擎: 实时表现在新增到ES中的数据1s中就可以被检索到,这种新增数据对搜索的可见性成为“准实时搜索”。 分布式意味着可以动态调整集群规模,弹性扩容,支持上百个节点,相比 HDFS 等上千台的集群,更适合中等数据量的业务,不适合存储海

    2024年03月12日
    浏览(45)
  • 【分布式搜索引擎es】

    elasticsearch最擅长的是 搜索 和 数据分析 。 查询文档 常见的查询类型包括: 查询所有 :查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询 :利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query multi_match_query 精确查询 :根据精确

    2024年02月10日
    浏览(46)
  • 【ES】【elasticsearch】分布式搜索

    因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker镜像官网https://hub.docker.com/search?q=elasticsearch 运行docker命令,部署单点es: 命令解释: -e \\\"cluster.name=es-docker-cluster\\\" :设置集群名称 -e \\\"http.host=0.0.0.0\\\" :监听的地址,可以外网访问 -e \\\"ES

    2024年02月12日
    浏览(33)
  • 分布式搜索引擎es-3

    什么是聚合? 聚合 可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么 品牌 的手机最受欢迎? 这些手机的 平均 价格、 最高 价格、 最低 价格? 这些手机每 月的销售情况 如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实

    2024年02月07日
    浏览(43)
  • elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)

    文档的查询同样适用昨天学习的 RestHighLevelClient对象,基本步骤包括: 1)准备Request对象 2)准备请求参数 3)发起请求 4)解析响应 我们以match_all查询为例 3.1.1.发起查询请求 代码解读: 第一步,创建 SearchRequest 对象,指定索引库名 第二步,利用 request.source() 构建DSL,DSL中可

    2024年02月07日
    浏览(49)
  • ES分布式搜索-IK分词器

    es在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入内容分词。但默认的分词规则对中文处理并不友好。 我们在kibana的DevTools中测试: 语法说明: POST:请求方式 /_analyze:请求路径,这里省略了http://192.168.12.131:9200,有kibana帮我们补充 请求参数,json风格: anal

    2024年03月14日
    浏览(91)
  • 分布式搜索引擎es 面试突击

    es elastocsearch 倒排索引 是在数据查询之前建立,在查询的时候可以直接通过定位到文档内容。用空间换时间 分布式架构原理说一下? es底层是基于lucene来的   大概就是一个用于全文检索的jar包 用es来做分布式的搜索引擎  可以承载一秒钟几千的搜索 es用来存储数据的

    2024年02月06日
    浏览(38)
  • elasticsearch(ES)分布式搜索引擎04——(数据聚合,自动补全,数据同步,ES集群)

    **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近

    2024年02月08日
    浏览(47)
  • 使用es实现轻量级分布式锁

    一般来说,实现分布式锁的方式有哪几种? 一:Redisson实现 二:ZK实现   这两种实现网上的实现是千篇一律,在本文就不做过多的讲解了   其它方式好像没有了,真的是这样么?   答案是否定的,今天我就给大家分享一个新的思路,使用es实现一个分布式锁,分布式

    2024年02月06日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包