本文以命令行工具(CLI)为例,为您介绍如何管理通用凭据(Generic Secrets)。您也可以通过阿里云控制台或API管理通用凭据。
创建通用凭据
- 示例1:创建通用凭据时不指定加密密钥
执行以下命令调用CreateSecret接口创建通用凭据,KMS凭据管家会使用系统默认加密的方式保护凭据值。
aliyun kms CreateSecret \ --SecretName db_cred \ --SecretData "{\"uname\": \"alice\", \"pwd\": \"12****\"}" \ --VersionId v1
KMS返回以下结果:
{ "Arn": "acs:kms:cn-shanghai:111760096384****:secret/db_cred", "RequestId": "ef0e4234-085c-4676-9ab6-159f2338aaf0", "SecretName": "db_cred", "SecretType": "Generic", "VersionId": "v1" }
- 示例2:创建通用凭据时指定加密密钥
执行以下命令调用CreateSecret接口创建通用凭据,KMS凭据管家使用指定的用户主密钥(CMK)对凭据进行加密。
aliyun kms CreateSecret \ --SecretName ssh_key \ --SecretData ssh-key-blob \ --VersionId v1 \ --EncryptionKeyId Example-CMK-Id
说明- KMS凭据管家使用指定的CMK产生数据密钥,用于加密保护凭据的明文数据。
- 如果创建通用凭据时指定加密密钥,CreateSecret的调用者还需要具备指定CMK的kms:GenerateDataKey权限。
KMS返回以下结果:
{ "Arn": "acs:kms:cn-shanghai:111760096384****:secret/ssh_key", "RequestId": "ef0e4234-085c-4676-9ab6-159f2338aaf0", "SecretName": "ssh_key", "SecretType": "Generic", "VersionId": "v1" }
查询通用凭据列表
执行以下命令调用ListSecrets接口查询通用凭据列表。
aliyun kms ListSecrets
KMS返回以下结果:
{
"SecretList": {
"Secret": [
{
"SecretName": "db_cred",
"SecretType": "Generic",
"CreateTime": "2020-01-22T03:55:18Z",
"UpdateTime": "2020-01-22T03:55:18Z"
},
{
"SecretName": "ssh_key",
"SecretType": "Generic",
"CreateTime": "2020-01-22T03:57:09Z",
"UpdateTime": "2020-01-22T03:57:09Z"
}
]
},
"RequestId": "75aebbde-be68-4cab-ba6e-e4925b61****",
"PageNumber": 1,
"PageSize": 10,
"TotalCount": 2
}
查询通用凭据的凭据值
执行以下命令调用GetSecretValue接口查询通用凭据的凭据值。
aliyun kms GetSecretValue --SecretName ssh_key
KMS返回以下结果:
{
"CreateTime": "2021-07-08T05:51:50Z",
"RequestId": "1415f5c7-ecb2-495e-8051-4cd466022c1f",
"SecretData": "{\"test\":\"test\"}",
"SecretDataType": "text",
"SecretName": "ssh_key",
"SecretType": "Generic",
"VersionId": "v1",
"VersionStages": {
"VersionStage": [
"ACSCurrent"
]
}
}
查询通用凭据元数据信息
执行以下命令调用DescribeSecret接口查询通用凭据元数据信息。
aliyun kms DescribeSecret --SecretName ssh_key
KMS返回以下结果:
{
"Arn": "acs:kms:cn-shanghai:111760096384****:secret/ssh_key",
"SecretName": "ssh_key",
"SecretType": "Generic",
"EncryptionKeyId": "Example-CMK-Id",
"Description": "",
"CreateTime": "2020-01-22T03:57:09Z",
"UpdateTime": "2020-01-22T03:57:09Z",
"RequestId": "ca61398f-e61e-4552-aa7e-957955f6125s"
}
删除通用凭据
- 执行以下命令调用DeleteSecret接口删除通用凭据。
- 默认情况下,删除的凭据可以在30天内恢复。
aliyun kms DeleteSecret --SecretName ssh_key
KMS返回以下结果:
{ "SecretName": "ssh_key", "RequestId": "3e54b02b-6461-46bb-afd5-dbd29d96eead", "PlannedDeleteTime": "2020-02-21T04:24:04.58616562Z" }
- 删除凭据时,可以指定恢复窗口为7天。
aliyun kms DeleteSecret --SecretName ssh_key --RecoveryWindowInDays 7
KMS返回以下结果:
{ "SecretName": "ssh_key", "RequestId": "95ec4f18-8f97-4fd5-b7c6-1588979dse4s", "PlannedDeleteTime": "2020-01-29T04:25:14.165242211Z" }
- 删除凭据时,如果指定强制删除,则不允许恢复。
aliyun kms DeleteSecret --SecretName ssh_key --ForceDeleteWithoutRecovery true
KMS返回以下结果:
{ "SecretName": "ssh_key", "RequestId": "75efc9c3-8e21-4e38-b6e4-486886be1546", "PlannedDeleteTime": "2020-01-22T12:28:22.006884739+08:00" }
- 默认情况下,删除的凭据可以在30天内恢复。
- 执行以下命令调用RestoreSecret接口,在恢复窗口期内恢复凭据。
aliyun kms RestoreSecret --SecretName ssh_key
KMS返回以下结果:
{ "RequestId": "12770cee-92af-42f5-88e0-cbaa7e0c1254", "SecretName": "ssh_key" }
轮转通用凭据
如果您需要对凭据进行轮转,请参见轮转通用凭据。