
# 修改云服务自定义策略 - UpdateCloudServiceCustomPolicy
#### 功能介绍
该接口可以用于++[管理员](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=UpdateCloudServiceCustomPolicy)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。
#### URI
PATCH /v3.0/OS-ROLE/roles/{role_id}
表1路径参数 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                       |
|:---|:---|:---|:---|
| role_id | 是    | String | 待修改的自定义策略ID，获取方式请参见：[自定义策略ID](https://support.huaweicloud.com/api-iam/iam_02_0011.html)。 |
   
#### 请求参数
表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参数 
| 参数                                                             | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| [role] | 是    | Object | 自定义策略信息。 |
   
 表4role 
| 参数                                                                     | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| display_name                                                           | 是    | String | 自定义策略展示名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| type                                                                   | 是    | String | 自定义策略的显示模式。 说明： - AX：全局服务。  - XA：区域级项目。  - 自定义策略的显示模式只能为AX或者XA，不能同时在全局服务和区域级项目生效（AA），或者在全局服务和区域级项目都不生效（XX）。   |
| description                                                            | 是    | String | 自定义策略的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| description_cn                                                         | 否    | String | 自定义策略的中文描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| [policy] | 是    | Object | 自定义策略的具体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表5role.policy 
| 参数                                                                                        | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| Version                                                                                   | 是    | String           | 权限版本号，创建自定义策略时，该字段值填为"1.1"。 说明： - 1.0：系统预置的角色。以服务为粒度，提供有限的服务相关角色用于授权。  - 1.1：策略。IAM最新提供的一种细粒度授权的能力，可以精确到具体服务的操作、资源以及请求条件等。   |
| [Statement] | 是    | Array of objects | 授权语句，描述自定义策略的具体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表6role.policy.Statement 
| 参数        | 是否必选 | 参数类型                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| Action    | 是    | Array of strings                            | 授权项，指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中"权限和授权项"章节。 说明： - 格式为：服务名:资源类型:操作，例：vpc:ports:create。  - 服务名为产品名称，例如ecs、evs和vpc等，服务名仅支持小写。 资源类型和操作没有大小写，要求支持通配符号\*，无需罗列全部授权项。   |
| Effect    | 是    | String                                      | 作用。包含两种：允许（Allow）和拒绝（Deny），既有Allow又有Deny的授权语句时，遵循Deny优先的原则。 取值范围： - Allow  - Deny                                 |
| Condition | 否    | Map\<String,Map\<String,Array\<String\>\>\> | 限制条件。了解更多相关参数，请参考：[配置自定义策略](https://support.huaweicloud.com/usermanual-iam/iam_01_0605.html#section1)。 说明： 以请求示例中的Condition为例：条件键（obs:prefix）和字符串（public）需相等（StringEquals）。 ``` "Condition": { "StringEquals": { "obs:prefix": [ "public" ] } } ```                                                                                                                                                                                        |
| Resource  | 否    | Array of strings                            | 资源。规则如下： 说明： - 可填 \* 的五段式：::::，例："obs:*:*:bucket:\*"。  - region字段为\*或用户可访问的region。service必须存在且resource属于对应service。                                                        |
   
#### 响应参数
表7响应Body参数 
| 参数                                                              | 参数类型   | 描述       |
|:---|:---|:---|
| [role] | Object | 自定义策略信息。 |
   
 表8role 
| 参数                                                                      | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| 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。                                                                                                                                                                                                                                                                                  |
   
 表9role.links 
| 参数   | 参数类型   | 描述      |
|:---|:---|:---|
| self | String | 资源链接地址。 |
   
 表10role.policy 
| 参数                                             | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| Version                                        | String           | 权限版本号。 说明： - 1.0：系统预置的角色。以服务为粒度，提供有限的服务相关角色用于授权。  - 1.1：策略。IAM最新提供的一种细粒度授权的能力，可以精确到具体服务的操作、资源以及请求条件等。   |
| [Statement] | Array of objects | 授权语句，描述自定义策略的具体内容。                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表11role.policy.Statement 
| 参数        | 参数类型                                        | 描述                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| Action    | Array of strings                            | 授权项，指对资源的具体操作权限。                                                                                                                                                                                                                                                                                                                  |
| Effect    | String                                      | 作用。包含两种：允许（Allow）和拒绝（Deny），既有Allow又有Deny的授权语句时，遵循Deny优先的原则。 取值范围： - Allow  - Deny                                 |
| Condition | Map\<String,Map\<String,Array\<String\>\>\> | 限制条件，如果请求中未传入此字段，则返回结果中也无此字段。                                                                                                                                                                                                                                                                                                     |
| Resource  | Array of strings                            | 资源，如果请求中未传入此字段，则返回结果中也无此字段。规则如下： 说明： - 可填 \* 的五段式：::::，例："obs:*:*:bucket:\*"。  - region字段为\*或用户可访问的region。service必须存在且resource属于对应service。   |
   
#### 请求示例
修改名为"IAMCloudServicePolicy"的自定义策略。策略修改为仅允许以项目名称为"cn-north-1"开头的请求获取所有桶ACL的相关信息。
```
PATCH https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles/{role_id}
```
```
{
    "role": {
        "display_name": "IAMCloudServicePolicy",
        "type": "AX",
        "description": "IAMDescription",
        "description_cn": "中文描述",
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                "cn-north-1"
                            ]
                        }
                    },
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ]
                }
            ]
        }
    }
}
```
#### 响应示例
**状态码为 200 时:**
请求成功。
```
{
    "role": {
        "catalog": "CUSTOMED",
        "display_name": "IAMCloudServicePolicy",
        "description": "IAMDescription",
        "links": {
            "self": "https://iam.myhuaweicloud.com/v3/roles/93879fd90f1046f69e6e0b31c94d2615"
        },
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ],
                    "Effect": "Allow",
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                "cn-north-1"
                            ]
                        }
                    }
                }
            ]
        },
        "description_cn": "中文描述",
        "domain_id": "d78cbac186b744899480f25bd0...",
        "type": "AX",
        "id": "93879fd90f1046f69e6e0b31c94d2615",
        "name": "custom_d78cbac186b744899480f25bd022f468_1"
    }
}
```
#### 返回值
| 返回值 | 描述      |
|:---|:---|
| 200 | 请求成功。   |
| 400 | 参数无效。   |
| 401 | 认证失败。   |
| 403 | 没有操作权限。 |
| 500 | 内部服务错误。 |
   
#### 错误码
无
