全部产品
Search
文档中心

密钥管理服务:GetSecretValue

更新时间:Nov 22, 2024

调用GetSecretValue接口获取凭据值。

如果不指定版本号或版本状态,则KMS默认返回被标记为ACSCurrent的版本凭据值。

如果凭据使用了用户指定的密钥来保护凭据值,则需要调用者同时具备相应主密钥的kms:Decrypt权限。

本文将提供一个示例,获取一个名为secret001凭据的凭据值,返回结果显示凭据值SecretDatatestdata1

调试

您可以在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凭据、PolarDB凭据、Redis/Tair凭据、RAM凭据和ECS凭据只能获取ACSPrevious和ACSCurrent对应版本的凭据值。
VersionId String v1

版本号。

说明 RDS凭据、PolarDB凭据、Redis/Tair凭据、RAM凭据和ECS凭据不支持指定VersionId,设置该参数将被忽略。
FetchExtendedConfig Boolean true

是否获取凭据的拓展配置。取值:

  • true:获取
  • false(默认值):不获取
说明 通用凭据不支持拓展配置,设置该参数将被忽略。
DryRun String false

是否开启DryRun模式。

  • true:开启
  • false(默认值):关闭

DryRun模式用于测试API调用,验证您是否具有相应资源的权限,以及请求参数是否配置正确。DryRun模式开启后,KMS会始终返回失败并提示失败原因。失败原因包含如下:

  • DryRunOperationError:不配置DryRun参数时,请求会成功。
  • ValidationError:请求中指定的参数有误。
  • AccessDeniedError:您无权在KMS资源上执行该操作。

关于公共请求参数的详情,请参见公共参数

返回数据

名称

类型

示例值

描述

SecretDataType String binary

凭据值类型。取值:

  • text
  • binary
CreateTime String 2024-02-21T15:39:26Z

创建凭据的时间。

VersionId String v1

凭据的版本号。

NextRotationDate String 2024-07-06T18:22:03Z

下一次轮转的时间。

说明 当自动轮转开启时,返回该参数。
SecretData String testdata1

凭据值。KMS将存储的密文凭据值进行解密后返回该参数。

  • 通用凭据返回您指定的凭据值。
  • RDS凭据、Redis/Tair凭据返回的凭据值满足格式:{"AccountName":"","AccountPassword":""}
  • RAM凭据返回的凭据值满足格式:{"AccessKeyId":"Adfdsfd","AccessKeySecret":"fdsfdsf","GenerateTimestamp": "2023-03-25T10:42:40Z"}
  • ECS凭据返回的凭据值满足以下格式:
    • 口令类型凭据:{"UserName":"ecs-user","Password":"H5asdasdsads****"}
    • 公私钥类型凭据(私钥格式为PEM):{"UserName":"ecs-user","PublicKey":"ssh-rsa ****mKwnVix9YTFY9Rs= imported-openssh-key","PrivateKey": "d6bee1cb-2e14-4277-ba6b-73786b21****"}
  • PolarDB凭据返回的凭据值满足格式:{"AccountName":"","AccountPassword":""}
RotationInterval String 604800s

凭据自动轮转的周期。

格式为integer[unit],其中integer表示时间长度,unit表示时间单位。 unit取值:s(秒)。例如:7天的轮转周期为604800s。

说明 当自动轮转开启时,返回该参数。
ExtendedConfig String {\"SecretSubType\":\"SingleUser\", \"DBInstanceId\":\"rm-uf667446pc955****\", \"CustomData\":{} }

凭据的拓展配置。

说明 当FetchExtendedConfig取值为true时,仅RDS凭据、PolarDB凭据、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

是否开启了自动轮转。取值:

  • Enabled:开启了自动轮转。
  • Disabled:未开启自动轮转。
  • Invalid:轮转状态异常,KMS无法为您自动轮转。
说明 仅RDS凭据、PolarDB凭据、Redis/Tair凭据、RAM凭据或ECS凭据返回该参数。
SecretType String Generic

凭据类型。取值:

  • Generic:通用凭据。
  • Rds:RDS凭据。
  • Redis:Redis/Tair凭据。
  • RAMCredentials:RAM凭据。
  • ECS:ECS凭据。
  • PolarDB:PolarDB凭据。
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. 资源找不到

访问错误中心查看更多错误码。