このトピックでは、Alibaba Cloud CLIを使用してジェネリックシークレットを管理する方法について説明します。 また、Key Management Service (KMS) コンソールで、またはAPI操作を呼び出してジェネリックシークレットを管理することもできます。

ジェネリックシークレットの作成

  • 例1: 暗号化キーを指定しない汎用シークレットの作成

    次のコマンドを実行してCreateSecret操作を呼び出し、暗号化キーを指定しないジェネリックシークレットを作成します。 Secrets Managerは、デフォルトの顧客マスターキー (CMK) を使用してシークレット値を暗号化します。

     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操作を呼び出し、暗号化キーを指定してジェネリックシークレットを作成します。 Secrets Managerは、指定されたCMKを使用してシークレット値を暗号化します。

     aliyun kms CreateSecret \
        -- SecretName ssh_key \
        -- SecretData ssh-key-blob \
        -- VersionId v1 \
        -- EncryptionKeyIdの例-CMK-Id
    • Secrets Managerは、指定されたCMKを使用してデータキーを生成します。 データ鍵は、秘密値の平文を暗号化するために使用される。
    • CreateSecret操作を呼び出してジェネリックシークレットを作成するときにCMKを指定する場合は、指定した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": {
        "秘密": [
            {
                "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": "テキスト" 、
  "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": "例-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日間の回復期間を指定します。 シークレットが削除されてから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"
      }
  • 次のコマンドを実行してRestoreSecret操作を呼び出し、リカバリウィンドウ内でシークレットをリカバリします。
    aliyun kms RestoreSecret -- SecretName ssh_key  

    KMSは次の結果を返します。

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

ジェネリックシークレットの回転

ジェネリックシークレットをローテーションする方法の詳細については、「ジェネリックシークレットの回転」をご参照ください。