ES(Elasticsearch)8.x 以上启用自动安全配置,手动安全配置

avatar
作者
筋斗云
阅读量:0

ES 8.x 以后,默认启用了自动安全配置,即 $ES_PATH_CONF/elasticsearch.yml 中默认的 xpack.security.enabled: false 变成了默认的 xpack.security.enabled: true,启用elasticsearch 的安全配置。

自动安全配置

自动进行以下安全配置:

  1. 为传输层和 HTTP 层生成 TLS 证书和密钥。

  2. TLS 配置设置写入elasticsearch.yml

  3. elastic 用户生成密码。

  4. 为 Kibana 生成注册令牌。

NOTE: 仅在安装后第一次启动时会启用自动安全配置,且配置文件中与安全配置相关的默认值没有被更改过。

还有一些小细节需要注意,elastic 超级用户的密码,ca指纹,kibana注册令牌会在第一次启动时输出到控制台,请记录下该信息。而且,不能将该信息输出到文件中,切记,如果输出地址为文件,那么ES基于安全考虑,将隐藏掉 elastic 密码,ca指纹,kibana注册令牌。

打开一个新终端并验证您是否可以通过进行经过身份验证的调用来连接到 Elasticsearch 集群。 出现提示时输入 elastic 用户的密码:

curl --cacert config/certs/http_ca.crt -u elastic https://localhost:9200

最后启动kibana输入注册令牌,使用超级用户登录就可以了

手动安全配置

如果您正在运行禁用安全性的现有 Elasticsearch 集群,则可以手动启用 Elasticsearch 安全功能,然后为内置用户创建密码。 您可以稍后添加更多用户,但使用内置用户可以简化为集群启用安全性的过程。

IMPORTANT

对于生产模式集群来说,最低安全场景是不够的。 如果您的集群有多个节点,则必须启用最低安全性,然后在节点之间配置传输层安全性 (TLS)。

启用 Elasticsearch 安全功能

启用 Elasticsearch 安全功能可提供基本身份验证,以便您可以通过用户名和密码身份验证运行本地集群。

  1. 在集群中的每个节点上,停止 Kibana 和 Elasticsearch(如果它们正在运行)。

  2. 在集群中的每个节点上,将 xpack.security.enabled设置添加到 $ES_PATH_CONF/elasticsearch.yml 文件并将值设置为 true

    xpack.security.enabled: true

    NOTE

    $ES_PATH_CONF 变量是 Elasticsearch 配置文件的路径。 如果您使用存档发行版(zip 或 tar.gz)安装 Elasticsearch,则该变量默认为 $ES_HOME/config。 如果您使用软件包发行版(Debian 或 RPM),则该变量默认为 /etc/elasticsearch

  3. 如果您的集群有单节点,请在 $ES_PATH_CONF/elasticsearch.yml 文件中添加 discovery.type 设置,并将值设置为 single-node。 此设置可确保您的节点不会无意中连接到可能在您的网络上运行的其他集群。

    discovery.type: single-node

为内置用户设置密码

要与集群通信,您必须为 elastickibana_system 内置用户配置密码。 除非您启用匿名访问(不推荐),否则所有不包含凭据的请求都会被拒绝。

NOTE

当启用最低或基本安全时,您只需要为 elastickibana_system 用户设置密码。

  1. 在集群中的每个节点上启动 Elasticsearch。 例如,如果您使用 .tar.gz 包安装 Elasticsearch,请从 ES_HOME 目录运行以下命令:

    ./bin/elasticsearch
  2. 在集群中的任何节点上,打开另一个终端窗口,并通过运行 elasticsearch-reset-password 实用程序为 elastic 内置用户设置密码。 此命令将密码重置为自动生成的值。

    ./bin/elasticsearch-reset-password -u elastic

    如果要将密码设置为特定值,请使用交互式 (-i) 参数运行该命令。

    ./bin/elasticsearch-reset-password -i -u elastic
  3. 设置 kibana_system 内置用户的密码。

    ./bin/elasticsearch-reset-password -u kibana_system
  4. 保存新密码。 在下一步中,您将 kibana_system 用户的密码添加到 Kibana。

Next: 配置 Kibana 使用密码连接 Elasticsearch

配置 Kibana 使用密码连接到 Elasticsearch

启用Elasticsearch安全功能后,用户必须使用有效的用户名和密码登录Kibana。

您将配置 Kibana 以使用内置的 kibana_system 用户和您之前创建的密码。 Kibana 执行一些需要使用 kibana_system 用户的后台任务。

该帐户不适用于个人用户,并且无权从浏览器登录 Kibana。 相反,您将以 elastic 超级用户身份登录 Kibana。

  1. elasticsearch.username 设置添加到 KIB_PATH_CONF/kibana.yml 文件中,并将值设置为 kibana_system 用户:

    elasticsearch.username: "kibana_system"

    NOTE

    KIB_PATH_CONF 变量是 Kibana 配置文件的路径。 如果您使用存档发行版(ziptar.gz)安装 Kibana,则该变量默认为 KIB_HOME/config。 如果您使用软件包发行版(Debian 或 RPM),则该变量默认为 /etc/kibana

  2. 从安装 Kibana 的目录中,运行以下命令来创建 Kibana 密钥库并添加安全设置:

    1. 创建 Kibana 密钥库:

      ./bin/kibana-keystore create
    2. kibana_system 用户的密码添加到 Kibana 密钥库:

      ./bin/kibana-keystore add elasticsearch.password

      出现提示时,输入 kibana_system 用户的密码。

    3. 重新启动 Kibana。 例如,如果您使用 .tar.gz 包安装 Kibana,请从 Kibana 目录运行以下命令:

      ./bin/kibana
    4. elastic 用户登录 Kibana。 使用此超级用户帐户来管理空间、创建新用户和分配角色。 如果您在本地运行 Kibana,请访问 http://localhost:5601 查看登录页面。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!