内置用户

编辑

Elastic Stack 安全功能提供内置用户凭据,以帮助您快速上手。这些用户具有固定的权限集,并且在设置其密码之前无法进行身份验证。elastic 用户可以用来设置所有内置用户的密码

在 Elastic Cloud 上,启用了操作员权限。即使角色允许用户完成管理任务,这些权限也会限制某些基础设施功能。

elastic

一个内置的超级用户

任何可以以 elastic 用户身份登录的用户都可以直接只读访问受限索引,例如 .security。此用户还可以管理安全性和创建具有无限权限的角色。

kibana_system
Kibana 用于连接并与 Elasticsearch 通信的用户。
logstash_system
Logstash 将监控信息存储到 Elasticsearch 时使用的用户。
beats_system
Beats 将监控信息存储到 Elasticsearch 时使用的用户。
apm_system
APM 服务器将监控信息存储到 Elasticsearch 时使用的用户。
remote_monitoring_user
Metricbeat 收集并将监控信息存储到 Elasticsearch 时使用的用户。它具有 remote_monitoring_agentremote_monitoring_collector 内置角色。

内置用户的工作原理

编辑

这些内置用户存储在一个特殊的 .security 索引中,该索引由 Elasticsearch 管理。如果内置用户被禁用或其密码更改,则更改会自动反映在集群中的每个节点上。但是,如果您的 .security 索引被删除或从快照中恢复,则您已应用的任何更改都会丢失。

尽管它们共享相同的 API,但内置用户与由原生领域管理的用户是独立且不同的。禁用原生领域不会对内置用户产生任何影响。可以使用禁用用户 API单独禁用内置用户。

Elastic 启动密码

编辑

安装 Elasticsearch 时,如果 elastic 用户还没有密码,它将使用默认的启动密码。启动密码是一个临时密码,使您可以运行设置所有内置用户密码的工具。

默认情况下,启动密码是从随机的 keystore.seed 设置派生的,该设置在安装过程中添加到密钥库中。您无需了解或更改此启动密码。但是,如果您已在密钥库中定义了 bootstrap.password 设置,则使用该值。有关与密钥库交互的更多信息,请参见安全设置

设置内置用户的密码后,特别是 elastic 用户的密码后,启动密码将不再有用。

设置内置用户密码

编辑

您必须为所有内置用户设置密码。

elasticsearch-setup-passwords 工具是第一次设置内置用户密码的最简单方法。它使用 elastic 用户的启动密码来运行用户管理 API 请求。例如,您可以以“交互式”模式运行该命令,该命令会提示您为 elastickibana_systemlogstash_systembeats_systemapm_systemremote_monitoring_user 用户输入新密码。

bin/elasticsearch-setup-passwords interactive

有关命令选项的更多信息,请参见elasticsearch-setup-passwords

elastic 用户设置密码后,启动密码将不再有效;您无法第二次运行 elasticsearch-setup-passwords 命令。

或者,您可以使用 Kibana 中的管理 > 用户页面或更改密码 API来设置内置用户的初始密码。这些方法比较复杂。您必须提供 elastic 用户及其启动密码才能登录 Kibana 或运行 API。此要求意味着您无法使用从 keystore.seed 设置派生的默认启动密码。相反,您必须在启动 Elasticsearch 之前在密钥库中显式设置 bootstrap.password 设置。例如,以下命令会提示您输入新的启动密码。

bin/elasticsearch-keystore add "bootstrap.password"

然后,您可以启动 Elasticsearch 和 Kibana,并使用 elastic 用户和启动密码登录 Kibana 并更改密码。或者,您可以为每个内置用户提交更改密码 API 请求。这些方法更适合在初始设置完成后更改密码,因为此时不再需要启动密码。

将内置用户密码添加到 Kibana

编辑

设置 kibana_system 用户密码后,需要通过在 kibana.yml 配置文件中设置 elasticsearch.password 来更新 Kibana 服务器。

elasticsearch.password: kibanapassword

请参见在 Kibana 中配置安全设置

将内置用户密码添加到 Logstash

编辑

启用 Logstash 监控时,logstash_system 用户在 Logstash 内部使用。

要在 Logstash 中启用此功能,需要通过在 logstash.yml 配置文件中设置 xpack.monitoring.elasticsearch.password 来更新 Logstash 配置。

xpack.monitoring.elasticsearch.password: logstashpassword

如果您已从较旧版本的 Elasticsearch 升级,出于安全原因,logstash_system 用户可能默认为已禁用。更改密码后,您可以通过以下 API 调用启用该用户。

resp = client.security.enable_user(
    username="logstash_system",
)
print(resp)
const response = await client.security.enableUser({
  username: "logstash_system",
});
console.log(response);
PUT _security/user/logstash_system/_enable

请参见配置 Logstash 监控的凭据

将内置用户密码添加到 Beats

编辑

启用 Beats 监控时,beats_system 用户在 Beats 内部使用。

要在 Beats 中启用此功能,需要更新每个 Beats 的配置以引用正确的用户名和密码。例如:

xpack.monitoring.elasticsearch.username: beats_system
xpack.monitoring.elasticsearch.password: beatspassword

例如,请参见监控 Metricbeat

remote_monitoring_user 用于 Metricbeat 收集和存储 Elastic Stack 的监控数据。请参见生产环境中的监控

如果您已从较旧版本的 Elasticsearch 升级,则可能尚未为 beats_systemremote_monitoring_user 用户设置密码。如果是这种情况,则应使用 Kibana 中的管理 > 用户页面或更改密码 API来为这些用户设置密码。

将内置用户密码添加到 APM

编辑

启用监控时,apm_system 用户在 APM 内部使用。

要在 APM 中启用此功能,需要更新 apm-server.yml 配置文件以引用正确的用户名和密码。例如:

xpack.monitoring.elasticsearch.username: apm_system
xpack.monitoring.elasticsearch.password: apmserverpassword

如果您已从较旧版本的 Elasticsearch 升级,则可能尚未为 apm_system 用户设置密码。如果是这种情况,则应使用 Kibana 中的管理 > 用户页面或更改密码 API来为这些用户设置密码。

禁用默认密码功能

编辑

此设置已弃用。elastic 用户不再具有默认密码。必须先设置密码才能使用该用户。请参见Elastic 启动密码