本文以命令行工具(CLI)為例,為您介紹如何管理通用憑據(Generic Secrets)。您也可以通過阿里云控制臺或API管理通用憑據。

創(chuàng)建通用憑據

  • 示例1:創(chuàng)建通用憑據時不指定加密密鑰

    執(zhí)行以下命令調用CreateSecret接口創(chuàng)建通用憑據,KMS憑據管家會使用系統(tǒng)默認加密的方式保護憑據值。

     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:創(chuàng)建通用憑據時指定加密密鑰

    執(zhí)行以下命令調用CreateSecret接口創(chuàng)建通用憑據,KMS憑據管家使用指定的用戶主密鑰(CMK)對憑據進行加密。

     aliyun kms CreateSecret \
        --SecretName ssh_key \
        --SecretData ssh-key-blob \
        --VersionId v1 \
        --EncryptionKeyId Example-CMK-Id
    說明
    • KMS憑據管家使用指定的CMK產生數據密鑰,用于加密保護憑據的明文數據。
    • 如果創(chuàng)建通用憑據時指定加密密鑰,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"
    }

查詢通用憑據列表

執(zhí)行以下命令調用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
}

查詢通用憑據的憑據值

執(zhí)行以下命令調用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"
    ]
  }
}

查詢通用憑據元數據信息

執(zhí)行以下命令調用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"
}

刪除通用憑據

  • 執(zhí)行以下命令調用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"
      }
  • 執(zhí)行以下命令調用RestoreSecret接口,在恢復窗口期內恢復憑據。
    aliyun kms RestoreSecret --SecretName ssh_key  

    KMS返回以下結果:

    {
        "RequestId": "12770cee-92af-42f5-88e0-cbaa7e0c1254",
        "SecretName": "ssh_key"
    }

輪轉通用憑據

如果您需要對憑據進行輪轉,請參見輪轉通用憑據