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

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

最終更新日:Mar 19, 2025

汎用シークレットは、Key Management Service(KMS)でサポートされている基本的なシークレットです。アカウントパスワード、AccessKey ペア、OAuth シークレット、トークンなどの機密データを汎用シークレットとして保存できます。汎用シークレットは複数のバージョンを持つことができるため、シークレットを更新できます。これにより、ハードコードされたシークレットによって引き起こされる機密データの漏洩を防ぎます。このトピックでは、汎用シークレットの管理と使用方法について説明します。

汎用シークレットのローテーション

KMS では、汎用シークレットのカスタムスケジュールでの自動ローテーションを有効にすることはできません。ただし、Function Compute を使用してこの目的を果たすことができます。詳細については、「Function Compute を使用して汎用シークレットをローテーションする」をご参照ください。即時シークレットローテーションが必要な場合は、KMS コンソールを使用するか、PutSecretValue API オペレーションを呼び出すことによって、新しいバージョンのシークレット値を保存できます。

警告

各汎用シークレットは最大 10 個のバージョンを持つことができます。汎用シークレットのバージョンが 10 個を超えると、KMS はローリング方式で最も古いバージョンを自動的に削除します。

前提条件

  • KMS インスタンスが作成され、有効になっています。詳細については、「KMS インスタンスを購入して有効にする」をご参照ください。

  • シークレットの暗号化に使用する対称鍵が KMS インスタンスに作成されています。詳細については、「鍵を作成する」をご参照ください。

手順 1:汎用シークレットを作成する

汎用シークレットを作成すると、KMS はシークレットをデフォルトの ACSCurrent ステージに設定します。

  1. KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、リソース > 資格情報管理 を選択します。

  2. Generic Secrets タブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、資格情報の作成 をクリックします。表示されたパネルで、ビジネス要件に基づいてパラメーターを構成し、[OK] をクリックします。

    パラメータ

    説明

    資格情報名

    シークレットの名前。シークレット名は現在のリージョン内で一意です。

    Secret Value

    管理する機密データのタイプ。有効な値: [シークレットキー/値][プレーンテキスト]

    値の長さは 30,720 バイト(サイズで 30 KB に相当)を超えることはできません。

    Initial Version

    シークレットの初期バージョン。デフォルト値: v1。カスタムバージョン番号を指定することもできます。

    CMK

    シークレットの現在の値の暗号化に使用する鍵。

    重要
    • 鍵とシークレットは同じ KMS インスタンスに属している必要があります。鍵は対称鍵である必要があります。KMS でサポートされている対称鍵の詳細については、「鍵のタイプと仕様」をご参照ください。

    • RAM ユーザーまたは RAM ロールの場合は、鍵を使用して GenerateDataKey オペレーションを呼び出す権限を持っている必要があります。

    タグ

    シークレットに追加するタグ。タグを使用してシークレットを分類および管理できます。タグはキーと値のペアで構成されます。

    説明
    • タグキーまたはタグ値の長さは最大 128 文字で、文字、数字、スラッシュ(/)、バックスラッシュ(\)、アンダースコア(_)、ハイフン(-)、ピリオド(.)、プラス記号(+)、等号(=)、コロン(:)、アットマーク(@)、スペースを含めることができます。

    • タグキーは aliyun または acs: で始めることはできません。

    • シークレットごとに最大 20 個のキーと値のペアを設定できます。

    説明

    シークレットの説明。

    ポリシー設定

    シークレットのポリシー設定。詳細については、「概要」をご参照ください。

    デフォルトポリシーを使用し、シークレットを作成した後にビジネス要件に基づいてポリシーを変更できます。

手順 2:アプリケーションを汎用シークレットと統合する

KMS は、Secret Client、Alibaba Cloud SDK、KMS Agent、および KMS インスタンス SDK を提供して、GetSecretValue (OpenAPI) または GetSecretValue (KMS インスタンス API) (非推奨) オペレーションを呼び出して、汎用シークレットの値を取得します。

説明
  • サービスの信頼性を高めるために、アプリケーションに堅牢なエラーリトライメカニズムを実装することをお勧めします。

  • KMS は複数の認証方式を提供します。セキュリティを強化するために、ECS インスタンス RAM ロールまたは標準 RAM ロールの使用を優先することをお勧めします。

  • エンドポイント:

    • 共有ゲートウェイエンドポイント:エンドポイント をご参照ください。

    • 専用ゲートウェイエンドポイント:{INSTANCE_ID}.cryptoservice.kms.aliyuncs.com.

メソッド

適用可能なシナリオ

サポートされているゲートウェイ

Secret Client

アプリケーションは Java 8 以降、Go、または Python で開発されています。

  • 共有ゲートウェイ

  • 専用ゲートウェイ

Alibaba Cloud SDK

