📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

从 Easysearch 安全配置中删除指定的角色。

API 格式 #

DELETE /_security/role/{name}

API 作用 #

该 API 用于从集群的安全配置中删除角色:

  • 删除角色及其所有关联的权限
  • 更新集群的安全配置
  • 立即移除被映射用户的相应权限

API 参数 #

路径参数 #

参数类型是否必填默认值描述
{name}String-要删除的角色名称

查询参数 #

  • 无(该 API 不使用任何查询参数)

请求体 #

  • 不需要请求体(DELETE 操作不需要 JSON 载荷)

请求示例 #

删除指定角色 #

DELETE /_security/role/security_admin

删除自定义角色 #

DELETE /_security/role/data_analyst

响应示例 #

成功响应 #

200 OK
{
  "status": "OK",
  "message": "'security_admin' deleted."
}

错误响应 - 未指定角色 #

400 Bad Request
{
  "status": "BAD_REQUEST",
  "message": "No role specified."
}

错误响应 - 角色不存在 #

404 Not Found
{
  "status": "NOT_FOUND",
  "message": "role 'unknown_role' not found."
}

错误响应 - 权限不足 #

403 Forbidden
{
  "status": "FORBIDDEN",
  "message": "No permission to access REST API"
}

响应字段说明 #

字段类型描述
statusString操作状态(OKBAD_REQUESTNOT_FOUND 等)
messageString操作结果消息

安全和授权 #

  • 该 API 需要身份验证和适当的授权
  • 超级管理员可以删除任何角色,包括保留角色和隐藏角色
  • 普通用户只能删除其有权限修改的角色
  • 标记为 staticreserved 的角色需要超级管理员权限才能删除

实现细节 #

  1. 角色存在性检查:API 首先检查角色是否存在于安全配置中
  2. 权限验证:验证当前用户是否具有该角色的写入权限
  3. 原子操作:删除操作是原子性的——要么完全删除角色,要么操作失败
  4. 配置更新:成功删除后,安全配置会更新到集群的所有节点
  5. 审计日志:该操作会被记录到审计日志中用于安全跟踪

重要说明 #

  1. 立即生效:删除角色后,被映射用户的相应权限会立即移除
  2. 不可恢复:删除操作无法撤销(尽管角色可以重新创建)
  3. 用户影响:被删除角色的用户将立即失去相应权限
  4. 保留角色:某些系统角色(如 superuser)可能被标记为保留,需要特殊权限才能删除

相关操作 #

  • GET /_security/role:查询所有角色
  • GET /_security/role/{name}:查询指定角色
  • PUT /_security/role/{name}:创建或更新角色
  • PATCH /_security/role/{name}:部分更新角色

使用场景 #

  1. 角色清理:删除不再需要的自定义角色
  2. 权限调整:在重构权限模型时移除旧角色
  3. 安全审计:移除未授权的角色
  4. 组织变更:在组织结构调整后删除相关角色

注意事项 #

  1. 无法撤销:删除后无法恢复,请谨慎操作
  2. 用户影响:删除角色会影响所有被映射该角色的用户
  3. 权限检查:确保没有用户依赖该角色进行关键操作
  4. 系统角色:不要删除系统保留角色,除非完全了解后果
  5. 备份建议:删除前建议记录角色配置,以便需要时可以重建