Elasticsearch 入门(四)开启 Elasticsearch 安全功能(使用Xpack)

Elasticsearch 入门(四)开启 Elasticsearch 安全功能(使用Xpack)

elasticsearch 在7.1版本之后可以免费使用x-pack,不需要额外付费

Elasticsearch 安全功能入门

从 Elastic Stack 6.8 和 7.1 开始,我们在默认分发包中免费提供多项安全功能,例如 TLS 加密通信、基于角色的访问控制 (RBAC),等等。

在 Elasticsearch 主节点上配置 TLS

1.首先在之前的docker-compose文件上加上

....
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    environment: 
      - "xpack.security.enabled=true"
....
  1. 启动容器后进入容器 docker exec -it containerid bash
  2. cd 命令更改至 master 目录,然后运行下列命令:
    bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
  3. vi config/elasticsearch.yaml
    将下列代码行粘贴到文件末尾。
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
  1. 手动生成密码。bin/elasticsearch-setup-passwords interactive

第 2 步:Elasticsearch 集群密码 一旦主节点开始运行,便可以为集群设置密码了。在新终端中,我们必须通过 cd 命令更改至主节点目录。然后我们运行命令 bin/elasticsearch-setup-passwords auto。这将会为不同的内部堆栈用户生成随机密码。或者,您也可以跳过 auto 参数,改为通过 interactive 参数手动定义密码。请记录这些密码,我们很快就会再次用到这些密码。

  1. 保存记录好的密码

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

  1. 进入Kibana容器 docker exec -it containerid bash
  2. 文本编辑器打开config/kibana.yml文件
  3. 找到类似下面的代码行
#elasticsearch.username: "user"
#elasticsearch.password: "pass"

对 username 和 password 字段取消注释,方法是删除代码行起始部分的 # 符号。将 "user" 更改为 "kibana",然后将 "pass" 更改为 setup-passwords 命令告诉我们的任何 Kibana 密码。保存文件,然后我们便可通过运行 bin/kibana 启动 Kibana 了。

原文地址:https://www.cnblogs.com/WNpursue/p/13156619.html