配置操作员权限编辑

此功能旨在供 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 检查失败而遇到“访问被拒绝”错误并无法执行某些操作。简而言之,操作员用户不是自动成为 superuser