配置操作员权限

编辑

此功能旨在由Elasticsearch ServiceElastic Cloud EnterpriseElastic 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文件定义了一组身份验证用户必须匹配的条件,才能被视为操作员用户。以下代码段显示了此类文件的示例

operator: 
  - usernames: ["system_agent_1","system_agent_2"] 
    realm_type: "file" 
    auth_type: "realm" 

固定的值operator表示定义的开始。

允许作为操作员用户的用户名列表。此字段是必需的。

允许作为操作员用户的身份验证领域类型。默认值和唯一可接受的值是file

允许作为操作员用户的身份验证类型。默认值和唯一可接受的值是realm

您必须至少指定usernames字段。如果未指定其他字段,则使用其默认值。要使用户有资格成为操作员用户,必须匹配所有字段。您还可以指定多组条件。目前这并不是很有用,因为此功能尚不支持其他领域或身份验证类型。

还有两条影响哪些用户是操作员用户的隐式规则

  1. 如果身份验证用户另一个用户的身份运行,则他们都不是被视为操作员用户。
  2. 所有内部用户都是隐式的操作员用户。

在用户被指定为操作员用户之后,他们仍然要接受常规的RBAC 用户授权检查。也就是说,除了指定用户是操作员用户之外,您还必须授予他们执行其任务所需的 Elasticsearch 角色。因此,操作员用户完全有可能遇到“访问被拒绝”错误并由于 RBAC 检查失败而无法执行某些操作。简而言之,操作员用户不是自动成为超级用户