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

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

最終更新日:Mar 21, 2025

Alibaba Cloud API を呼び出す際、RAM ユーザーの認証は AccessKey によって実行されます。AccessKey には、AccessKey ID と AccessKey Secret が含まれます。 AccessKey をハードコーディングすることによるセキュリティリスクを防ぐために、Key Management Service(KMS)シークレット(RAM シークレットとも呼ばれます)を使用して AccessKey を管理できます。このトピックでは、RAM シークレットの管理と使用方法について説明します。

機能の説明

KMS を使用して RAM シークレットを管理する場合、アプリケーションに AccessKey ペアを設定する必要はありません。設定する必要があるのはシークレット名だけで、それを使用して操作の呼び出しに有効な AccessKey ペアを取得できます。 また、RAM シークレットをローテーションして、AccessKey ペアの漏洩のリスクを軽減することもできます。

image.png

制限事項

RAM ユーザーの AccessKey ペアのみを管理できます。 Alibaba Cloud アカウントの AccessKey ペアは管理できません。

RAM シークレットのローテーション

ローテーション中、RAM は AccessKey ペアを作成し、古い AccessKey ペアを削除します。 KMS は新しい AccessKey をシークレット値として書き込み、古い AccessKey ペアに関連付けられているシークレット値を削除します。シークレットのローテーションでは、2 つの方法がサポートされています。次の表に、これらの方法を示します。

ローテーション方法

ローテーション期間

シナリオ

自動ローテーション

約 2 日

RAM シークレットはアプリケーションに統合されています。 アプリケーションは定期的に RAM シークレットを読み取ります。

AccessKey ペアの漏洩のリスクを最小限に抑えるために、自動ローテーション期間を 3 か月以内に指定することをお勧めします。

即時ローテーション

10 分から 2 日までのローテーション期間を指定できます。

RAM シークレットが漏洩した場合、ローテーション期間を 30 分に指定することをお勧めします。 他のシナリオでは、2 日のローテーション期間が最適です。

  • RAM シークレットが漏洩した場合、緊急対応としてシークレットをすぐにローテーションできます。

  • アプリケーションが RAM シークレットを取得するときに、手動でローテーションをトリガーできます。

重要
  • RAM シークレットがローテーションされている場合は、そのシークレットに関連付けられている RAM ユーザーを削除しないでください。 これは、シークレットのローテーションの失敗を防ぐのに役立ちます。

  • RAM シークレットがローテーションされている場合は、自動ローテーションポリシーを設定したり、即時ローテーションを実行したりすることはできません。

前提条件

説明

現在の RAM アカウントに関連付けられている Alibaba Cloud アカウントに、AliyunKMSManageRAMCredentialsRole サービスロールまたは AliyunKMSManagedRAMCrendentialsRole サービスロールがすでに存在する場合は、ステップ 1:RAM ユーザーの AccessKey ペアを管理するための権限を KMS に付与するをスキップします。 KMS には、デフォルトで RAM ユーザーの AccessKey ペアを管理するための権限があります。

ステップ 1:RAM ユーザーの AccessKey ペアを管理するための権限を KMS に付与する

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

  2. RAM Secrets タブをクリックし、インスタンス管理 ドロップダウンリストから必要なインスタンス ID を選択し、資格情報の作成 をクリックします。

  3. [RAM シークレットの作成] パネルで、Authorize KMS to access AccessKey pairs. をクリックします。

  4. AliyunKMSManageRAMCredentialsRole または AliyunKMSManagedRAMCrendentialsRole を持たない RAM 管理者ユーザーを使用している場合は、[クラウド リソース アクセス承認] ページで [承認に同意する] をクリックします。 そうでない場合は、[クラウド リソース アクセス承認] リンクを RAM 管理者または Alibaba Cloud アカウントに送信して承認を行います。

    承認が完了すると、システムは自動的にサービスロール AliyunKMSManageRAMCredentialsRole を作成し、権限ポリシー AliyunKMSManageRAMCredentialsRolePolicy をアタッチします。 KMS はこのロールを使用して RAM シークレットを管理し、RAM シークレットのローテーションなどのタスクを実行します。

RAM コンソールにログインして、サービスロールとポリシーの詳細を表示できます。 詳細については、「RAM ロールの情報を表示する」および「ポリシーの基本情報を表示する」をご参照ください。

承認が完了したら、RAM シークレット作成ページに戻り、更新ボタンをクリックできます。 その後、RAM シークレットを作成できます。

ステップ 2:RAM シークレットを作成する

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

  2. RAM Secrets タブを クリック し、インスタンス管理 ドロップダウン リスト から必要なインスタンス ID を選択し、資格情報の作成 を クリック します。次に、パラメーターを構成し、[OK] を クリック します。

    パラメーター

    説明

    Select RAM User

    シークレットを作成する RAM ユーザー。 選択した RAM ユーザーは、少なくとも 1 つの AccessKey ペアを持っている必要があります。 詳細については、「AccessKey ペアを作成する」をご参照ください。

    シークレット名は、RAM ユーザーの名前に基づいて自動的に生成されます。 シークレット名は、現在のリージョン内で一意です。

    Secret Value

    RAM ユーザーの AccessKey Secret。

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

    CMK

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

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

    • RAM ユーザーまたは RAM ロールの場合は、キーを使用して GenerateDataKey 操作を呼び出すための権限を持っている必要があります。

    タグ

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

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

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

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

    自動ローテーション

    シークレットの自動ローテーションを有効にするかどうかを指定します。

    Days (7 Days to 365 Days)

    シークレットの自動ローテーションの間隔。 この設定は、自動ローテーションを有効にする場合にのみ必要です。

    KMS は、このパラメーターの値に基づいて定期的にシークレットを更新します。

    説明

    シークレットの説明。

    ポリシー設定

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

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

ステップ 3:RAM シークレットをアプリケーションに統合する

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

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

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

  • エンドポイント:

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

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

方法

適用可能なシナリオ

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

RAM シークレット プラグイン

  • 共有ゲートウェイ

  • 専用ゲートウェイ

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# のみ)で開発されています。

専用ゲートウェイ

次のステップ

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

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

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

  3. シークレットローテーションポリシーを設定します。

    • 自動ローテーション:ページの右上隅にある Configure Rotation Policy をクリックし、[自動ローテーション] を有効または無効にして、[OK] をクリックします。OK

    • 即時ローテーション: ページの右上隅にある Rotate Now をクリックします。Configure Rotation Policy ダイアログボックスで、Rotation Window パラメーターを 10 分から 2 日までの値に設定し、[OK] をクリックします。

RAM シークレットを削除する

シークレットをすぐに削除することも、スケジュールされたタスクを作成してシークレットを削除することもできます。 RAM シークレットを削除すると、RAM シークレットは Secrets Manager からのみ削除されます。 RAM シークレットに関連付けられている RAM ユーザーの AccessKey ペアは、RAM からは削除されません。

警告

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

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

  2. [RAM シークレット] タブをクリックし、[インスタンス ID] ドロップダウンリストから必要なインスタンス ID を選択し、削除するシークレットを見つけ、[削除のスケジュール][アクション] 列の をクリックします。

  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閉じる

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

アカウントを確認する

アカウント確認機能を使用すると、RAM シークレットによって示される RAM ユーザーが存在するかどうか、および RAM ユーザーの AccessKey ID がシークレットに保存されているものと同じかどうかを確認できます。

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

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

  3. Versions セクションで、Check Account をクリックします。 確認が完了したら、確認結果を表示します。

よくある質問