更新时间:2022-08-16 GMT+08:00

修改委托自定义策略

功能介绍

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

该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。

URI

PATCH /v3.0/OS-ROLE/roles/{role_id}

表1 路径参数

参数

是否必选

参数类型

描述

role_id

String

待修改的自定义策略ID,获取方式请参见:自定义策略ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

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

X-Auth-Token

String

拥有Security Administrator权限的token。

表3 请求Body参数

参数

是否必选

参数类型

描述

role

Object

自定义策略信息。

表4 role

参数

是否必选

参数类型

描述

display_name

String

自定义策略展示名。

type

String

自定义策略的显示模式。

说明:
  • AX表示在domain层显示。
  • XA表示在project层显示。
  • 自定义策略的显示模式只能为AX或者XA,不能在domain层和project层都显示(AA),或者在domain层和project层都不显示(XX)。

description

String

自定义策略的描述信息。

description_cn

String

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

policy

Object

自定义策略的具体内容。

表5 role.policy

参数

是否必选

参数类型

描述

Version

String

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

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

Statement

Array of objects

授权语句,描述自定义策略的具体内容,不超过8个。

表6 role.policy.Statement

参数

是否必选

参数类型

描述

Action

Array of strings

授权项,指对资源的具体操作权限。

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

取值范围:

  • iam:agencies:assume

Effect

String

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

取值范围:

  • Allow
  • Deny

Resource

Object

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

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

参数

是否必选

参数类型

描述

uri

Array of strings

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

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

响应参数

表8 响应Body参数

参数

参数类型

描述

role

Object

自定义策略信息。

表9 role

参数

参数类型

描述

catalog

String

自定义策略所在目录。

display_name

String

自定义策略展示名。

description

String

自定义策略的描述信息。

links

Object

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

policy

Object

自定义策略的具体内容。

description_cn

String

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

domain_id

String

自定义策略所属账号ID。

type

String

自定义策略的显示模式。

说明:
  • AX表示在domain层显示。
  • XA表示在project层显示。
  • 自定义策略的显示模式只能为AX或者XA,不能在domain层和project层都显示(AA),或者在domain层和project层都不显示(XX)。

id

String

自定义策略ID。

name

String

自定义策略名。

updated_time

String

自定义策略更新时间。

created_time

String

自定义策略创建时间。

references

String

自定义策略的引用次数。

表11 role.policy

参数

参数类型

描述

Version

String

权限版本号。

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

Statement

Array of objects

授权语句,描述自定义策略的具体内容,不超过8个。

表12 role.policy.Statement

参数

参数类型

描述

Action

Array of strings

授权项,指对资源的具体操作权限。

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

Effect

String

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

取值范围:

  • Allow
  • Deny

Resource

Object

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

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

参数

参数类型

描述

uri

Array of strings

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

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

请求示例

PATCH https://sample.domain.com/v3.0/OS-ROLE/roles/{role_id}
{
    "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"
                        ]
                    }
                }
            ]
        }
    }
}

响应示例

状态码为 200 时:

请求成功。

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

返回值

返回值

描述

200

请求成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

500

内部服务错误。

错误码