# 修改账号登录策略 - UpdateLoginPolicyV5
#### 功能介绍
该接口可以用于修改账号登录策略。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/doc?api=UpdateLoginPolicyV5&version=v5)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-iam5/iam_02_1124.html)。
| 授权项                                      | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| iam:securitypolicies:updateLoginPolicyV5 | Write | -           | -   | -  | -      |
   
#### URI
PUT /v5/login-policy
#### 请求参数
表1请求Body参数 
| 参数                         | 是否必选 | 参数类型                                                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| user_validity_period       | 否    | Integer                                                                                   | **参数解释**： 如果IAM用户在该值设置的有效期（天）内未登录，则被停用。 **约束限制**： 不适用于根用户。 **取值范围**： 取值范围为\[0,240\]。其中0表示关闭该策略，即不启用用户有效期限制。 **默认取值**： 不涉及。                                                |
| custom_info_for_login      | 否    | String                                                                                    | **参数解释**： 登录提示信息。 **约束限制**： 不涉及 **取值范围**： 不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、"\\"、"$"、"\^"和"\*"的字符串。 长度范围为\[0,64\]。 **默认取值**： 不涉及。 |
| lockout_duration           | 否    | Integer                                                                                   | **参数解释**： IAM用户登录锁定时长（分钟）。 **约束限制**： 不涉及。 **取值范围**： 取值范围为\[15,1440\]。 **默认取值**： 不涉及。                                                                                      |
| login_failed_times         | 否    | Integer                                                                                   | **参数解释**： 限定时间内登录失败次数。 **约束限制**： 不涉及。 **取值范围**： 取值范围为\[3,10\]。 **默认取值**： 不涉及。                                                                                             |
| period_with_login_failures | 否    | Integer                                                                                   | **参数解释**： 限定时间长度（分钟）。 **约束限制**： 不涉及。 **取值范围**： 取值范围为\[15,60\]。 **默认取值**： 不涉及。                                                                                             |
| session_timeout            | 否    | Integer                                                                                   | **参数解释**： 登录会话失效时间（分钟）。 **约束限制**： 不涉及。 **取值范围**： 取值范围为\[15,1440\]。 **默认取值**： 不涉及。                                                                                         |
| show_recent_login_info     | 否    | Boolean                                                                                   | **参数解释**： 是否显示最近一次的登录信息。 **约束限制**： 不涉及。 **取值范围**： 取值范围为\[true,false\]。 **默认取值**： 不涉及。                                                                                     |
| allow_address_netmasks     | 否    | Array of [AllowAddressNetmask] objects | **参数解释**： 允许访问的IP地址或网段，例如"xxx.xxx.xxx.xxx/24"。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                               |
| allow_ip_ranges            | 否    | Array of [AllowIpRange] objects               | **参数解释**： 允许访问的IP地址区间，取值为IP地址区间，例如"0.0.0.0-255.255.255.255"。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                 |
   
 表2AllowAddressNetmask 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| address_netmask | 是    | String | **参数解释**： IP地址或网段，例如"192.168.0.1/24"。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                       |
| description     | 否    | String | **参数解释**： 描述信息。 **约束限制**： 不涉及 **取值范围**： 不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、"\\"、"$"、"\^"和"\*"的字符串。 长度范围为\[0,255\]。 **默认取值**： 不涉及。 |
   
 表3AllowIpRange 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| ip_range    | 是    | String | **参数解释**： IP地址区间，例如"0.0.0.0-255.255.255.255"。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                               |
| description | 否    | String | **参数解释**： 描述信息。 **约束限制**： 不涉及 **取值范围**： 不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、"\\"、"$"、"\^"和"\*"的字符串。 长度范围为\[0,255\]。 **默认取值**： 不涉及。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数           | 参数类型                                                               | 描述                                                                                                                                                  |
|:---|:---|:---|
| login_policy | [login_policy] object | **参数解释**： 登录策略。 **取值范围**： 不涉及。 |
   
 表5login_policy 
