为 Elasticsearch 设置最小安全级别

编辑

为 Elasticsearch 设置最小安全级别编辑

只有在运行现有未保护的集群并希望启用 Elasticsearch 安全功能时,才需要完成以下步骤。

在 Elasticsearch 8.0 及更高版本中,当您首次启动 Elasticsearch 时,安全功能将自动启用

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

最小安全方案不足以满足生产模式集群的要求。如果您的集群有多个节点,您必须启用最小安全级别,然后在节点之间配置传输层安全 (TLS)

启用 Elasticsearch 安全功能编辑

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

  1. 在集群中的每个节点上,如果 Kibana 和 Elasticsearch 正在运行,请停止它们。
  2. 在集群中的每个节点上,将 xpack.security.enabled 设置添加到 $ES_PATH_CONF/elasticsearch.yml 文件中,并将值设置为 true

    xpack.security.enabled: true

    $ES_PATH_CONF 变量是 Elasticsearch 配置文件的路径。如果您使用归档分发版(ziptar.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 内置用户配置密码。除非您启用匿名访问(不建议),否则所有不包含凭据的请求都会被拒绝。

在启用最小安全级别或基本安全级别时,您只需要为 elastickibana_system 用户设置密码。

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

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

    ./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 添加 kibana_system 用户的密码。

下一步: 配置 Kibana 以使用密码连接到 Elasticsearch

配置 Kibana 以使用密码连接到 Elasticsearch编辑

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

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

此帐户并非供个人用户使用,并且没有权限从浏览器登录 Kibana。相反,您将以 elastic 超级用户身份登录 Kibana。

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

    elasticsearch.username: "kibana_system"

    KBN_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,请转到 https://127.0.0.1:5601 查看登录页面。

下一步编辑

恭喜!您已为本地集群启用密码保护,以防止未经授权的访问。您可以以 elastic 用户身份安全地登录 Kibana,并创建其他用户和角色。如果您正在运行单节点集群,则可以停止在此处。

如果您的集群有多个节点,则必须在节点之间配置传输层安全 (TLS)。生产模式集群在您未启用 TLS 的情况下将无法启动。

为 Elastic Stack 设置基本安全级别,以保护集群中所有节点之间的内部通信。