すべてのプロダクト
Search
ドキュメントセンター

Key Management Service:汎用シークレットの管理

最終更新日:Apr 01, 2026

Alibaba Cloud CLI を使用して、Key Management Service (KMS) の Secrets Manager における汎用シークレットの完全なライフサイクル (作成、一覧表示、値の取得、メタデータの取得、削除、復元、ローテーション) を管理します。

KMS コンソールから、または API オペレーションを直接呼び出して汎用シークレットを管理するには、KMS コンソールガイドAPI リファレンスをご参照ください。

操作の概要

操作CLI コマンド説明
作成CreateSecretシークレットを作成し、その初期バージョンを保存します
一覧表示ListSecrets現在のリージョン内のすべてのシークレットを一覧表示します
値の取得GetSecretValue現在のバージョンのプレーンテキスト値を取得します
メタデータの取得DescribeSecret値を復号せずに構成メタデータを取得します
削除DeleteSecretシークレットの削除をスケジュールするか、即時削除します
復元RestoreSecret復旧期間内に保留中の削除をキャンセルします

前提条件

開始する前に、以下が完了していることを確認してください:

  • Alibaba Cloud CLI がインストールおよび設定済みであること

  • (カスタム暗号化キーの場合のみ必須) カスタマーマスターキー (CMK) に対する kms:GenerateDataKey 権限

汎用シークレットの作成

Secrets Manager は、各シークレット値を CMK で暗号化します。設定不要の暗号化にはデフォルトの CMK を使用するか、明示的なキー管理のために独自の CMK を指定します。

カスタム暗号化キーを使用しない場合

暗号化キーが指定されていない場合、Secrets Manager はデフォルトの CMK を使用してシークレット値を暗号化します。

aliyun kms CreateSecret \
    --SecretName db_cred \
    --SecretData "{\"uname\": \"alice\", \"pwd\": \"12****\"}" \
    --VersionId v1

レスポンスの例:

{
  "Arn": "acs:kms:cn-shanghai:111760096384****:secret/db_cred",
  "RequestId": "ef0e4234-085c-4676-9ab6-159f2338aaf0",
  "SecretName": "db_cred",
  "SecretType": "Generic",
  "VersionId": "v1"
}

カスタム暗号化キーを使用する場合

暗号化キーを指定すると、Secrets Manager は CMK からデータキーを生成し、そのデータキーを使用してシークレット値を暗号化します。

指定された CMK に対する kms:GenerateDataKey 権限が必要です。
aliyun kms CreateSecret \
    --SecretName ssh_key \
    --SecretData ssh-key-blob \
    --VersionId v1 \
    --EncryptionKeyId Example-CMK-Id

レスポンスの例:

{
  "Arn": "acs:kms:cn-shanghai:111760096384****:secret/ssh_key",
  "RequestId": "ef0e4234-085c-4676-9ab6-159f2338aaf0",
  "SecretName": "ssh_key",
  "SecretType": "Generic",
  "VersionId": "v1"
}

汎用シークレットの一覧表示

現在のリージョンにおいて、ご利用の Alibaba Cloud アカウント内のすべての汎用シークレットをページネーション付きで返します。

aliyun kms ListSecrets

レスポンスの例:

{
    "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
}

シークレット値の取得

シークレットの現在のバージョンのプレーンテキスト値を取得します。

aliyun kms GetSecretValue --SecretName ssh_key

レスポンスの例:

{
  "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"
    ]
  }
}

VersionStages.VersionStage は、返されたバージョンのライフサイクルステージを示します。ACSCurrent は、これがアクティブなバージョンであることを示します。

シークレットのメタデータの取得

シークレット値を復号せずに、シークレットの構成メタデータ (ARN、暗号化キー、タイムスタンプなど) を返します。

aliyun kms DescribeSecret --SecretName ssh_key

レスポンスの例:

{
    "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 は論理削除を実行します。シークレットは復旧期間に入り、その期間中に RestoreSecret を使用して復元できます。強制削除は、復旧オプションなしでシークレットを完全に削除します。

シナリオフラグ復旧
デフォルトの復旧期間*(なし)*30 日以内
カスタムの復旧期間--RecoveryWindowInDays <days>指定された日数以内
復旧不可--ForceDeleteWithoutRecovery true復旧できません

デフォルトの復旧期間での削除

シークレットの 30 日後の完全削除をスケジュールします。PlannedDeleteTime の前であればいつでも復元できます。

aliyun kms DeleteSecret --SecretName ssh_key

レスポンスの例:

{
    "SecretName": "ssh_key",
    "RequestId": "3e54b02b-6461-46bb-afd5-dbd29d96eead",
    "PlannedDeleteTime": "2020-02-21T04:24:04.58616562Z"
}

PlannedDeleteTime は復旧の期限です。この時刻より前に RestoreSecret を呼び出して、削除をキャンセルしてください。

カスタムの復旧期間での削除

指定された日数が経過した後の削除をスケジュールします。以下の例では、7 日間の復旧期間を設定しています。

aliyun kms DeleteSecret --SecretName ssh_key --RecoveryWindowInDays 7

レスポンスの例:

{
    "SecretName": "ssh_key",
    "RequestId": "95ec4f18-8f97-4fd5-b7c6-1588979dse4s",
    "PlannedDeleteTime": "2020-01-29T04:25:14.165242211Z"
}

強制削除 (復旧不可)

シークレットを即時かつ完全に削除します。この操作は元に戻せません。

警告

強制削除は元に戻せません。続行する前に、シークレットが不要になったことを確認してください。

aliyun kms DeleteSecret --SecretName ssh_key --ForceDeleteWithoutRecovery true

レスポンスの例:

{
    "SecretName": "ssh_key",
    "RequestId": "75efc9c3-8e21-4e38-b6e4-486886be1546",
    "PlannedDeleteTime": "2020-01-22T12:28:22.006884739+08:00"
}

削除されたシークレットの復元

保留中の削除をキャンセルし、シークレットをアクティブな状態に復元します。これは復旧期間内でのみ機能します。PlannedDeleteTime を過ぎると、シークレットは復旧できません。

aliyun kms RestoreSecret --SecretName ssh_key

レスポンスの例:

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

次のステップ