内置用户
编辑内置用户
编辑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_agent
和remote_monitoring_collector
内置角色。
内置用户的工作原理
编辑这些内置用户存储在由 Elasticsearch 管理的特殊 .security
索引中。如果禁用内置用户或其密码发生更改,则该更改会自动反映在集群中的每个节点上。但是,如果您的 .security
索引被删除或从快照还原,则您已应用的所有更改都将丢失。
尽管它们共享相同的 API,但内置用户与由本地领域管理的用户是分开且不同的。禁用本地领域不会对内置用户产生任何影响。可以使用禁用用户 API 单独禁用内置用户。
Elastic 引导密码
编辑当您安装 Elasticsearch 时,如果 elastic
用户尚未设置密码,它将使用默认的引导密码。引导密码是一种临时密码,使您能够运行用于设置所有内置用户密码的工具。
默认情况下,引导密码是从一个随机的 keystore.seed
设置派生的,该设置在安装期间添加到密钥库中。您无需知道或更改此引导密码。但是,如果您在密钥库中定义了 bootstrap.password
设置,则会改用该值。有关与密钥库交互的更多信息,请参阅安全设置。
在您设置内置用户的密码后,特别是对于 elastic
用户,则不再需要引导密码。
设置内置用户密码
编辑您必须为所有内置用户设置密码。
elasticsearch-setup-passwords
工具是首次设置内置用户密码的最简单方法。它使用 elastic
用户的引导密码来运行用户管理 API 请求。例如,您可以以“交互式”模式运行该命令,该模式会提示您为 elastic
、kibana_system
、logstash_system
、beats_system
、apm_system
和 remote_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 内部使用 logstash_system
用户。
要在 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 内部使用 beats_system
用户。
要在 Beats 中启用此功能,您需要更新每个 beats 的配置,以引用正确的用户名和密码。例如
xpack.monitoring.elasticsearch.username: beats_system xpack.monitoring.elasticsearch.password: beatspassword
例如,请参阅监视 Metricbeat。
当 Metricbeat 收集和存储 Elastic Stack 的监视数据时,将使用 remote_monitoring_user
。请参阅生产环境中的监视。
如果您是从旧版本的 Elasticsearch 升级的,则您可能尚未为 beats_system
或 remote_monitoring_user
用户设置密码。如果出现这种情况,则应使用 Kibana 中的管理 > 用户页面或更改密码 API来为这些用户设置密码。
将内置用户密码添加到 APM
编辑当启用监视时,会在 APM 内部使用 apm_system
用户。
要在 APM 中启用此功能,您需要更新 apm-server.yml
配置文件,以引用正确的用户名和密码。例如
xpack.monitoring.elasticsearch.username: apm_system xpack.monitoring.elasticsearch.password: apmserverpassword
如果您是从旧版本的 Elasticsearch 升级的,则您可能尚未为 apm_system
用户设置密码。如果出现这种情况,则应使用 Kibana 中的管理 > 用户页面或更改密码 API来为这些用户设置密码。
禁用默认密码功能
编辑此设置已弃用。elastic 用户不再具有默认密码。必须先设置密码才能使用该用户。请参阅Elastic 引导密码。