--- title: "创建安全角色" date: 2026-02-12 lastmod: 2026-02-12 description: "创建新的安全角色" tags: ["安全", "角色", "权限管理"] summary: "注意: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} 部分更新角色 POST /_security/role 未实现 请求体结构 # 使用 PUT 创建角色时,请求体包含以下字段:" --- **注意**: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 创建角色 ```json 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}` | 部分更新角色 | | ~~POST~~ | `/_security/role` | **未实现** | ## 请求体结构 使用 PUT 创建角色时,请求体包含以下字段: ```json { "cluster": ["<集群权限>"], "indices": [ { "names": ["<索引模式>"], "privileges": ["<索引权限>"], "query": "<文档级安全查询>", "field_security": ["<可访问字段>"], "field_mask": ["<隐藏字段>"] } ], "description": "<角色描述>" } ``` ## 错误响应 如果尝试使用 POST 方法: ``` POST /_security/role ``` 将返回: ``` 501 Not Implemented ``` ```json { "status": 501, "error": "Not implemented" } ``` ## 完整示例 ### 创建数据读取角色 ```json PUT /_security/role/data_reader { "cluster": ["cluster:monitor/health"], "indices": [ { "names": ["products-*", "orders-*"], "privileges": ["READ_UT", "indices:data/read/search"] } ], "description": "读取产品和订单数据的角色" } ``` ### 创建管理员角色 ```json PUT /_security/role/custom_admin { "cluster": ["*"], "indices": [ { "names": ["*"], "privileges": ["*"] } ], "description": "自定义管理员角色" } ``` ## 参考文档 请参考 **创建或更新安全角色** 文档了解完整的参数说明和示例。 ## 注意事项 1. **使用 PUT 而非 POST**:创建角色必须使用 PUT 方法 2. **指定角色名**:角色名称必须在 URL 路径中指定 3. **权限要求**:创建角色需要相应的安全权限 4. **配置初始化**:安全配置必须已初始化