# 更新令牌保管库配置
#### 功能介绍
更新令牌保管库配置，包括KMS和策略集设置。
#### URI
PUT /v1/token-vaults/{token_vault_id}
表1路径参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| token_vault_id | 是    | String | **参数解释**： Token Vault的唯一标识符。 **约束限制**： 不涉及。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~64个字符。 **默认取值**： default。 |
   
#### 请求参数
表2请求Body参数 
| 参数                          | 是否必选 | 参数类型                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| policy_engine_configuration | 是    | [PolicyEngineConfiguration] object | **参数解释**： TokenVault关联的策略集配置。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。 |
   
 表3PolicyEngineConfiguration 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| policy_engine_id | 否    | String | **参数解释**： 策略集ID，系统自动生成的唯一标识符。 **约束限制**： 不涉及。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为12\~59个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| mode             | 否    | String | **参数解释**： 策略集的强制模式。LOG_ONLY模式下策略集会根据策略评估每个操作并记录是否允许或拒绝的跟踪，但不强制执行决策。ENFORCE模式下策略集会根据策略评估操作并通过允许或拒绝来强制执行决策。 **约束限制**： 不涉及。 **取值范围**： - LOG_ONLY：仅记录模式，策略集评估操作但不强制执行决策。建议在启用强制执行前使用此模式测试和验证策略。   - ENFORCE：强制执行模式，策略集评估操作并强制执行决策。    **默认取值**： LOG_ONLY。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数          | 参数类型                                                        | 描述                                                                                                                                                                 |
|:---|:---|:---|
| token_vault | [TokenVault] object | **参数解释**： Token Vault对象，用于管理密钥存储和策略集配置。 **取值范围**： 不涉及。 |
   
 表5TokenVault 
| 参数                          | 参数类型                                                                                      | 描述                                                                                                                                                                                                                |
|:---|:---|:---|
| token_vault_id              | String                                                                                    | **参数解释**： Token Vault的唯一标识符。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为1\~64个字符。                              |
| urn                         | String                                                                                    | **参数解释**： Token Vault对象的统一资源标识（URN）。 **取值范围**： 只能由英文字母、数字及"/"、"="、"_"、":"、"-"组成，长度为16\~1500个字符。       |
| kms_configuration           | [KmsConfiguration] object                   | **参数解释**： KMS密钥配置，用于指定Token Vault使用的KMS密钥类型和密钥ID。 **取值范围**： 不涉及。                                      |
| policy_engine_configuration | [PolicyEngineConfiguration] object | **参数解释**： TokenVault关联的策略集配置。 **取值范围**： 不涉及。                                                          |
| updated_at                  | String                                                                                    | **参数解释**： UTC时间戳，记录资源的创建或更新时间。 **取值范围**： 使用UTC+0时间格式，格式为yyyy-MM-ddTHH:mm:ssZ。例如：2025-01-01T00:00:00Z。 |
| tags                        | Array of [Tag] objects                                   | **参数解释**： 自定义标签列表。 **取值范围**： 不涉及。                                                                     |
   
 表6KmsConfiguration 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| key_type   | String | **参数解释**： KMS密钥类型，用于指定Token Vault使用的KMS密钥类型。 **取值范围**： - CustomerManagedKey：客户管理密钥   - ServiceManagedKey：服务管理密钥    |
| kms_key_id | String | **参数解释**： KMS密钥ID，用于标识Token Vault使用的KMS密钥。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表7PolicyEngineConfiguration 
| 参数               | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| policy_engine_id | String | **参数解释**： 策略集ID，系统自动生成的唯一标识符。 **取值范围**： 只能由英文字母、数字及"-"、"_"组成，长度为12\~59个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| mode             | String | **参数解释**： 策略集的强制模式。LOG_ONLY模式下策略集会根据策略评估每个操作并记录是否允许或拒绝的跟踪，但不强制执行决策。ENFORCE模式下策略集会根据策略评估操作并通过允许或拒绝来强制执行决策。 **取值范围**： - LOG_ONLY：仅记录模式，策略集评估操作但不强制执行决策。建议在启用强制执行前使用此模式测试和验证策略。   - ENFORCE：强制执行模式，策略集评估操作并强制执行决策。    |
   
 表8Tag 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                                   |
|:---|:---|:---|
| key   | String | **参数解释**： 标签键，用于标识标签的名称。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"符号的任意组合，长度为1\~128个字符。                |
| value | String | **参数解释**： 标签值，用于标识标签的具体内容。 **取值范围**： 可以包含任意语种字母、数字、空格以及"_"、"."、":"、"/"、"="、"+"、"-"、"@"、"\&"符号的任意组合，可以是空字符串，长度为0\~255个字符。 |
   
**状态码：400**
表9响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
**状态码：404**
表10响应Body参数 
| 参数                            | 参数类型   | 描述                                                                                                                                                                |
|:---|:---|:---|
| error_code                    | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                         |
| error_msg                     | String | **参数解释**： 错误信息。 **取值范围**： 不涉及。                        |
| request_id                    | String | **参数解释**： 请求ID。 **取值范围**： 不涉及。                        |
| encoded_authorization_message | String | **参数解释**： 加密后的认证失败信息，可以通过STS5解密接口进行解密。 **取值范围**： 不涉及。 |
   
#### 请求示例
为TokenVault绑定策略集。
```
PUT https://{endpoint}/v1/token-vaults/{token_vault_id}
{
  "policy_engine_configuration" : {
    "policy_engine_id" : "abc123def456",
    "mode" : "ENFORCE"
  }
}
```
#### 响应示例
**状态码：200**
```
{
  "token_vault" : {
    "token_vault_id" : "default",
    "urn" : "agentIdentity:cn-north-4:123456789012:tokenVault:default",
    "kms_configuration" : {
      "key_type" : "CustomerManagedKey",
      "kms_key_id" : "12345678-1234-1234-1234-123456789012"
    },
    "policy_engine_configuration" : {
      "policy_engine_id" : "abc123def456",
      "mode" : "ENFORCE"
    },
    "updated_at" : "2025-01-02 00:00:00",
    "tags" : [ {
      "key" : "key-1",
      "value" : "value-1"
    } ]
  }
}
```
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 请求成功。     |
| 400 | 请求体异常。    |
| 404 | 未找到相应的资源。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-agentidentity/ErrorCode.html)。
