注意:POST /_security/role API 在 Easysearch 中未实现。请使用 PUT /_security/role/{name} API 来创建角色。
API 说明 #
POST /_security/role 端点在 Easysearch 中未实现。调用此端点将返回 501 Not Implemented 错误。
替代方法 #
要创建安全角色,请使用 PUT /_security/role/{name} API:
PUT /_security/role/{role_name}
使用 PUT 创建角色 #
PUT /_security/role/my_role
{
"cluster": ["cluster:monitor/health"],
"indices": [
{
"names": ["logs-*"],
"privileges": ["READ_UT"]
}
],
"description": "我的自定义角色"
}
支持的 HTTP 方法 #
对于 /_security/role 端点,Easysearch 支持以下方法:
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | /_security/role | 获取所有角色 |
| GET | /_security/role/{name} | 获取指定角色 |
| PUT | /_security/role/{name} | 创建或更新角色 |
| DELETE | /_security/role/{name} | 删除角色 |
| PATCH | /_security/role/{name} | 部分更新角色 |
/_security/role | 未实现 |
请求体结构 #
使用 PUT 创建角色时,请求体包含以下字段:
{
"cluster": ["<集群权限>"],
"indices": [
{
"names": ["<索引模式>"],
"privileges": ["<索引权限>"],
"query": "<文档级安全查询>",
"field_security": ["<可访问字段>"],
"field_mask": ["<隐藏字段>"]
}
],
"description": "<角色描述>"
}
错误响应 #
如果尝试使用 POST 方法:
POST /_security/role
将返回:
501 Not Implemented
{
"status": 501,
"error": "Not implemented"
}
完整示例 #
创建数据读取角色 #
PUT /_security/role/data_reader
{
"cluster": ["cluster:monitor/health"],
"indices": [
{
"names": ["products-*", "orders-*"],
"privileges": ["READ_UT", "indices:data/read/search"]
}
],
"description": "读取产品和订单数据的角色"
}
创建管理员角色 #
PUT /_security/role/custom_admin
{
"cluster": ["*"],
"indices": [
{
"names": ["*"],
"privileges": ["*"]
}
],
"description": "自定义管理员角色"
}
参考文档 #
请参考 创建或更新安全角色 文档了解完整的参数说明和示例。
注意事项 #
- 使用 PUT 而非 POST:创建角色必须使用 PUT 方法
- 指定角色名:角色名称必须在 URL 路径中指定
- 权限要求:创建角色需要相应的安全权限
- 配置初始化:安全配置必须已初始化





