
# 查询权限列表 - KeystoneListPermissions
#### 功能介绍
该接口可以用于++[管理员](https://support.huaweicloud.com/usermanual-iam/iam_01_0001.html)++ 查询权限列表。
该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见：[地区和终端节点](https://developer.huaweicloud.com/endpoint?IAM)。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/doc?api=KeystoneListPermissions)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。
#### URI
GET /v3/roles
表1Query参数 
| 参数              | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| domain_id       | 否    | String  | 账号ID，获取方式请参见：[获取账号、IAM用户、项目、用户组、区域、委托的名称和ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html)。 说明： - 如果填写此参数，则返回账号下所有自定义策略。  - 如果不填写此参数，则返回所有系统权限（包含系统策略和系统角色）。                                                    |
| permission_type | 否    | String  | 区分系统权限类型的参数。当domain_id参数为空时生效。 - policy：返回系统策略  - role：返回系统角色。                                                                                                                                                                                                                                                                                                         |
| name            | 否    | String  | 系统内部呈现的权限名称。如云目录服务CCS普通用户权限CCS User的name为ccs_user。 **建议您传参display_name，不传name参数。**                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| display_name    | 否    | String  | 权限名称或过滤条件。该参数可以传入控制台或**[系统权限](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)**显示的权限名称。 - 权限名称：如传参为ECS FullAccess，则返回该权限相关信息。  - 过滤条件：如传参为Administrator，则返回满足条件的所有管理员权限。                                                                                                                                                                    |
| page            | 否    | Integer | 分页查询时数据的页数，查询值最小为1。需要与per_page同时存在。传入domain_id参数查询自定义策略时，可配套使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| per_page        | 否    | Integer | 分页查询时每页的数据个数，取值范围为\[1,300\]，默认值为300。需要与page同时存在。 不传page和per_page参数时，每页最多返回300个权限。                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| type            | 否    | String  | 过滤权限的显示模式。取值范围：domain，project，all。type为domain时，返回type=AA或AX的权限；type为project时，返回type=AA或XA的权限；type为all时返回type为AA、AX、XA的权限。 说明： - AX表示在domain层显示。  - XA表示在project层显示。  - AA表示在domain和project层均显示。  - XX表示在domain和project层均不显示。   |
| catalog         | 否    | String  | 权限所在目录。catalog值精确匹配策略的catalog字段(可以过滤服务的策略、或者自定义策略)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                              |
|:---|:---|:---|:---|
| Content-Type | 是    | String | 该字段内容填为"application/json;charset=utf8"。                                                                                         |
| X-Auth-Token | 是    | String | 访问令牌，承载用户的身份、权限等信息。 token所需权限请参见[授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。 |
   
#### 响应参数
表3响应Body参数 
| 参数                                                                       | 参数类型             | 描述       |
|:---|:---|:---|
| [links]        | Object           | 资源链接信息。  |
| [roles] | Array of objects | 权限信息列表。  |
| total_number                                                             | Integer          | 返回权限的总数。 |
   
 表4links 
| 参数       | 参数类型   | 描述                    |
|:---|:---|:---|
| self     | String | 资源链接。                 |
| previous | String | 前一邻接资源链接地址，不存在时为null。 |
| next     | String | 后一邻接资源链接地址，不存在时为null。 |
   
 表5roles 
| 参数                                                                              | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| domain_id                                                                       | String | 权限所属账号ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| flag                                                                            | String | 该参数值为fine_grained时，标识此权限为系统内置的策略。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| description_cn                                                                  | String | 权限的中文描述信息，仅在创建时中传入了description_cn参数，响应体中才会返回此字段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| catalog                                                                         | String | 权限所在目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| name                                                                            | String | 系统内部呈现的权限名称。如云目录服务CCS普通用户权限CCS User的name为ccs_user。 携带在用户的token中，云服务根据该名称来判断用户是否有权限访问。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| description                                                                     | String | 权限描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [links]   | Object | 权限的资源链接信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| id                                                                              | String | 权限ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| display_name                                                                    | String | 权限名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| type                                                                            | String | 权限的显示模式。 说明： - AX表示在domain层显示。  - XA表示在project层显示。  - AA表示在domain和project层均显示。  - XX表示在domain和project层均不显示。  - 自定义策略的显示模式只能为AX或者XA，不能在domain层和project层都显示（AA），或者在domain层和project层都不显示（XX）。   |
| [policy] | Object | 权限的具体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| updated_time                                                                    | String | 权限更新时间，仅在查询账号下所有自定义策略时，返回更新时间，查询系统权限时不返回此字段。 说明： UNIX时间戳格式，单位是毫秒，时间戳格式如：1687913793000。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| created_time                                                                    | String | 权限创建时间，仅在查询账号下所有自定义策略时，返回创建时间，查询系统权限时不返回此字段。 说明： UNIX时间戳格式，单位是毫秒，时间戳格式如：1687913793000。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表6roles.links 
| 参数       | 参数类型   | 描述                    |
|:---|:---|:---|
| self     | String | 资源链接地址。               |
| previous | String | 前一邻接资源链接地址，不存在时为null。 |
| next     | String | 后一邻接资源链接地址，不存在时为null。 |
   
 表7roles.policy 
| 参数                                                                                                 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| [Depends]     | Array of objects | 该权限所依赖的权限。                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [Statement] | Array of objects | 授权语句，描述权限的具体内容。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Version                                                                                            | String           | 权限版本号。 说明： - 1.0：系统预置的角色。以服务为粒度，提供有限的服务相关角色用于授权。  - 1.1：策略。IAM最新提供的一种细粒度授权的能力，可以精确到具体服务的操作、资源以及请求条件等。   |
   
 表8roles.policy.Depends 
| 参数           | 参数类型   | 描述      |
|:---|:---|:---|
| catalog      | String | 权限所在目录。 |
| display_name | String | 权限展示名。  |
   
 表9roles.policy.Statement 
| 参数        | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| Action    | Array of strings | 授权项，指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中"权限和授权项"章节。 说明： - 格式为：服务名:资源类型:操作，例：vpc:ports:create。  - 服务名为产品名称，例如ecs、evs和vpc等，服务名仅支持小写。 资源类型和操作没有大小写，要求支持通配符号\*，无需罗列全部授权项。  - 当自定义策略为委托自定义策略时，该字段值为：*"Action": \["iam:tokens:assume"\]*。   |
| Effect    | String           | 作用。包含两种：允许（Allow）和拒绝（Deny），既有Allow又有Deny的授权语句时，遵循Deny优先的原则。 取值范围： - Allow  - Deny                                                                                                                                                                                                               |
| Condition | Object           | 限制条件。如果创建此策略未传入此字段，则返回结果中也无此字段。 说明： 以请求示例中的Condition为例：条件键（obs:prefix）和字符串（public）需相等（StringEquals）。 ``` "Condition": { "StringEquals": { "obs:prefix": [ "public" ] } } ```                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Resource  | Object           | 资源。如果创建此策略时未传入此字段，则返回结果中也无此字段。规则如下： 说明： - 可填 \* 的五段式：::::，例："obs:*:*:bucket:\*"。  - region字段为\*或用户可访问的region。service必须存在且resource属于对应service。  - 当该自定义策略为委托自定义策略时，该字段类型为Object，值为：*"Resource": {"uri": \["/iam/agencies/agencyTest"\]}*。               |
   
表10roles.policy.Statement.Condition.operator 
| 参数        | 参数类型             | 描述                                                                                        |
|:---|:---|:---|
| attribute | Array of strings | 条件键。key为与运算符有对应关系的合法属性。 该参数类型为自定义字符串数组。 |
   
#### 请求示例
查询权限列表。
```
GET https://iam.myhuaweicloud.com/v3/roles
```
#### 响应示例
**状态码为 200 时:**
请求成功。
```
{
  "roles" : [ {
    "domain_id" : null,
    "description_cn" : "漏洞扫描服务（VSS）管理员，拥有该服务下的所有权限",
    "catalog" : "VulnScan",
    "name" : "wscn_adm",
    "description" : "Vulnerability Scan Service administrator of tasks and reports.",
    "links" : {
      "next" : null,
      "previous" : null,
      "self" : "https://iam.myhuaweicloud.com/v3/roles/0af84c1502f447fa9c2fa18083fbb87e"
    },
    "id" : "0af84c1502f447fa9c2fa18083fbb87e",
    "display_name" : "VSS Administrator",
    "type" : "XA",
    "policy" : {
      "Version" : "1.0",
      "Statement" : [ {
        "Action" : [ "WebScan:*:*" ],
        "Effect" : "Allow"
      } ],
      "Depends" : [ {
        "catalog" : "BASE",
        "display_name" : "Server Administrator"
      }, {
        "catalog" : "BASE",
        "display_name" : "Tenant Guest"
      } ]
    }
  }, {
    "domain_id" : null,
    "flag" : "fine_grained",
    "description_cn" : "微服务引擎服务管理员权限",
    "catalog" : "CSE",
    "name" : "system_all_34",
    "description" : "All permissions of CSE service.",
    "links" : {
      "next" : null,
      "previous" : null,
      "self" : "https://iam.myhuaweicloud.com/v3/roles/0b5ea44ebdc64a24a9c372b2317f7e39"
    },
    "id" : "0b5ea44ebdc64a24a9c372b2317f7e39",
    "display_name" : "CSE Admin",
    "type" : "XA",
    "policy" : {
      "Version" : "1.1",
      "Statement" : [ {
        "Action" : [ "cse:*:*", "ecs:*:*", "evs:*:*", "vpc:*:*" ],
        "Effect" : "Allow"
      } ]
    }
  } ],
  "links" : {
    "next" : null,
    "previous" : null,
    "self" : "https://iam.myhuaweicloud.com/v3/roles"
  },
  "total_number" : 300
}
```
#### 返回值
| 返回值 | 描述      |
|:---|:---|
| 200 | 请求成功。   |
| 400 | 参数无效。   |
| 401 | 认证失败。   |
| 403 | 没有操作权限。 |
   
#### 错误码
无
