更新时间:2024-10-18 GMT+08:00
分享

创建委托自定义策略

功能介绍

该接口可以用于管理员创建委托自定义策略。

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

调试

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

URI

POST /v3.0/OS-ROLE/roles

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

该字段内容填为“application/json;charset=utf8”。

X-Auth-Token

String

访问令牌,承载用户的身份、权限等信息。

token所需权限请参见授权项

表2 请求Body参数

参数

是否必选

参数类型

描述

role

Object

自定义策略信息。

表3 role

参数

是否必选

参数类型

描述

display_name

String

自定义策略展示名,长度1~128字符之间。

type

String

自定义策略的显示模式。

说明:
  • AX:全局服务。
  • XA:区域级项目。
  • 自定义策略的显示模式只能为AX或者XA,不能同时在全局服务和区域级项目生效(AA),或者在全局服务和区域级项目都不生效(XX)。

description

String

自定义策略的描述信息。

description_cn

String

自定义策略的中文描述信息。

policy

Object

自定义策略的具体内容。

表4 role.policy

参数

是否必选

参数类型

描述

Version

String

权限版本号,创建自定义策略时,该字段值填为“1.1”。

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

Statement

Array of objects

授权语句,描述自定义策略的具体内容。

表5 role.policy.Statement

参数

是否必选

参数类型

描述

Action

Array of strings

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

说明:
  • 当自定义策略为委托自定义策略时,该字段值为: "Action": ["iam:agencies:assume"]

取值范围:

  • iam:agencies:assume

Effect

String

作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。

取值范围:

  • Allow
  • Deny

Resource

Object

委托资源。在有其他账号与您创建了多个委托关系,即您是被委托方,需要将委托中的权限授权给不同的用户组,这些用户组中的IAM用户进行角色切换时,仅能切换到被授权的委托中,不能切换其他委托。例:

"Resource": {"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]}
表6 role.policy.Statement.Resource

参数

是否必选

参数类型

描述

uri

Array of strings

委托资源的URI,长度不超过128。格式为:/iam/agencies/委托ID。例:

"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]

响应参数

表7 响应Body参数

参数

参数类型

描述

role

Object

自定义策略信息。

表8 role

参数

参数类型

描述

catalog

String

自定义策略所在目录。

display_name

String

自定义策略展示名。

description

String

自定义策略的描述信息。

links

Object

自定义策略的资源链接信息。

policy

Object

自定义策略的具体内容。

description_cn

String

自定义策略的中文描述信息,仅在请求中传入了description_cn参数,响应体中才会返回此字段。

domain_id

String

自定义策略所属账号ID。

type

String

自定义策略的显示模式。

说明:
  • AX:全局服务。
  • XA:区域级项目。
  • 自定义策略的显示模式只能为AX或者XA,不能同时在全局服务和区域级项目生效(AA),或者在全局服务和区域级项目都不生效(XX)。

id

String

自定义策略ID。

name

String

自定义策略名。

updated_time

String

自定义策略更新时间。

说明:

UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。

created_time

String

自定义策略创建时间。

说明:

UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。

表10 role.policy

参数

参数类型

描述

Version

String

权限版本号。

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

Statement

Array of objects

授权语句,描述自定义策略的具体内容。

表11 role.policy.Statement

参数

参数类型

描述

Action

Array of strings

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

说明:
  • 当自定义策略为委托自定义策略时,该字段值为: "Action": ["iam:agencies:assume"]

Effect

String

作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。

取值范围:

  • Allow
  • Deny

Resource

Object

委托资源,仅在创建请求中传递此字段,才会返回此对象。在有其他账号与您创建了多个委托关系,即您是被委托方,需要将委托中的权限授权给不同的用户组,这些用户组中的IAM用户进行角色切换时,仅能切换到被授权的委托中,不能切换其他委托。例:

"Resource": {"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]}
表12 role.policy.Statement.Resource

参数

参数类型

描述

uri

Array of strings

委托资源的URI,长度不超过128。格式为:/iam/agencies/委托ID。例:

"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]

请求示例

创建一个名为“IAMAgencyPolicy”的委托自定义策略。策略表示作用范围为全局服务,委托资源的URI是/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c。

POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles
{
    "role": {
        "display_name": "IAMAgencyPolicy",
        "type": "AX",
        "description": "IAMDescription",
        "description_cn": "中文描述",
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "iam:agencies:assume"
                    ],
                    "Resource": {
                        "uri": [
                            "/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"
                        ]
                    }
                }
            ]
        }
    }
}

响应示例

状态码为 201 时:

创建成功。

{
    "role": {
        "catalog": "CUSTOMED",
        "display_name": "IAMAgencyPolicy",
        "description": "IAMDescription",
        "links": {
            "self": "https://iam.myhuaweicloud.com/v3/roles/f67224e84dc849ab954ce29fb4f47f8e"
        },
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Action": [
                        "iam:agencies:assume"
                    ],
                    "Resource": {
                        "uri": [
                            "/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"
                        ]
                    },
                    "Effect": "Allow"
                }
            ]
        },
        "description_cn": "中文描述",
        "domain_id": "d78cbac186b744899480f25bd02...",
        "type": "AX",
        "id": "f67224e84dc849ab954ce29fb4f47f8e",
        "name": "custom_d78cbac186b744899480f25bd022f468_0"
    }
}

返回值

返回值

描述

201

创建成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

500

内部服务错误。

错误码

相关文档