You need to enable JavaScript to run this app.
导航
CreateSecret - 创建凭据
最近更新时间:2024.10.18 12:38:25首次发布时间:2024.10.18 12:38:25

创建凭据

调试

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数

参数
类型
是否必填
示例值
描述
Action
String

CreateSecret

要执行的操作,取值:CreateSecret。

Version
String

2021-02-18

API的版本,取值:2021-02-18。

SecretName
String

secret-9527

凭据名称,长度为 2 ~ 31 个字符。合法字符:[a-zA-Z0-9-_]

ProjectName
String

default

凭据所属项目名称,默认值:default

Description
String

test

凭据描述,长度为 0 ~ 8192 个字符。

SecretType
String

Generic

凭据类型,目前支持 Generic|IAM|RDS|Redis|ECS。

EncryptionKey
String

trn:kms:cn-beijing:210000:keyrings/keyring_test/keys/key_test

加密凭据值的 KMS 密钥 TRN,如不指定,使用凭据管家的默认密钥。

SecretValue
String

{"username":"root","password":"123456"}

凭据值,长度不超过 30720 字节。

当 SecretType 取值为 Generic 时,用户可自定义,建议使用 JSON 格式的键值对。

当 SecretType 取值为 IAM 时,SecretValue 格式如下:
{"AccessKeys":[{"AccessKeyId":"","AccessKeySecret":""}]}
AccessKeyId:访问密钥 ID。
AccessKeySecret:访问密钥内容。
AccessKeys 的数量必须为 1 或者 2,AccessKeyId 必填。

当 SecretType 取值为 RDS 时,SecretValue 格式如下:
{"Accounts":[{"AccountName":"","AccountPassword":""}]}
AccountName:RDS 实例的账号名。
AccountPassword:RDS 实例的账号口令。
当 SecretSubType 取值为 SingleUser 时,Accounts 数量必须为 1;当 SecretSubType 取值为 DoubleUsers 时,Accounts 数量必须为 2。AccountName 必填,且两个 AccountName 不能一样。

当 SecretType 取值为 Redis 时,SecretValue 格式如下:
{"Accounts":[{"AccountName":"","AccountPassword":""}]}
AccountName:Redis 实例的账号名。
AccountPassword:Redis 实例的账号口令。
当 SecretSubType 取值为 SingleUser 时,Accounts 数量必须为 1;当 SecretSubType 取值为 DoubleUsers 时,Accounts 数量必须为 2。AccountName 必填,且两个 AccountName 不能一样。

当 SecretType 取值为 ECS 时,SecretValue 格式如下:
当 SecretSubType 取值为 Password 时:格式为 {"UserName":"","Password":""}
UserName:登录 ECS 实例的用户名。
Password:登录 ECS 实例的密码。
当 SecretSubType 取值为 SSHKey 时:格式为 {"UserName":"","PublicKey":"","PrivateKey":""}
PublicKey:登录 ECS 实例的 SSH 格式公钥。
PrivateKey:登录 ECS 实例的私钥。

ExtendedConfig
String

{"InstanceId":"xxx","SecretSubType":"Password","CustomData":{"desc":"test"}}

凭据的拓展配置,用于指定非 Generic 类型凭据的属性。长度不超过 1024 字节。

当 SecretType 取值为 Generic 时,用户可自定义,建议使用 JSON 格式的键值对。

当 SecretType 取值为 IAM 时,ExtendedConfig 参数如下:
UserName(必填):IAM 用户名称。
SecretSubType(必填):凭据子类型,取值: IAMUserAccessKey。
CustomData(可选):自定义数据,取值为 JSON 格式的键值对。
示例:{"UserName":"test","SecretSubType":"IAMUserAccessKey","CustomData":{"desc":"test"}}

当 SecretType 取值为 RDS 时,ExtendedConfig 参数如下:
DBInstanceId(必填):RDS 实例 ID。
SecretSubType(必填):凭据子类型。取值:
SingleUser:单账号模式,凭据轮转时,指定账号的口令会被重置为新的随机口令。
DoubleUsers:双账号模式,凭据轮转时,OLDER 版本的账号口令会被重置为新的随机口令,然后 OLDER 版本会替换为 CURRENT,保证轮转过程中业务不中断。
CustomData(可选):自定义数据,取值为 JSON 格式的键值对。
示例:{"DBInstanceId":"xxx","SecretSubType":"SingleUser","CustomData":{"desc":"test"}}

