5-2-elasticsearch用户管理
1. 内置用户
Elastic Stack安全功能提供内置的用户凭据,帮助您启动和运行。这些用户有一组固定的权限,在设置密码之前无法进行身份验证。
内置用户用于特定目的,不用于一般用途。特别是,除非绝对需要完全访问集群,否则不要使用弹性超级用户。在自我管理的部署中,使用弹性用户来创建对其活动具有最低必需角色或权限的用户。
elastic: 内置的superuser任何可以作为弹性用户登录的人都可以直接以只读方式访问受限制的索引,如
.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_moritoring_collector”内置角色。
2. Security-Roles权限
Elastic Stack安全功能将默认角色应用于所有用户,包括匿名用户。默认角色使用户能够访问身份验证端点、更改自己的密码以及获取有关自己的信息。 还有一组内置角色可以显式分配给用户。这些角色具有一组固定的权限,无法更新。
ingest_admin:授予访问权限以管理所有索引模板和所有摄取管道配置。这个角色不能提供创建索引的能力; 这些特权必须在一个单独的角色中定义。kibana_dashboard_only_user: 授予对Kibana仪表板的访问权限以及对.kibana索引的只读权限。 这个角色无法访问Kibana中的编辑工具。kibana_system: 授予Kibana系统用户读取和写入Kibana索引所需的访问权限 , 管理索引模板并检查Elasticsearch集群的可用性。 此角色授予对.monitoring-索引的读取访问权限以及对.reporting-索引的读取和写入访问权限。kibana_user: 授予Kibana用户所需的最低权限。 此角色授予访问集群的Kibana索引和授予监视权限。viewer: 授予对Kibana中所有功能(包括解决方案)和数据索引的只读访问权限。kibana_admin: 允许访问Kibana的所有功能logstash_admin: 授予访问用于管理配置的.logstash *索引的权限。logstash_system: 授予Logstash系统用户所需的访问权限 , 以将系统级别的数据( 如监视) 发送给Elasticsearch。不应将此角色分配给用户 , 因为授予的权限可能会在不同版本之间发生变化。此角色不提供对logstash索引的访问权限 , 不适合在Logstash管道中使用。machine_learning_admin:授予manage_ml群集权限并读取.ml- *索引的访问权限。machine_learning_user: 授予查看X-Pack机器学习配置 , 状态和结果所需的最低权限。此角色授予monitor_ml集群特权 , 并可以读取.ml-notifications和.ml-anomalies *索引 , 以存储机器学习结果monitoring_user: 授予除使用Kibana所需的X-Pack监视用户以外的任何用户所需的最低权限。 这个角色允许访问监控指标。 监控用户也应该分配kibana_user角色remote_monitoring_agent: 授予远程监视代理程序将数据写入此群集所需的最低权限remote_monitoring_collector: 授予收集弹性堆栈的监控数据所需的最低权限。reporting_user: 授予使用Kibana所需的X-Pack报告用户所需的特定权限。 这个角色允许访问报告指数。 还应该为报告用户分配kibana_user角色和一个授予他们访问将用于生成报告的数据的角色。superuser: 授予对群集的完全访问权限 , 包括所有索引和数据。 具有超级用户角色的用户还可以管理用户和角色 , 并模拟系统中的任何其他用户。 由于此角色的宽容性质 , 在将其分配给用户时要格外小心transport_client: 通过Java传输客户端授予访问集群所需的权限。 Java传输客户端使用节点活性API和群集状态API( 当启用嗅探时) 获取有关群集中节点的信息。 如果他们使用传输客户端 , 请为您的用户分配此角色。使用传输客户端有效地意味着用户被授予访问群集状态的权限。这意味着用户可以查看所有索引 , 索引模板 , 映射 , 节点以及集群基本所有内容的元数据。但是 , 此角色不授予查看所有索引中的数据的权限watcher_admin: 授予对.watches索引的写入权限 , 读取对监视历史记录的访问权限和触发的监视索引 , 并允许执行所有监视器操作watcher_user: 授予读取.watches索引 , 获取观看动作和观察者统计信息的权限
2. cluster权限
all: 所有集群管理操作,如快照,节点关闭/重新启动,设置更新,重新路由或管理用户和角色monitor: 所有集群只读操作,如集群运行状况,热线程,节点信息,节点和集群统计信息,快照/恢复状态,等待集群任务monitor_ml: 所有只读机器学习操作,例如获取有关数据传输,作业,模型快照或结果的信息monitor_watcher: 所有只读操作,例如获取watch和watcher统计信息manage: 构建monitor并添加更改集群中值的集群操作。这包括快照,更新设置和重新路由。此特权不包括管理安全性的能力manage_index_templates: 索引模板上的所有操作manage_ml: 所有机器学习操作,例如创建和删除数据传输,作业和模型快照。数据处理以具有提升特权的系统用户身份运行,包括读取所有索引的权限manage_pipeline: 摄取管道的所有操作manage_security: 所有与安全相关的操作,例如对用户和角色的CRUD操作以及缓存清除manage_watcher: 所有观察者操作,例如放置watches,执行,激活或确认。Watches作为具有提升特权的系统用户运行,包括读取和写入所有索引的权限。Watches作为具有提升特权的系统用户运行,包括读取和写入所有索引的权限transport_client: 传输客户端连接所需的所有权限。远程群集需要启用跨级群搜索
3. indices权限
all: 索引上的任何操作monitor: 监控所需的所有操作(恢复,细分信息,索引统计信息和状态)manage: 所有monitor特权加索引管理(别名,分析,缓存清除,关闭,删除,存在,刷新,映射,打开,强制合并,刷新,设置,搜索分片,模板,验证)view_index_metadata: 对索引元数据(别名,别名存在,获取索引,存在,字段映射,映射,搜索分片,类型存在,验证,warmers,设置)进行只读访问。此特权主要供Kibana用户使用read: 只读操作(计数,解释,获取,mget,获取索引脚本,更多像这样,多渗透/搜索/termvector,渗透,滚动,clear_scroll,搜索,建议,tv)read_cross_cluster: 只读访问来自远程集群的搜索操作index: 索引和更新文件。还授予对更新映射操作的访问权限create: 索引文件。还授予对更新映射操作的访问权限delete: 删除文件write: 对文档执行所有写入操作的权限,包括索引,更新和删除文档以及执行批量操作的权限。还授予对更新映射操作的访问权限delete_index: 删除索引create_index: 创建索引。创建索引请求可能包含在创建索引时添加到索引的别名。在这种情况下,该请求最好有manage权限,同时设置索引和别名
4. 用户相关命令
4.1 elasticsearch-reset-password
elasticsearch-reset-password 是一个命令行工具,它用于重置Elasticsearch中内置用户的密码。这个工具是 X-Pack 扩展的一部分,X-Pack提供了安全特性,包括身份验证和授权。
当你首次安装并启动 Elasticsearch 时,内置用户(如 elastic、kibana 等)使用由 keystore.seed 配置生成的默认密码。出于安全考虑,你应该在开始使用集群之前更改这些密码。elasticsearch-reset-password 工具使得这个过程变得简单快捷。
-a,--auto:随机生成密码-b,--batch: 运行重置密码过程,而不提示用户进行验证。-f,--force: 强制运行命令-i,--interactive: 交互模式-u,--username: 指定用户名--url: 指定elasticsearch的url-v: 显示详细信息
4.2 elasticsearch-users
如果使用基于文件的用户身份验证,则弹性搜索用户命令使您能够添加和删除用户、分配用户角色以及管理每个节点的密码。如果使用基于文件的用户身份验证,则弹性搜索用户命令使您能够添加和删除用户、分配用户角色以及管理每个节点的密码。
语法
bin/elasticsearch-users ([useradd <username>] [-p <password>] [-r <roles>]) | ([list] <username>) | ([passwd <username>] [-p <password>]) | ([roles <username>] [-a <roles>] [-r <roles>]) | ([userdel <username>])OPTIONSuseradd: 在当前节点添加用户-p: 密码-r: 指定用户角色
list: 显示所有用户, 或者指定用户信息passwd-p: 设置指定用户密码
roles: 调整用户角色-a: 如果与角色参数一起使用,则会向用户添加以逗号分隔的角色列表。-r: 如果与useradd参数一起使用,则定义用户的角色。此选项接受要分配给用户的角色名称的逗号分隔列表。 如果与角色参数一起使用,则从用户中删除以逗号分隔的角色列表。
userdel: 删除指定用户