创建凭据并存入凭据的初始版本。
您需要指定凭据名称、初始版本的凭据值和版本号。初始版本的状态被标记为ACSCurrent。
KMS使用您指定的密钥对凭据值进行加密保护,密钥和凭据需要属于同一个KMS实例,且密钥必须为对称密钥。
您对凭据值进行加密前,需要具备密钥的kms:GenerateDataKey
权限。
本文将提供一个示例,创建一个名称为mydbconninfo
、初始版本号VersionId
为v1
、凭据值SecretData
为{"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}
的RDS凭据。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | CreateSecret | 要执行的操作。取值:CreateSecret。 |
SecretName | String | 是 | mydbconninfo | 凭据名称。 凭据名称在当前地域下唯一。 长度不超过192个字符,可包含英文字母、数字、下划线(_)、正斜线(/)、加号(+)、等号(=)、半角句号(.)、短划线(-)和字符(@)。不同类型的凭据名称要求如下:
|
VersionId | String | 是 | v1 | 初始版本的版本号,版本号在该凭据内唯一。 长度不超过64个字符。 |
EncryptionKeyId | String | 否 | key-gzz63ff0db5hg3qje**** | 用于加密凭据值的密钥ID。 说明 密钥和凭据需要属于同一个KMS实例,且密钥必须为对称密钥。 |
SecretData | String | 是 | {"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]} | 凭据值。长度不超过30720字节(30KB)。KMS使用指定的密钥对其加密后,存入初始版本中。
|
SecretDataType | String | 否 | text | 凭据值类型。取值:
说明 当SecretType取值为Rds、Redis、RAMCredentials或ECS时,SecretDataType取值只能为text。 |
Description | String | 否 | mydbinfo | 凭据的描述信息。 |
Tags | String | 否 | [{\"TagKey\":\"key1\",\"TagValue\":\"val1\"},{\"TagKey\":\"key2\",\"TagValue\":\"val2\"}] | 凭据的标签。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。 标签建和标签值的格式:最多支持128个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符at(@)。
|
SecretType | String | 否 | Rds | 凭据类型。取值:
|
ExtendedConfig | Map | 否 | {"SecretSubType":"SingleUser", "DBInstanceId":"rm-bp1b3dd3a506e****" ,"CustomData":{"Key1": "v1", "fds":"fdsf"}} | 凭据的拓展配置,用于指定特定凭据类型的属性。长度不超过1024个字符。
说明 当SecretType取值为Rds、Redis、RAMCredentials或ECS时,必须设置该参数。 |
EnableAutomaticRotation | Boolean | 否 | true | 是否开启自动轮转,取值:
说明 当SecretType取值为Rds(RDS凭据)、Redis(Redis凭据)、RAMCredentials(RAM凭据)或ECS(ECS凭据)时,该参数有效。当SecretType取值为Generic(通用凭据)时,不支持自动轮转,您可通过PutSecretValue操作手工轮转。 |
RotationInterval | String | 否 | 30d | 自动轮转的周期。取值范围:6小时~8,760小时(365天)。 格式为 unit取值:d(天)、h(小时)、m(分钟)、s(秒)。例如:7d或者604,800s均表示7天的周期。 说明 仅当EnableAutomaticRotation取值为true时,必须设置该参数,否则无需设置。 |
DKMSInstanceId | String | 否 | kst-bjj62d8f5e0sgtx8h**** | KMS实例的实例ID。 |
Policy | String | 否 | {"Version":"1","Statement": [{"Sid":"kms default secret policy","Effect":"Allow","Principal":{"RAM": ["acs:ram::119285303511****:*"]},"Action":["kms:*"],"Resource": ["*"] }] } | 凭据策略的具体内容,JSON格式。最大长度为32768个字节。 关于凭据策略的详细介绍,请参见凭据策略概述。不输入该参数时,使用默认凭据策略。 凭据策略内容包含:
凭据策略格式为:
Statement详细介绍:
说明 授权给其他阿里云账号下的RAM用户、RAM角色后,您仍需在访问控制RAM侧,使用该RAM用户、RAM角色的阿里云账号为其授权使用该凭据,RAM用户、RAM角色才能使用该凭据。集体操作,请参见密钥管理服务自定义权限策略参考、为RAM用户授权、为RAM角色授权。 |
关于公共请求参数的详情,请参见公共参数。
返回数据
名称 |
类型 |
示例值 |
描述 |
RequestId | String | 3bf02f7a-015b-4f93-be0f-cc043fda2dd3 | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
AutomaticRotation | String | Enabled | 是否开启自动轮转。取值:
说明 SecretType取值为Rds、Redis、RAMCredentials或ECS时,返回该参数。 |
SecretName | String | mydbconninfo | 凭据名称。 |
VersionId | String | v1 | 凭据版本号。 |
NextRotationDate | String | 2023-07-06T18:22:03Z | 下一次轮转的时间。 说明 当自动轮转开启时,返回该参数。 |
SecretType | String | Rds | 凭据类型。取值:
|
RotationInterval | String | 604800s | 凭据自动轮转的周期。 格式为 说明 当自动轮转开启时,返回该参数。 |
Arn | String | acs:kms:cn-hangzhou:154035569884****:secret/mydbconninfo | 阿里云资源名称。 |
ExtendedConfig | String | {\"SecretSubType\":\"SingleUser\", \"DBInstanceId\":\"rm-uf667446pc955****\", \"CustomData\":"Key1": "v1", "fds":"fdsf"} } | 凭据的拓展配置。 说明 当SecretType取值为Rds、Redis、RAMCredentials或ECS时,返回该参数。 |
DKMSInstanceId | String | kst-bjj62d8f5e0sgtx8h**** | KMS实例的实例ID。 |
示例
请求示例
http(s)://[Endpoint]/?Action=CreateSecret
&SecretName=mydbconninfo
&VersionId=v1
&EncryptionKeyId=key-gzz63ff0db5hg3qje****
&SecretData={"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}
&SecretDataType=text
&Description=mydbinfo
&Tags=[{\"TagKey\":\"key1\",\"TagValue\":\"val1\"},{\"TagKey\":\"key2\",\"TagValue\":\"val2\"}]
&SecretType=Rds
&EnableAutomaticRotation=true
&RotationInterval=30d
&DKMSInstanceId=kst-bjj62d8f5e0sgtx8h****
&Policy={"Version":"1","Statement": [{"Sid":"kms default secret policy","Effect":"Allow","Principal":{"RAM": ["acs:ram::119285303511****:*"]},"Action":["kms:*"],"Resource": ["*"] }] }
&公共请求参数
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateSecretResponse>
<RequestId>3bf02f7a-015b-4f93-be0f-cc043fda2dd3</RequestId>
<AutomaticRotation>Enabled</AutomaticRotation>
<SecretName>mydbconninfo</SecretName>
<VersionId>v1</VersionId>
<NextRotationDate>2023-07-06T18:22:03Z</NextRotationDate>
<SecretType>Rds</SecretType>
<RotationInterval>604800s</RotationInterval>
<Arn>acs:kms:cn-hangzhou:154035569884****:secret/mydbconninfo</Arn>
<ExtendedConfig>{\"SecretSubType\":\"SingleUser\", \"DBInstanceId\":\"rm-uf667446pc955****\", \"CustomData\":"Key1": "v1", "fds":"fdsf"} }</ExtendedConfig>
<DKMSInstanceId>kst-bjj62d8f5e0sgtx8h****</DKMSInstanceId>
</CreateSecretResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "3bf02f7a-015b-4f93-be0f-cc043fda2dd3",
"AutomaticRotation" : "Enabled",
"SecretName" : "mydbconninfo",
"VersionId" : "v1",
"NextRotationDate" : "2023-07-06T18:22:03Z",
"SecretType" : "Rds",
"RotationInterval" : "604800s",
"Arn" : "acs:kms:cn-hangzhou:154035569884****:secret/mydbconninfo",
"ExtendedConfig" : "{\\\"SecretSubType\\\":\\\"SingleUser\\\", \\\"DBInstanceId\\\":\\\"rm-uf667446pc955****\\\", \\\"CustomData\\\":\"Key1\": \"v1\", \"fds\":\"fdsf\"} }",
"DKMSInstanceId" : "kst-bjj62d8f5e0sgtx8h****"
}
错误码
HttpCode |
错误码 |
错误信息 |
描述 |
400 | UnsupportedOperation | This action is not supported. | 不支持的操作 |
400 | Rejected.LimitExceeded | The request was rejected because user create resource limit was exceeded | 创建的资源达到上限,请求被拒绝。 |
400 | InvalidParameter | The specified parameter is not valid. | 参数非法。 |
400 | Rejected.ShareQuotaExceedLimit | Instance Share Quota Exceed Limit. | 实例份额配额超过限制。 |
403 | Forbidden.DKMSInstanceNotFound | The specified DKMS Instance is not found. | 您指定的专属kms实例未找到。 |
404 | Forbidden.ResourceNotFound | The resource is not found. | 资源不存在。 |
409 | Rejected.ResourceExist | The resource already exists. | 资源已存在。 |
409 | Rejected.ResourceInDeleteWindow | The secret is planned to be deleted. | 此凭据在计划删除中 |
500 | InternalFailure | Internal Failure | 内部错误 |
访问错误中心查看更多错误码。