| 参数                         | 参数类型                                                                                             | 描述                                                                                                                                                                          |
|:---|:---|:---|
| user_validity_period       | Integer                                                                                          | **参数解释**： 如果IAM用户在该值设置的有效期（天）内未登录，则被停用。 **取值范围**： 不涉及。 |
| custom_info_for_login      | String                                                                                           | **参数解释**： 登录提示信息。 **取值范围**： 不涉及。                       |
| lockout_duration           | Integer                                                                                          | **参数解释**： IAM用户登录锁定时长（分钟）。 **取值范围**： 不涉及。              |
| login_failed_times         | Integer                                                                                          | **参数解释**： 限定时间内登录失败次数。 **取值范围**： 不涉及。                  |
| period_with_login_failures | Integer                                                                                          | **参数解释**： 限定时间长度（分钟）。 **取值范围**： 不涉及。                   |
| session_timeout            | Integer                                                                                          | **参数解释**： 登录会话失效时间（分钟）。 **取值范围**： 不涉及。                 |
| show_recent_login_info     | Boolean                                                                                          | **参数解释**： 是否显示最近一次的登录信息。 **取值范围**： 不涉及。                |
| allow_address_netmasks     | Array of [allow_address_netmasks] objects | **参数解释**： 允许访问的IP地址或网段。 **取值范围**： 不涉及。                 |
| allow_ip_ranges            | Array of [allow_ip_ranges] objects               | **参数解释**： 允许访问的IP地址区间。 **取值范围**： 不涉及。                  |
   
 表6allow_address_netmasks 
| 参数              | 参数类型   | 描述                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| address_netmask | String | **参数解释**： IP地址或网段，例如"192.168.0.1/24"。 **取值范围**： 不涉及。                                                                                        |
| description     | String | **参数解释**： 描述信息。 **取值范围**： 不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、"\\"、"$"、"\^"和"\*"的字符串。 长度范围为\[0,255\]。 |
   
 表7allow_ip_ranges 
| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| ip_range    | String | **参数解释**： IP地址区间，例如"0.0.0.0-255.255.255.255"。 **取值范围**： 不涉及。                                                                                |
| description | String | **参数解释**： 描述信息。 **取值范围**： 不能包含特定字符"@"、"#"、"%"、"\&"、"\<"、"\>"、"\\"、"$"、"\^"和"\*"的字符串。 长度范围为\[0,255\]。 |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码，请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 格式为PAP5.XXXX，例如 PAP5.0012。 |
| error_msg  | String | **参数解释**： 错误信息，请参见[错误信息](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 不涉及。                     |
| request_id | String | **参数解释**： API 请求的唯一标识，用于排查接口调用异常。 **取值范围**： 不涉及。                                                                      |
   
**状态码：403**
表9响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码，请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 格式为PAP5.XXXX，例如PAP5.0012。                                    |
| error_msg                     | String | **参数解释**： 错误信息，请参见[错误信息](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。 **取值范围**： 不涉及。                                                       |
| request_id                    | String | **参数解释**： API请求的唯一标识，用于排查接口调用异常。 **取值范围**： 不涉及。                                                                                                         |
| encoded_authorization_message | String | **参数解释**： 认证失败时返回的加密详细信息，用于定位认证问题。 可以通过STS5解密接口进行解密，请参见[接口链接](https://support.huaweicloud.com/api-iam5/DecodeAuthorizationMessage.html)。 **取值范围**： 不涉及。 |
   
#### 请求示例
修改账号登录策略。
```
PUT https://{endpoint}/v5/login-policy
{
  "user_validity_period" : 0,
  "custom_info_for_login" : "info",
  "lockout_duration" : 15,
  "login_failed_times" : 5,
  "period_with_login_failures" : 15,
  "session_timeout" : 60,
  "show_recent_login_info" : false,
  "allow_address_netmasks" : [ {
    "address_netmask" : "192.168.0.1/24",
    "description" : "description"
  } ],
  "allow_ip_ranges" : [ {
    "ip_range" : "0.0.0.0-255.255.255.255",
    "description" : "description"
  } ]
}
```
#### 响应示例
**状态码：200**
```
{
  "login_policy" : {
    "user_validity_period" : 0,
    "custom_info_for_login" : "info",
    "lockout_duration" : 15,
    "login_failed_times" : 5,
    "period_with_login_failures" : 15,
    "session_timeout" : 60,
    "show_recent_login_info" : false,
    "allow_address_netmasks" : [ {
      "address_netmask" : "192.168.0.1/24",
      "description" : "description"
    } ],
    "allow_ip_ranges" : [ {
      "ip_range" : "0.0.0.0-255.255.255.255",
      "description" : "description"
    } ]
  }
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 请求成功。   |
| 400 | 请求体异常。  |
| 403 | 没有操作权限。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iam5/ErrorCode.html)。
