更新时间:2024-11-18 GMT+08:00

查询权限列表

功能介绍

该接口可以用于管理员查询权限列表。

该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点

调试

您可以在API Explorer中调试该接口。

URI

GET /v3/roles

表1 Query参数

参数

是否必选

参数类型

描述

domain_id

String

账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID

说明:
  • 如果填写此参数,则返回账号下所有自定义策略。
  • 如果不填写此参数,则返回所有系统权限(包含系统策略和系统角色)。

permission_type

String

区分系统权限类型的参数。当domain_id参数为空时生效。

  • policy:返回系统策略
  • role:返回系统角色。

name

String

系统内部呈现的权限名称。如云目录服务CCS普通用户权限CCS User的name为ccs_user。

建议您传参display_name,不传name参数。

display_name

String

权限名称或过滤条件。该参数可以传入控制台或系统权限显示的权限名称。

  • 权限名称:如传参为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所需权限请参见授权项

响应参数

表3 响应Body参数

参数

参数类型

描述

links

Object

资源链接信息。

roles

Array of objects

权限信息列表。

total_number

Integer

返回权限的总数。

表5 roles

参数

参数类型

描述

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。

表7 roles.policy

参数

参数类型

描述

Depends

Array of objects

该权限所依赖的权限。

Statement

Array of objects

授权语句,描述权限的具体内容。

Version

String

权限版本号。

说明:
  • 1.0:系统预置的角色。以服务为粒度,提供有限的服务相关角色用于授权。
  • 1.1:策略。IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。
表8 roles.policy.Depends

参数

参数类型

描述

catalog

String

权限所在目录。

display_name

String

权限展示名。

表9 roles.policy.Statement

参数

参数类型

描述

Action

Array of strings

授权项,指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中“权限和授权项”章节。

说明:
  • 格式为:服务名:资源类型:操作,例:vpc:ports:create。
  • 服务名为产品名称,例如ecs、evs和vpc等,服务名仅支持小写。 资源类型和操作没有大小写,要求支持通配符号*,无需罗列全部授权项。
  • 当自定义策略为委托自定义策略时,该字段值为: "Action": ["iam:agencies: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/07805acaba800fdd4fbdc00b8f888c7c"]}
表10 roles.policy.Statement.Condition.operator

参数

参数类型

描述

attribute

Array of strings

条件键。key为与运算符有对应关系的合法属性,value为长度不超过10的字符串数组。

该参数类型为自定义字符串数组。

请求示例

查询权限列表。

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

没有操作权限。

错误码