为 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
内置用户的密码。此命令会将密码重置为自动生成的值。./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://127.0.0.1:5601
以查看登录页面。
下一步是什么?
编辑恭喜!您已为本地集群启用密码保护,以防止未经授权的访问。您可以以 elastic
用户身份安全地登录 Kibana,并创建其他用户和角色。如果您正在运行单节点集群,那么您可以在此停止。
如果您的集群有多个节点,那么您必须配置节点之间的传输层安全性 (TLS)。如果您不启用 TLS,生产模式集群将不会启动。
为 Elastic Stack 设置基本安全性,以保护集群中节点之间的所有内部通信。