配置操作员权限

编辑

此功能旨在供 Elasticsearch 服务Elastic 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