# 创建云服务自定义策略 - CreateCloudServiceCustomPolicy
#### 功能介绍
该接口可以用于++[管理员](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=CreateCloudServiceCustomPolicy)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。
#### URI
POST /v3.0/OS-ROLE/roles
#### 请求参数
表1请求Header参数 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                      |
|:---|:---|:---|:---|
| Content-Type | 是    | String    | 该字段内容填为"application/json;charset=utf8"。                                                                |
| X-Auth-Token  | 是   | String | 访问令牌，承载用户的身份、权限等信息。 token所需权限请参见[授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。 |
   
表2请求Body参数 
| 参数                                                           | 是否必选 | 参数类型     | 描述       |
|:---|:---|:---|:---|
| [role] | 是   | Object | 自定义策略信息。 |
   
 表3role 
| 参数                                                                     | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| display_name                                                           | 是  | String   | 自定义策略展示名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| type                                                                   | 是  | String | 自定义策略的作用范围。 - 全局服务：AX  - 区域级项目：XA   自定义策略的显示模式只能为AX或者XA，不能同时在全局服务和区域级项目生效（AA），或者在全局服务和区域级项目都不生效（XX）。 说明： - 如果您需要给用户组授予包含OBS操作的自定义策略，请分别创建作用范围为全局服务、区域级项目，其他参数相同的2个自定义策略，并将2个策略同时授予用户组。  - 为保障最小授权范围，建议OBS自定义策略中不要包含其他云服务授权项。   |
| description                                                             | 是    | String | 自定义策略的描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| description_cn                                                          | 否   | String    | 自定义策略的中文描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [policy] | 是   | Object   | 自定义策略的具体内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表4role.policy 
| 参数                                                                                         | 是否必选 | 参数类型                | 描述                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| Version                                                                                    | 是     | String            | 权限版本号，创建自定义策略时，该字段值填为"1.1"。 说明： - 1.0：系统预置的角色。以服务为粒度，提供有限的服务相关角色用于授权。  - 1.1：策略。IAM最新提供的一种细粒度授权的能力，可以精确到具体服务的操作、资源以及请求条件等。   |
| [Statement] | 是      | Array of objects | 授权语句，描述自定义策略的具体内容。                                                                                                                                                                                                                                                                                                                                                                               |
   
 表5role.policy.Statement 
| 参数        | 是否必选 | 参数类型                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| Action   | 是    | Array of strings                           | 授权项，指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中"权限和授权项"章节。 说明： - 格式为：服务名:资源类型:操作，例：vpc:ports:create。  - 服务名为产品名称，例如ecs、evs和vpc等，服务名仅支持小写。 资源类型和操作没有大小写，要求支持通配符号\*，无需罗列全部授权项。  - 一个自定义策略role.policy.Statement不能同时包含项目级服务和全局服务的action。查看服务权限作用范围请参考：**[系统权限](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)**。   |
| 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。                                                                                                                                                                                                                                                                                |
   
#### 响应参数
表6响应Body参数 
| 参数                                                                | 参数类型  | 描述        |
|:---|:---|:---|
| [role] | Object | 自定义策略信息。 |
   
 表7role 
| 参数                                                                       | 参数类型      | 描述                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| 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。                                                                                                                                                                                                                                                            |
   
 表8role.links 
| 参数 | 参数类型   | 描述       |
|:---|:---|:---|
| self  | String | 资源链接地址。 |
   
 表9role.policy 
| 参数                                            | 参数类型           | 描述                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| Version                                         | String        | 权限版本号。 说明： - 1.0：系统预置的角色。以服务为粒度，提供有限的服务相关角色用于授权。  - 1.1：策略。IAM最新提供的一种细粒度授权的能力，可以精确到具体服务的操作、资源以及请求条件等。   |
| [Statement] | Array of objects | 授权语句，描述自定义策略的具体内容，不超过8个。                                                                                                                                                                                                                                                                                                                                                      |
   
 表10role.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的相关信息。
```
POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles
```
```
{
    "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:*"
                    ]
                }
            ]
        }
    }
}
```
#### 响应示例
**状态码为 201 时:**
创建成功。
```
{
    "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": "d78cbac186b744899480f25bd...",
        "type": "AX",
        "id": "93879fd90f1046f69e6e0b31c9...",
        "name": "custom_d78cbac186b744899480f25bd022f468_1",
        "updated_time": "1789443460349",
        "created_time": "1789443460349"
    }
}
```
#### 返回值
| 返回值   | 描述     |
|:---|:---|
| 201 | 创建成功。   |
| 400   | 参数无效。    |
| 401 | 认证失败。 |
| 403  | 没有操作权限。 |
| 500  | 内部服务错误。   |
   
#### 错误码
无
