配置操作员权限
编辑配置操作员权限
编辑此功能旨在供 Elasticsearch 服务、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 检查失败而无法执行某些操作是完全可能的。简而言之,操作员用户不是自动的 superuser
。