创建凭据版本 - CreateSecretVersion
功能介绍
在指定的凭据中,创建一个新的凭据版本,用于加密保管新的凭据值。默认情况下,新创建的凭据版本被标记为SYSCURRENT状态,而SYSCURRENT标记的前一个凭据版本被标记为SYSPREVIOUS状态。您可以通过指定VersionStage参数来覆盖默认行为。
接口约束
- 
     凭据管理服务console控制台仅使用secret_string字段。如果您想要添加二进制类型凭据到secret_binary字段中保存,必须使用SDK或API的方式。 
- 
     凭据管理服务的每个凭据中最多可支持20个版本。 
- 
     只能对处于ENABLED状态的凭据添加新的版本。 
- 
     每次存入新的凭据值时,凭据版本号按照为v1,v2,v3...的模式自动增加。 
调用方法
请参见如何调用API。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。 
     授权项 访问级别 资源类型(*为必须) 条件键 别名 依赖的授权项 csms:secret:createVersion Write secretName * - 
            csms:Type 
- 
            g:EnterpriseProjectId 
- 
            g:ResourceTag/<tag-key> 
 - csms:secretVersion:create
 kms:cmk:createDataKey 
- 
            
URI
POST /v1/{project_id}/secrets/{secret_name}/versions
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| project_id | 是 | String | 项目ID。 | 
| secret_name | 是 | String | 凭据名称。 | 
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| secret_binary | 否 | String | 新创建凭据的凭据值,将其加密后,存入初始版本中。 类型:base64编码的二进制数据对象。 约束:secret_binary和secret_string必须且只能设置一个,最大32K。 | 
| secret_string | 否 | String | 新创建凭据的凭据值,将其加密后,存入初始版本中。 约束:secret_binary和 secret_string必须且只能设置一个,最大32K。 | 
| version_stages | 否 | Array of strings | 凭据版本在存入时需要被同时标记的版本状态。如果您不指定此参数,凭据管家默认为新版本标记SYSCURRENT 约束:数组大小:最小1,最大12。stage长度:最小1字节,最大64字节。 | 
| expire_time | 否 | Long | 凭据版本过期时间,时间戳,即从1970年1月1日至该时间的总秒数。默认为空,凭据订阅“版本过期”事件类型时,有效期判断所依据的值。 | 
响应参数
状态码:200
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| version_metadata | VersionMetadata object | 凭据版本被标记的状态。 | 
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| id | String | 凭据的版本号标识符,凭据对象下唯一。 | 
| create_time | Long | 凭据版本创建时间,时间戳,即从1970年1月1日至该时间的总秒数。 | 
| expire_time | Long | 凭据版本过期时间,时间戳,即从1970年1月1日至该时间的总秒数。默认为空,凭据订阅“版本过期”事件类型时,有效期判断所依据的值。 | 
| kms_key_id | String | 加密版本凭据值的KMS主密钥ID。 | 
| secret_name | String | 凭据名称。 | 
| version_stages | Array of strings | 凭据版本被标记的状态列表。每个版本标签对于凭据对象下版本是唯一存在的,如果创建版本时,指定的是同一凭据对象下的一个已经标记在其他版本上的状态,该标签将自动从其他版本上删除,并附加到此版本上。 如果未指定version_stage的值,则凭据管理服务会自动移动临时标签SYSCURRENT到此新版本。 | 
状态码:400
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
状态码:401
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
状态码:403
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
状态码:404
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
状态码:500
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
状态码:502
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
状态码:504
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误描述 | 
请求示例
创建凭据版本,凭据值为secret_string。
{
  "secret_string" : "secret_string"
}
  响应示例
状态码:200
请求已成功
{
  "version_metadata" : {
    "id" : "v1",
    "kms_key_id" : "b168fe00ff56492495a7d22974df2d0b",
    "create_time" : 1581507580000,
    "secret_name" : "secret-name-demo",
    "version_stages" : [ "SYSCURRENT" ]
  }
}
  状态码
| 状态码 | 描述 | 
|---|---|
| 200 | 请求已成功 | 
| 400 | 请求参数有误 | 
| 401 | 被请求的页面需要用户名和密码 | 
| 403 | 认证失败 | 
| 404 | 资源不存在,资源未找到 | 
| 500 | 服务内部错误 | 
| 502 | 请求未完成。服务器从上游服务器收到一个无效的响应 | 
| 504 | 网关超时 | 
错误码
请参见错误码。
 
  