配置操作员权限
编辑配置操作员权限
编辑此功能旨在由Elasticsearch Service、Elastic Cloud Enterprise和Elastic Cloud on Kubernetes间接使用。不支持直接使用。
在使用操作员权限之前,您必须在集群中的所有节点上启用该功能并指定操作员用户。
启用操作员权限
编辑为了使用操作员权限功能,必须在集群中的每个节点上显式启用它。在每个elasticsearch.yml
文件中添加以下设置
xpack.security.operator_privileges.enabled: true
如果在您进行此更改之前节点已在运行,则必须重新启动节点才能使该功能生效。
该功能需要在集群的所有节点上一致地启用或禁用。否则,可能会出现不一致的行为,具体取决于哪个节点首先接收请求以及哪个节点执行请求。
当在集群上启用操作员权限时,特定功能会受到限制,并且只能由已明确指定为操作员用户的用户执行。如果普通用户尝试执行这些功能(即使他们具有superuser
角色),也会发生安全异常。
指定操作员用户
编辑操作员用户只是具有执行仅限操作员功能特殊权限的普通 Elasticsearch 用户。它们在operator_users.yml
文件中指定,该文件位于配置目录中(由ES_PATH_CONF
环境变量定义)。与其他安全配置文件类似,operator_users.yml
文件是节点本地的,不适用于集群全局。这意味着,在大多数情况下,应将同一文件分发或复制到集群中的所有节点。
operator_users.yml
文件定义了一组身份验证用户必须匹配的条件,才能被视为操作员用户。以下代码段显示了此类文件的示例
固定的值 |
|
允许作为操作员用户的用户名列表。此字段是必需的。 |
|
允许作为操作员用户的身份验证领域类型。默认值和唯一可接受的值是 |
|
允许作为操作员用户的身份验证类型。默认值和唯一可接受的值是 |
您必须至少指定usernames
字段。如果未指定其他字段,则使用其默认值。要使用户有资格成为操作员用户,必须匹配所有字段。您还可以指定多组条件。目前这并不是很有用,因为此功能尚不支持其他领域或身份验证类型。
还有两条影响哪些用户是操作员用户的隐式规则
在用户被指定为操作员用户之后,他们仍然要接受常规的RBAC 用户授权检查。也就是说,除了指定用户是操作员用户之外,您还必须授予他们执行其任务所需的 Elasticsearch 角色。因此,操作员用户完全有可能遇到“访问被拒绝”错误并由于 RBAC 检查失败而无法执行某些操作。简而言之,操作员用户不是自动成为超级用户
。