角色限制
编辑角色限制
编辑角色限制可用于指定角色生效的条件。当条件不满足时,角色将被禁用,这将导致访问被拒绝。不指定限制意味着该角色不受限制,因此始终有效。这是默认行为。
目前,角色限制仅支持API 密钥,并且限制为 API 密钥只能有一个角色描述符。
工作流
编辑工作流允许将角色限制为仅在调用某些 REST API 时生效。调用工作流不允许的 REST API 将导致该角色被禁用。以下部分列出了您可以限制角色使用的工作流
-
search_application_query
- 此工作流将角色限制为仅可使用 搜索应用程序搜索 API。
工作流名称区分大小写。
示例
编辑以下示例创建一个 API 密钥,其中包含针对 search_application_query
工作流的限制,这允许仅调用 搜索应用程序搜索 API
resp = client.security.create_api_key( name="my-restricted-api-key", role_descriptors={ "my-restricted-role-descriptor": { "indices": [ { "names": [ "my-search-app" ], "privileges": [ "read" ] } ], "restriction": { "workflows": [ "search_application_query" ] } } }, ) print(resp)
const response = await client.security.createApiKey({ name: "my-restricted-api-key", role_descriptors: { "my-restricted-role-descriptor": { indices: [ { names: ["my-search-app"], privileges: ["read"], }, ], restriction: { workflows: ["search_application_query"], }, }, }, }); console.log(response);
POST /_security/api_key { "name": "my-restricted-api-key", "role_descriptors": { "my-restricted-role-descriptor": { "indices": [ { "names": ["my-search-app"], "privileges": ["read"] } ], "restriction": { "workflows": ["search_application_query"] } } } }