当 SecretType 取值为 Redis 时,ExtendedConfig 参数如下:
DBInstanceId(必填):Redis 实例 ID。
SecretSubType(必填):凭据子类型。取值:
SingleUser:单账号模式,凭据轮转时,指定账号的口令会被重置为新的随机口令。
DoubleUsers:双账号模式,凭据轮转时,OLDER 版本的账号口令会被重置为新的随机口令,然后 OLDER 版本会替换为 CURRENT,保证轮转过程中业务不中断。
CustomData(可选):自定义数据,取值为 JSON 格式的键值对。
示例:{"DBInstanceId":"xxx","SecretSubType":"DoubleUsers","CustomData":{"desc":"test"}}

当 SecretType 取值为 ECS 时,ExtendedConfig 参数如下:
InstanceId(必填):ECS 实例 ID。
SecretSubType(必填):凭据子类型。取值:
Password:ECS 口令。
SSHKey:ECS SSH 公私钥。
CustomData(可选):自定义数据,取值为 JSON 格式的键值对。
示例:{"InstanceId":"xxx","SecretSubType":"Password","CustomData":{"desc":"test"}}

AutomaticRotation
Boolean

true

是否开启自动轮转,仅适用于 IAM|RDS|Redis|ECS 类型的凭据。

RotationInterval
String

7d

自动轮转周期,取值范围:1 ~ 365 天。
格式为 integer[unit],其中 integer 表示时间长度,unit 表示时间单位。unit 取值:d(天)。
例如:7d 表示 7 天的周期。

返回参数

下表仅列出本接口特有的返回参数。更多信息请参见返回结构

参数
类型
示例值
描述
Secret
Object

{
"ID": "d24a9f14-1a8b-4393-b66e-b77b766b6666",
"CreationDate": 1625818017,
"UpdateDate": 1625818017591,
"SecretName": "secret-9527",
"UID": "2100000282",
"Trn": "trn:kms:cn-beijing:2100000282:secrets/secret-9527",
"ProjectName": "default",
"Description": "test",
"SecretType": "Generic",
"Managed": false,
"ExtendedConfig": "",
"RotationState": "None",
"RotationInterval": 0
}

创建的凭据信息

请求示例

POST /?Action=CreateSecret&Version=2021-02-18&SecretName=secret-9527&ProjectName=default&SecretType=Generic&AutomaticRotation=true&RotationInterval=7d HTTP/1.1
Host: kms.volcengineapi.com
Content-Type: application/json; charset=UTF-8
X-Date: 20240808T012955Z
X-Content-Sha256: 287e874e******d653b44d21e
Authorization: HMAC-SHA256 Credential=Adfks******wekfwe/20240808/cn-beijing/kms/request, SignedHeaders=host;x-content-sha256;x-date, Signature=47a7d934ff7b37c03938******cd7b8278a40a1057690c401e92246a0e41085f

{
  "Description": "test",
  "SecretValue": "{\"username\":\"root\",\"password\":\"123456\"}"
}

返回示例

{
  "ResponseMetadata": {
    "RequestId": "20240808093135197096064007CC0E1A",
    "Action": "CreateSecret",
    "Version": "2021-02-18",
    "Service": "kms",
    "Region": "cn-beijing"
  },
  "Result": {
    "Secret": {
      "ID": "d24a9f14-1a8b-4393-b66e-b77b766b6666",
      "CreationDate": 1625818017,
      "UpdateDate": 1625818017591,
      "SecretName": "secret-9527",
      "UID": "2100000282",
      "Trn": "trn:kms:cn-beijing:2100000282:secrets/secret-9527",
      "ProjectName": "default",
      "Description": "test",
      "SecretType": "Generic",
      "Managed": false,
      "ExtendedConfig": "",
      "RotationState": "None",
      "RotationInterval": 0
    }
  }
}

错误码

下表为您列举了该接口与业务逻辑相关的错误码。公共错误码请参见公共错误码文档。

状态码
错误码
错误信息
说明
400
InvalidParameter
The request parameter %s is invalid.
403
Reject.Throttling.Action
The request of Action: %s upper limit is exceeded.
403
AccessDenied
User is not authorized to do this action
404
Not Found
Not found %s [%s].
409
Conflict
The %s resource %s is conflict.
409
ProjectConflict
The secret [%s] already exists in one project.
500
UndefinedError
Undefined Internal Error. Pls Contact With Admin.