为 Elasticsearch 设置最小安全级别
编辑为 Elasticsearch 设置最小安全级别编辑
只有在运行现有未保护的集群并希望启用 Elasticsearch 安全功能时,才需要完成以下步骤。
在 Elasticsearch 8.0 及更高版本中,当您首次启动 Elasticsearch 时,安全功能将自动启用。
如果您正在运行一个安全功能已禁用的现有 Elasticsearch 集群,您可以手动启用 Elasticsearch 安全功能,然后为内置用户创建密码。您可以在以后添加更多用户,但使用内置用户可以简化为集群启用安全功能的过程。
最小安全方案不足以满足生产模式集群的要求。如果您的集群有多个节点,您必须启用最小安全级别,然后在节点之间配置传输层安全 (TLS)。
启用 Elasticsearch 安全功能编辑
启用 Elasticsearch 安全功能可以提供基本身份验证,以便您可以使用用户名和密码身份验证运行本地集群。
- 在集群中的每个节点上,如果 Kibana 和 Elasticsearch 正在运行,请停止它们。
-
在集群中的每个节点上,将
xpack.security.enabled
设置添加到$ES_PATH_CONF/elasticsearch.yml
文件中,并将值设置为true
xpack.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
内置用户配置密码。除非您启用匿名访问(不建议),否则所有不包含凭据的请求都会被拒绝。
在启用最小安全级别或基本安全级别时,您只需要为 elastic
和 kibana_system
用户设置密码。
-
在集群中的每个节点上,启动 Elasticsearch。例如,如果您使用
.tar.gz
软件包安装了 Elasticsearch,请从ES_HOME
目录运行以下命令./bin/elasticsearch
-
在集群中的任何节点上,打开另一个终端窗口,并通过运行
elasticsearch-reset-password
实用程序来为elastic
内置用户设置密码。此命令会将密码重置为自动生成的 value。./bin/elasticsearch-reset-password -u elastic
如果您希望将密码设置为特定值,请使用交互式 (
-i
) 参数运行该命令。./bin/elasticsearch-reset-password -i -u elastic
-
为
kibana_system
内置用户设置密码。./bin/elasticsearch-reset-password -u kibana_system
- 保存新密码。在下一步中,您将向 Kibana 添加
kibana_system
用户的密码。
配置 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://127.0.0.1:5601
查看登录页面。
下一步编辑
恭喜!您已为本地集群启用密码保护,以防止未经授权的访问。您可以以 elastic
用户身份安全地登录 Kibana,并创建其他用户和角色。如果您正在运行单节点集群,则可以停止在此处。
如果您的集群有多个节点,则必须在节点之间配置传输层安全 (TLS)。生产模式集群在您未启用 TLS 的情况下将无法启动。
为 Elastic Stack 设置基本安全级别,以保护集群中所有节点之间的内部通信。