# 修改账号操作保护策略 - UpdateDomainProtectPolicy
#### 功能介绍
该接口可以用于++[管理员](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=UpdateDomainProtectPolicy)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。
#### URI
PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/protect-policy
表1路径参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                           |
|:---|:---|:---|:---|
| domain_id | 是     | String | 待修改的账号ID，获取方式请参见：[获取账号、IAM用户、项目、用户组、区域、委托的名称和ID](https://support.huaweicloud.com/api-iam/iam_17_0002.html)。 |
   
#### 请求参数
表2请求Header参数 
| 参数         | 是否必选 | 参数类型      | 描述                                                                                                                            |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 访问令牌，承载用户的身份、权限等信息。 token所需权限请参见[授权项](https://support.huaweicloud.com/api-iam/iam_19_0001.html)。 |
   
表3请求Body参数 
| 参数                                                  | 是否必选 | 参数类型      | 描述        |
|:---|:---|:---|:---|
| [protect_policy] | 是    | Object | 操作保护策略。 |
   
 表4protect_policy 
| 参数                                           | 是否必选 | 参数类型     | 描述                                                                   |
|:---|:---|:---|:---|
| operation_protection                        | 是    | Boolean   | 是否开启操作保护，开启为"true"，不开启为"false"。                                      |
| [allow_user] | 否   | Object  | 管理员设置IAM子用户可以自主修改的属性。                                              |
| mobile                                       | 否   | String    | 操作保护验证指定手机号码，admin_check为on、scene为mobile时，必须填写。示例：0086-123456789。  |
| admin_check                                  | 否    | String   | 是否指定人员验证。on为指定人员验证，必须填写scene参数。off为操作员验证。                           |
| email                                        | 否  | String   | 操作保护验证指定邮件地址，admin_check为on、scene为email时，必须填写。示例:example@email.com。 |
| scene                                       | 否   | String | 操作保护指定人员验证方式，admin_check为on时，必须填写。包括mobile、email。                   |
   
 表5protect_policy.allow_user 
| 名称              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| manage_accesskey | 否     | Boolean | 参数解释： 是否允许子用户自行管理AK。 约束限制： 不涉及 取值范围： - true：允许子用户自行管理AK。  - false：不允许子用户自行管理AK。   默认取值： true            |
| manage_email   | 否     | Boolean  | 参数解释： 是否允许子用户自行修改邮箱。 约束限制： 不涉及 取值范围： - true：允许子用户自行修改邮箱。  - false：不允许子用户自行修改邮箱。   默认取值： true     |
| manage_mobile     | 否    | Boolean | 参数解释： 是否允许子用户自行修改电话。 约束限制： 不涉及 取值范围： - true：允许子用户自行修改电话。  - false：不允许子用户自行修改电话。   默认取值： true                    |
| manage_password | 否     | Boolean | 参数解释： 是否允许子用户自行修改密码。 约束限制： 不涉及 取值范围： - true：允许子用户自行修改密码。  - false：不允许子用户自行修改密码。   默认取值： true |
   
#### 响应参数
**状态码： 200**
表6响应Body参数 
| 参数                                                            | 参数类型                                                                 | 描述       |
|:---|:---|:---|
| [protect_policy] | [protect_policy] object | 操作保护策略。 |
   
 表7protect_policy 
| 参数                                          | 参数类型                  | 描述                            |
|:---|:---|:---|
| [allow_user] | AllowUserBody object | 用户可以自主修改的属性。                 |
| operation_protection                          | boolean               | 是否开启操作保护，取值范围true或false。      |
| admin_check                                | String                 | 是否指定人员验证。on为指定人员验证，off为操作员验证。 |
| scene                                       | String                   | 操作保护指定人员验证方式。                 |
   
 表8protect_policy.allow_user 
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| manage_accesskey | Boolean | 参数解释： 是否允许子用户自行管理AK。 约束限制： 不涉及 取值范围： - true：允许子用户自行管理AK。  - false：不允许子用户自行管理AK。   默认取值： true |
| manage_email     | Boolean   | 参数解释： 是否允许子用户自行修改邮箱。 约束限制： 不涉及 取值范围： - true：允许子用户自行修改邮箱。  - false：不允许子用户自行修改邮箱。   默认取值： true |
| manage_mobile     | Boolean  | 参数解释： 是否允许子用户自行修改电话。 约束限制： 不涉及 取值范围： - true：允许子用户自行修改电话。  - false：不允许子用户自行修改电话。   默认取值： true      |
| manage_password  | Boolean   | 参数解释： 是否允许子用户自行修改密码。 约束限制： 不涉及 取值范围： - true：允许子用户自行修改密码。  - false：不允许子用户自行修改密码。   默认取值： true   |
   
#### 请求示例
修改账号操作保护策略，开启操作保护。
```
PUT https://iam.myhuaweicloud.com/v3.0/OS-SECURITYPOLICY/domains/{domain_id}/protect-policy 
 
{ 
  "protect_policy" : { 
    "operation_protection" : true 
  } 
}
```
#### 响应示例
**状态码为 200** **时:**
请求成功。
```
{
 "protect_policy": {
  "allow_user": {
   "manage_mobile": true,
   "manage_accesskey": true,
   "manage_email": true,
   "manage_password": true
  },
  "operation_protection": true,
  "admin_check": "off",
  "scene": ""
 }
}
```
**状态码为 400** **时:**
请求体异常。
- 示例 1
```
{ 
   "error_msg" : "'%(key)s' is a required property.", 
   "error_code" : "IAM.0072" 
 }
```
- 示例 2
```
{ 
   "error_msg" : "Invalid input for field '%(key)s'. The value is '%(value)s'.", 
   "error_code" : "IAM.0073" 
 }
```
**状态码为 403** **时:**
鉴权失败。
- 示例 1
```
{ 
   "error_msg" : "Policy doesn't allow %(actions)s to be performed.", 
   "error_code" : "IAM.0003" 
 }
```
- 示例 2
```
{ 
   "error_msg" : "You are not authorized to perform the requested action.", 
   "error_code" : "IAM.0002" 
 }
```
**状态码为 500** **时:**
系统异常。
```
{ 
  "error_msg" : "An unexpected error prevented the server from fulfilling your request.", 
  "error_code" : "IAM.0006" 
}
```
#### 状态码
| 状态码  | 描述     |
|:---|:---|
| 200 | 请求成功。 |
| 400   | 请求体异常。  |
| 401  | 认证失败。   |
| 403   | 鉴权失败。 |
| 500   | 系统异常。     |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iam/iam_02_0006.html)。
