调用GetSecretValue接口获取凭据值。
如果不指定版本号或版本状态,则KMS默认返回被标记为ACSCurrent的版本凭据值。
如果凭据使用了用户指定的密钥来保护凭据值,则需要调用者同时具备相应主密钥的kms:Decrypt
权限。
本文将提供一个示例,获取一个名为secret001
凭据的凭据值,返回结果显示凭据值SecretData
为testdata1
。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | GetSecretValue | 要执行的操作。取值:GetSecretValue。 |
SecretName | String | 是 | secret001 | 凭据名称或凭据资源名称(ARN)。 说明 访问其他阿里云账号下的凭据时,必须输入凭据ARN。凭据ARN的格式为 acs:kms:${region}:${account}:secret/${secret-name} 。 |
VersionStage | String | 否 | ACSCurrent | 版本状态。默认值:ACSCurrent。 输入该参数时返回指定版本状态的凭据值,不输入该参数时返回ACSCurrent版本状态的凭据值。 说明 RDS凭据、Redis/Tair凭据、RAM凭据和ECS凭据只能获取ACSPrevious和ACSCurrent对应版本的凭据值。 |
VersionId | String | 否 | v1 | 版本号。 说明 RDS凭据、Redis/Tair凭据、RAM凭据和ECS凭据不支持指定VersionId,设置该参数将被忽略。 |
FetchExtendedConfig | Boolean | 否 | true | 是否获取凭据的拓展配置。取值:
说明 通用凭据不支持拓展配置,设置该参数将被忽略。 |
DryRun | String | 否 | false | 是否开启DryRun模式。
DryRun模式用于测试API调用,验证您是否具有相应资源的权限,以及请求参数是否配置正确。DryRun模式开启后,KMS会始终返回失败并提示失败原因。失败原因包含如下:
|
关于公共请求参数的详情,请参见公共参数。
返回数据
名称 |
类型 |
示例值 |
描述 |
SecretDataType | String | binary | 凭据值类型。取值:
|
CreateTime | String | 2024-02-21T15:39:26Z | 创建凭据的时间。 |
VersionId | String | v1 | 凭据的版本号。 |
NextRotationDate | String | 2024-07-06T18:22:03Z | 下一次轮转的时间。 说明 当自动轮转开启时,返回该参数。 |
SecretData | String | testdata1 | 凭据值。KMS将存储的密文凭据值进行解密后返回该参数。
|
RotationInterval | String | 604800s | 凭据自动轮转的周期。 格式为 说明 当自动轮转开启时,返回该参数。 |
ExtendedConfig | String | {\"SecretSubType\":\"SingleUser\", \"DBInstanceId\":\"rm-uf667446pc955****\", \"CustomData\":{} } | 凭据的拓展配置。 说明 当FetchExtendedConfig取值为true时,仅RDS凭据、Redis/Tair凭据、RAM凭据或ECS凭据返回该参数。 |
LastRotationDate | String | 2023-07-05T08:22:03Z | 最近一次轮转的时间。 说明 当凭据发生过轮转时返回该参数。 |
RequestId | String | 6a3e9c36-1150-4881-84d3-eb8672fcafad | 本次调用请求的ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
SecretName | String | secret001 | 凭据名称。 |
AutomaticRotation | String | Enabled | 是否开启了自动轮转。取值:
说明 仅RDS凭据、Redis/Tair凭据、RAM凭据或ECS凭据返回该参数。 |
SecretType | String | Generic | 凭据类型。取值:
|
VersionStages | Array of String | { "VersionStage": [ "ACSCurrent" ] } | 凭据版本的状态标记。 |
示例
请求示例
http(s)://[Endpoint]/?Action=GetSecretValue
&SecretName=secret001
&VersionStage=ACSCurrent
&VersionId=v1
&FetchExtendedConfig=true
&DryRun=false
&公共请求参数
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<GetSecretValueResponse>
<SecretDataType>binary</SecretDataType>
<CreateTime>2024-02-21T15:39:26Z</CreateTime>
<VersionId>v1</VersionId>
<NextRotationDate>2024-07-06T18:22:03Z</NextRotationDate>
<SecretData>testdata1</SecretData>
<RotationInterval>604800s</RotationInterval>
<ExtendedConfig>{\"SecretSubType\":\"SingleUser\", \"DBInstanceId\":\"rm-uf667446pc955****\", \"CustomData\":{} }</ExtendedConfig>
<LastRotationDate>2023-07-05T08:22:03Z</LastRotationDate>
<RequestId>6a3e9c36-1150-4881-84d3-eb8672fcafad</RequestId>
<SecretName>secret001</SecretName>
<AutomaticRotation>Enabled</AutomaticRotation>
<SecretType>Generic</SecretType>
<VersionStages>{ "VersionStage": [ "ACSCurrent" ] }</VersionStages>
</GetSecretValueResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"SecretDataType" : "binary",
"CreateTime" : "2024-02-21T15:39:26Z",
"VersionId" : "v1",
"NextRotationDate" : "2024-07-06T18:22:03Z",
"SecretData" : "testdata1",
"RotationInterval" : "604800s",
"ExtendedConfig" : "{\\\"SecretSubType\\\":\\\"SingleUser\\\", \\\"DBInstanceId\\\":\\\"rm-uf667446pc955****\\\", \\\"CustomData\\\":{} }",
"LastRotationDate" : "2023-07-05T08:22:03Z",
"RequestId" : "6a3e9c36-1150-4881-84d3-eb8672fcafad",
"SecretName" : "secret001",
"AutomaticRotation" : "Enabled",
"SecretType" : "Generic",
"VersionStages" : [ "{ \"VersionStage\": [ \t\"ACSCurrent\" \t] }" ]
}
错误码
HttpCode |
错误码 |
错误信息 |
描述 |
403 | Forbidden.DKMSInstanceStateInvalid | The DKMS instance state is invalid. | 您的专属KMS状态为无效状态。 |
403 | Forbidden.DKMSInstanceNotFound | The specified DKMS Instance is not found. | 您指定的专属kms实例未找到。 |
404 | Forbidden.KeyNotFound | The specified Key is not found. | 指定的密钥不存在。 |
404 | Forbidden.ResourceNotFound | Resource not found. | 资源找不到 |
访问错误中心查看更多错误码。