ES(Elasticsearch)8.x 以上启用自动安全配置,手动安全配置
创始人
2024-11-12 13:40:41

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 查看登录页面。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...