认证过程由realm服务进行处理。
realm:基于authentication tokens解析和认证用户。
安全功能提供了如下realms: Native user authentication ,file,ad,pki,ldap,saml,kerberos,oidc
当配置了安全认证,基于配置的realm,当向es发送请求时,需要附加认证信息。
例如,当使用用户名/密码认证时,可以在请求中附加basic auth认证信息。
内建用户
用户名 | 说明 |
---|---|
elastic | 内建超级用户 |
kibana_system | kibana用来于es连接和通讯的用户 |
logstash_system | logstash用来存储监控信息到es中 |
beats_system | beats用来存储监控信息到es中 |
apm_system | apm用来存储监控信息到es中 |
remote_monitoring_user | metricbeat用来收集和存储es的信息。内置具有remote_monitoring_agent和remote_monitoring_collector角色 |
非明确需要,不要使用内建用户。
内建用户是存在.security index中的,由es自己管理。如果内建用户被禁用、更改密码,变更会自动在集群的每个节点上应用。
内建用户可以由 disable users api 来禁用。
es启动时会有一个默认的启动密码,但是不需要关心它。如果设置了bootstrap.password,启动密码将被覆盖。
必须为所有内建用户设置密码。
使用elasticsearch-setup-passwords工具来进行设置,设置过程会用到elastic用户的启动密码。
使用该工具时,可以选择互动模式。
bin/elasticsearch-setup-passwords interactive
一旦设置了elastic用户的密码,启动密码不再有效。elasticsearch-setup-passwords只能运行一次。
基于Token的认证服务
token-service
使用get token api生成token。默认情况下,20分钟后过期,最大可设置为1小时后过期。
api-key-service
使用create api key api生成api keys,默认情况api key是不会过期的。当生成的时候也可以指定过期时间和权限。