最小化安全设置
如果您正在运行现有的未启用安全性的集群,并希望启用 Elasticsearch 的安全功能,则只需完成以下步骤。
在 Elasticsearch 8.0 及更高版本中,首次启动 Elasticsearch 时,安全性会自动启用。
如果您正在运行一个已禁用安全性的现有 Elasticsearch 集群,您可以手动启用 Elasticsearch 安全功能,然后为内置用户创建密码。您稍后可以添加更多用户,但使用内置用户可以简化为集群启用安全性的过程。
本文档中描述的最低安全性方案不足以用于生产模式集群。如果您的集群有多台节点,您必须遵循本指南,并同时配置节点之间的传输层安全性 (TLS)。
启用 Elasticsearch 安全功能可提供基本身份验证,以便您能够运行带有用户名和密码身份验证的本地集群。
在集群中的每个节点上,如果 Kibana 和 Elasticsearch 正在运行,请将它们停止。
在集群中的每个节点上,将
xpack.security.enabled设置添加到$ES_PATH_CONF/elasticsearch.yml文件中,并将其值设为truexpack.security.enabled: true注意$ES_PATH_CONF变量是 Elasticsearch 配置文件的路径。如果您使用归档分发包(zip或tar.gz)安装了 Elasticsearch,则该变量默认为$ES_HOME/config。如果您使用的是包分发版(Debian 或 RPM),则该变量默认为/etc/elasticsearch。如果您的集群只有单个节点,请在
$ES_PATH_CONF/elasticsearch.yml文件中添加discovery.type设置,并将其值设为single-node。此设置可确保您的节点不会无意中连接到网络上可能运行的其他集群。discovery.type: single-node
要与集群进行通信,必须为 elastic 和 kibana_system 内置用户配置密码。除非您启用匿名访问(不推荐),否则所有不包含凭据的请求都将被拒绝。
在集群中的每个节点上启动 Elasticsearch。例如,如果您使用
.tar.gz包安装了 Elasticsearch,请从ES_HOME目录运行以下命令./bin/elasticsearch注意如果您正在为多节点集群执行此操作,则必须先在节点中设置传输 TLS 证书,然后才能启动这些节点。
在集群的任意节点上,打开另一个终端窗口,并通过运行
elasticsearch-reset-password工具为elastic内置用户设置密码。此命令将密码重置为自动生成的值。./bin/elasticsearch-reset-password -u elastic如果您想将密码设置为特定值,请带上交互式(
-i)参数运行该命令。./bin/elasticsearch-reset-password -i -u elastic为
kibana_system内置用户设置密码。./bin/elasticsearch-reset-password -u kibana_system保存新密码。在下一步中,您将把
kibana_system用户的密码添加到 Kibana 中。
下一步:配置 Kibana 以使用密码连接到 Elasticsearch
启用 Elasticsearch 安全功能后,用户必须使用有效的用户名和密码登录 Kibana。
您将配置 Kibana 使用内置的 kibana_system 用户以及您之前创建的密码。Kibana 会执行一些需要使用 kibana_system 用户的后台任务。
此帐户不适用于单个用户,也没有从浏览器登录 Kibana 的权限。相反,您将作为 elastic 超级用户登录 Kibana。
将
elasticsearch.username设置添加到KBN_PATH_CONF/kibana.yml文件中,并将其值设为kibana_system用户elasticsearch.username: "kibana_system"注意KBN_PATH_CONF变量是 Kibana 配置文件的路径。如果您使用归档分发包(zip或tar.gz)安装了 Kibana,则该变量默认为KIB_HOME/config。如果您使用的是包分发版(Debian 或 RPM),则该变量默认为/etc/kibana。从安装 Kibana 的目录中,运行以下命令以创建 Kibana 密钥库并添加安全设置
创建 Kibana 密钥库
./bin/kibana-keystore create将
kibana_system用户的密码添加到 Kibana 密钥库中./bin/kibana-keystore add elasticsearch.password出现提示时,输入
kibana_system用户的密码。
重启 Kibana。例如,如果您使用
.tar.gz包安装了 Kibana,请从 Kibana 目录运行以下命令./bin/kibana以
elastic用户身份登录 Kibana。使用此超级用户帐户管理空间、创建新用户并分配角色。如果您在本地运行 Kibana,请访问https://:5601以查看登录页面。
恭喜!您已为本地集群启用了密码保护以防止未授权访问。您可以作为 elastic 用户登录 Kibana 并创建更多用户和角色,但请记住,您的浏览器连接以及 Kibana 与 Elasticsearch 之间的流量仍将通过纯 HTTP 保持未加密状态。
如果您的集群有多台节点,则必须配置节点之间的传输层安全性 (TLS)。如果不启用 TLS,生产模式集群将无法启动。