汎用シークレットは、Key Management Service(KMS)でサポートされている基本的なシークレットです。アカウントパスワード、AccessKey ペア、OAuth シークレット、トークンなどの機密データを汎用シークレットとして保存できます。汎用シークレットは複数のバージョンを持つことができるため、シークレットを更新できます。これにより、ハードコードされたシークレットによって引き起こされる機密データの漏洩を防ぎます。このトピックでは、汎用シークレットの管理と使用方法について説明します。
汎用シークレットのローテーション
KMS では、汎用シークレットのカスタムスケジュールでの自動ローテーションを有効にすることはできません。ただし、Function Compute を使用してこの目的を果たすことができます。詳細については、「Function Compute を使用して汎用シークレットをローテーションする」をご参照ください。即時シークレットローテーションが必要な場合は、KMS コンソールを使用するか、PutSecretValue API オペレーションを呼び出すことによって、新しいバージョンのシークレット値を保存できます。
各汎用シークレットは最大 10 個のバージョンを持つことができます。汎用シークレットのバージョンが 10 個を超えると、KMS はローリング方式で最も古いバージョンを自動的に削除します。
前提条件
KMS インスタンスが作成され、有効になっています。詳細については、「KMS インスタンスを購入して有効にする」をご参照ください。
シークレットの暗号化に使用する対称鍵が KMS インスタンスに作成されています。詳細については、「鍵を作成する」をご参照ください。
手順 1:汎用シークレットを作成する
汎用シークレットを作成すると、KMS はシークレットをデフォルトの ACSCurrent ステージに設定します。
KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。
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.
メソッド | 適用可能なシナリオ | サポートされているゲートウェイ |
アプリケーションは Java 8 以降、Go、または Python で開発されています。 |
| |
アプリケーションは、Java 8 以降 (Alibaba Cloud SDK V1.0 を使用した Java 6 以降)、PHP、Go、Python、.NET (C# のみ)、C++、TypeScript、および Swift をサポートしています。 |
| |
|
| |
KMS インスタンス SDK (非推奨) | アプリケーションは Java 8 以降、PHP、Go、Python、または .NET (C# のみ) で開発されています。 | 専用ゲートウェイ |
関連操作
汎用シークレットをローテーションする
汎用シークレットを作成するときに、ローテーション情報を設定することはできません。即時ローテーションが必要な場合は、KMS コンソールを使用するか、PutSecretValue API オペレーションを呼び出すことによって、新しいシークレットバージョンを保存する必要があります。
KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。
Generic Secrets タブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、目的のシークレットを見つけて、詳細 列の 操作 をクリックします。
Versions セクションで、Store Secret Value をクリックします。
Store Secret Value ダイアログボックスで、Version パラメーターと Secret Value パラメーターを設定し、[OK] をクリックします。
重要汎用シークレットに新しいシークレットバージョンを追加すると、汎用シークレットはすぐにローテーションされます。デフォルトでは、KMS でシークレット値を取得するために使用される操作は、新しいバージョンのシークレット値を返します。
汎用シークレットを削除する
汎用シークレットを削除する前に、汎用シークレットが使用されなくなっていることを確認してください。汎用シークレットの削除をスケジュールするか、汎用シークレットをすぐに削除できます。
汎用シークレットを削除する前に、汎用シークレットが使用中でないことを確認してください。使用中の汎用シークレットを削除すると、サービスエラーが発生する可能性があります。
KMS コンソールにログインします。上部のナビゲーションバーで、必要なリージョンを選択します。左側のナビゲーションウィンドウで、資格情報管理 をクリックします。
Generic Secrets タブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、目的のシークレットを見つけて、Schedule Deletion 列の 操作 をクリックします。
Schedule Deletion ダイアログボックスで、シークレットを削除する方法を選択し、[OK] をクリックします。
Schedule Deletion を選択した場合は、[保持期間] (7 ~ 30 日) を設定します。スケジュールされた削除期間が終了すると、KMS はシークレットを削除します。
Delete Immediately を選択すると、システムはすぐにシークレットを削除します。
スケジュールされた削除期間中は、操作 列の [OK] をクリックして削除をキャンセルできます。
シークレットのタグを追加する
タグを使用してシークレットを分類および管理できます。タグはキーと値のペアで構成されます。
タグキーまたはタグ値の長さは最大 128 文字で、文字、数字、スラッシュ(/)、バックスラッシュ(\)、アンダースコア(_)、ハイフン(-)、ピリオド(.)、プラス記号(+)、等号(=)、コロン(:)、アットマーク(@)、スペースを含めることができます。
タグキーは aliyun または acs: で始めることはできません。
シークレットごとに最大 20 個のキーと値のペアを設定できます。
シークレットのタグを追加する
ソリューション | 説明 |
方法 1:シークレット ページでタグを追加する |
|
方法 2:シークレットの詳細 ページでタグを追加する |
|
複数のシークレットのタグを一度に設定する
KMS コンソール にログインします。上部のナビゲーションバーで、リージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。
シークレットのタイプに基づいてタブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、シークレットリストから目的のシークレットを選択します。
タグを追加する:シークレットリストの下部にある [タグの追加] をクリックします。[タグの追加] ダイアログボックスで、複数の タグを追加タグを追加[タグキー] と [タグ値] を入力し、[OK] をクリックします。表示されるメッセージで、[閉じる] をクリックします。OK閉じる
タグを削除する:シークレットリストの下部にある [タグの削除] をクリックします。[一括削除] ダイアログボックスで、削除するタグを選択し、[削除] をクリックします。表示されるメッセージで、[閉じる] をクリックします。タグの削除[一括削除]削除閉じる
FAQ
シークレットを使用できない場合、またはシークレット関連の API オペレーションを呼び出したときに「Rejected.Unavailable」が返された場合はどうすればよいですか?