アプリケーションは、Java 8 以降 (Alibaba Cloud SDK V1.0 を使用した Java 6 以降)、PHP、Go、Python、.NET (C# のみ)、C++、TypeScript、および Swift をサポートしています。

  • 専用ゲートウェイ (推奨)

  • 共有ゲートウェイ

KMS Agent

  • 多くのアプリケーションが KMS にアクセスするマルチアプリケーションデプロイに最適です。

  • 標準化された HTTP API を提供し、あらゆる言語で記述されたアプリケーションをサポートします。

  • 専用ゲートウェイ (推奨)

  • 共有ゲートウェイ

KMS インスタンス SDK (非推奨)

アプリケーションは Java 8 以降、PHP、Go、Python、または .NET (C# のみ) で開発されています。

専用ゲートウェイ

関連操作

汎用シークレットをローテーションする

汎用シークレットを作成するときに、ローテーション情報を設定することはできません。即時ローテーションが必要な場合は、KMS コンソールを使用するか、PutSecretValue API オペレーションを呼び出すことによって、新しいシークレットバージョンを保存する必要があります。

  1. KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、リソース > 資格情報管理 を選択します。

  2. Generic Secrets タブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、目的のシークレットを見つけて、詳細 列の 操作 をクリックします。

  3. Versions セクションで、Store Secret Value をクリックします。

  4. Store Secret Value ダイアログボックスで、Version パラメーターと Secret Value パラメーターを設定し、[OK] をクリックします。

    重要

    汎用シークレットに新しいシークレットバージョンを追加すると、汎用シークレットはすぐにローテーションされます。デフォルトでは、KMS でシークレット値を取得するために使用される操作は、新しいバージョンのシークレット値を返します。

汎用シークレットを削除する

汎用シークレットを削除する前に、汎用シークレットが使用されなくなっていることを確認してください。汎用シークレットの削除をスケジュールするか、汎用シークレットをすぐに削除できます。

警告

汎用シークレットを削除する前に、汎用シークレットが使用中でないことを確認してください。使用中の汎用シークレットを削除すると、サービスエラーが発生する可能性があります。

  1. KMS コンソールにログインします。上部のナビゲーションバーで、必要なリージョンを選択します。左側のナビゲーションウィンドウで、資格情報管理 をクリックします。

  2. Generic Secrets タブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、目的のシークレットを見つけて、Schedule Deletion 列の 操作 をクリックします。

  3. Schedule Deletion ダイアログボックスで、シークレットを削除する方法を選択し、[OK] をクリックします。

    • Schedule Deletion を選択した場合は、[保持期間] (7 ~ 30 日) を設定します。スケジュールされた削除期間が終了すると、KMS はシークレットを削除します。

    • Delete Immediately を選択すると、システムはすぐにシークレットを削除します。

    スケジュールされた削除期間中は、操作 列の [OK] をクリックして削除をキャンセルできます。

シークレットのタグを追加する

タグを使用してシークレットを分類および管理できます。タグはキーと値のペアで構成されます。

説明
  • タグキーまたはタグ値の長さは最大 128 文字で、文字、数字、スラッシュ(/)、バックスラッシュ(\)、アンダースコア(_)、ハイフン(-)、ピリオド(.)、プラス記号(+)、等号(=)、コロン(:)、アットマーク(@)、スペースを含めることができます。

  • タグキーは aliyun または acs: で始めることはできません。

  • シークレットごとに最大 20 個のキーと値のペアを設定できます。

シークレットのタグを追加する

ソリューション

説明

方法 1:シークレット ページでタグを追加する

  1. KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、リソース > 資格情報管理 を選択します。

  2. シークレットのタイプに基づいてタブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、目的のシークレットを見つけて、[タグ] 列の image.png アイコンをクリックします。

  3. [追加] をクリックします。[タグの編集] ダイアログボックスで、複数の 追加タグの編集[タグキー][タグ値] を入力し、[OK] をクリックします。表示されるメッセージで、[閉じる] をクリックします。OK閉じる

    [タグの編集] ダイアログボックスでは、タグ値を変更したり、複数のタグを一度に削除したりできます。タグの編集

方法 2:シークレットの詳細 ページでタグを追加する

  1. KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、リソース > 資格情報管理 を選択します。

  2. シークレットのタイプに基づいてタブをクリックします。インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、目的のシークレットを見つけて、詳細 列の 操作 をクリックします。

  3. [シークレットの詳細] ページで、image.pngTag の横にある アイコンをクリックします。

  4. [タグの編集] ダイアログボックスで、複数の タグの編集[タグキー][タグ値] を入力し、[OK] をクリックします。表示されるメッセージで、[閉じる] をクリックします。OK閉じる

    [タグの編集] ダイアログボックスでは、タグ値を変更したり、複数のタグを一度に削除したりできます。タグの編集

複数のシークレットのタグを一度に設定する

  1. KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、リソース > 資格情報管理 を選択します。

  2. シークレットのタイプに基づいてタブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、シークレットリストから目的のシークレットを選択します。

    • タグを追加する:シークレットリストの下部にある [タグの追加] をクリックします。[タグの追加] ダイアログボックスで、複数の タグを追加タグを追加[タグキー][タグ値] を入力し、[OK] をクリックします。表示されるメッセージで、[閉じる] をクリックします。OK閉じる

    • タグを削除する:シークレットリストの下部にある [タグの削除] をクリックします。[一括削除] ダイアログボックスで、削除するタグを選択し、[削除] をクリックします。表示されるメッセージで、[閉じる] をクリックします。タグの削除[一括削除]削除閉じる

FAQ

シークレットを使用できない場合、またはシークレット関連の API オペレーションを呼び出したときに「Rejected.Unavailable」が返された場合はどうすればよいですか?