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

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

最終更新日:Jan 17, 2025

Elastic Compute Service (ECS) インスタンスのパスワードまたはSSHキーペアをkey Management Service (KMS) のECSシークレットに保存できます。 この場合、Alibaba Cloud SDK、KMSインスタンスSDK、またはシークレットSDKをアプリケーションとAlibaba Cloudサービスに統合すると、アプリケーションとAlibaba CloudサービスはKMSからシークレットを動的に取得できます。 シークレットローテーションを設定して、アカウントのパスワード漏洩のリスクを減らすことができます。 このトピックでは、ECSシークレットを管理および使用する方法について説明します。

ECSシークレットローテーション

ECSシークレットに対して自動ローテーションまたは即時ローテーションがトリガーされると、KMSはCloud Assistantにシークレットローテーションコマンドを送信します。 次に、Cloud Assistantは、ECSシークレットが作成されたECSインスタンスにインストールされているシークレットプラグインを呼び出して、シークレットのローテーションを完了します。 ECSシークレットがローテーションされた後、新しいシークレットを使用してECSインスタンスにログインできます。

重要

ECSシークレットがローテーションされると、シークレット内の関連付けられたECSインスタンスのパスワードまたはSSHキーペアが更新されます。 シークレットに関連付けられているECSインスタンスは削除しないことを推奨します。 そうすると、秘密のローテーションが失敗する可能性があります。

动态ECS凭据

使用上の注意

  • ECSインスタンス用に作成されたECSシークレットを使用するには、ECSインスタンスのパスワードとSSHキーペアを管理する権限をKMSに付与する必要があります。 ECSインスタンスにログインする必要がある場合、KMSからシークレットを取得できます。

  • KMSでECSインスタンスのパスワードとSSHキーペアを管理する場合、Elastic Compute Service (ECS) でパスワードと公開-秘密キーペアを変更または削除しないことを推奨します。 そうすると、サービス障害が発生する可能性があります。

  • ECSインスタンスの1つのパスワードまたはSSHキーペアに対して複数のECSシークレットを作成しないでください。 ECSインスタンスの単一のパスワードまたはSSHキーペアに対して複数のECSシークレットを作成し、ECSシークレットの1つがローテーションされると、ECSシークレットに保存されているパスワードまたはSSHキーペアが変更されます。 この場合、他のECSシークレットのシークレット値を使用してECSインスタンスにログインすることはできません。

制限事項

LinuxベースのECSインスタンスはパスワードとSSHキーペアのローテーションをサポートしていますが、WindowsベースのECSインスタンスはパスワードのローテーションのみをサポートしています。

前提条件

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

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

  • ECS インスタンスを作成済み。 詳細は、「インスタンスの作成」をご参照ください。

  • Resource Access Management (RAM) ユーザーまたはRAMロールを使用してECSシークレットを管理する場合、AliyunKMSSecretAdminAccessシステムポリシーがRAMユーザーまたはRAMロールにアタッチされます。 詳細については、「RAMユーザーへの権限の付与」または「RAMロールへの権限の付与」をご参照ください。

ステップ1: ECSシークレットの作成

シークレットを作成するときに、シークレットの自動ローテーションを設定できます。 これは、秘密の漏れのリスクを減らすのに役立ちます。

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

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

    パラメーター

    説明

    資格情報名

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

    Managed Instance

    Alibaba Cloudアカウント内で管理する既存のECSインスタンス。

    Managed User

    LinuxオペレーティングシステムのルートユーザーやWindowsオペレーティングシステムの管理者ユーザーなど、ECSインスタンス上の既存のユーザーの名前。

    Initial Secret Value

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

    • パスワード: ECSインスタンスへのログインに使用されるユーザーのパスワード。

    • キーペア: ECSインスタンスへのログインに使用されるユーザーのSSHキーペア。

      SSHキーペアの取得

      • ECSで作成されたSSHキーペア

        • 秘密鍵: SSHキーペアを作成すると、ブラウザは自動的に秘密鍵ファイルをコンピュータにダウンロードします。 ファイルの名前はキーペア名. pem形式を指定します。 詳細については、「SSHキーペアの作成」をご参照ください。

        • 公開キー: 公開キーに関する情報を表示する方法の詳細については、「公開キー情報の表示」をご参照ください。

      • 自動生成されたSSHキーペア

        鍵ペアが生成された後に、鍵ペアの秘密鍵と公開鍵を保存します。 たとえば、ssh-keygenコマンドを実行して、3072ビットのRivest-Shamir-Adleman (RSA) キーペアを生成して保存します。

        ssh-keygen -t RSA -b 3072 -m PEM -f ~/.ssh/sshKey_demo -N ""

        次のファイルが生成されます。

        • ~/.ssh/sshKey_demo: プライベートキーが含まれます。

        • ~/.ssh/sshKey_demo.pub: 公開キーが含まれます。

    説明

    有効なシークレット値を入力します。 無効なシークレット値を入力した場合、KMSから取得したパスワードまたはキーペアは、初めてECSシークレットがローテーションされる前にECSインスタンスにログインするために使用できません。

    CMK

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

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

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

    タグ

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

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

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

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

    自動ローテーション

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

    ローテーション期間

    自動秘密ローテーションの間隔。 この設定は、自動回転を有効にする場合にのみ必要です。 値の範囲は1時間から365日です。

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

    説明

    The description of the secret.

    ポリシー設定

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

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

    説明

    ECSシークレットを作成すると、AliyunServiceRoleForKMSSecretsManagerForECSサービスにリンクされたロールが自動的に作成され、そのロールにAliyunServiceRolePolicyForKMSSecretsManagerForECSポリシーがアタッチされます。 KMSはこのロールを引き受け、ECSシークレットを管理およびローテーションします。

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

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

KMSは、Alibaba Cloud SDK、KMSインスタンスSDK、およびシークレットを取得するためのシークレットクライアントを提供します。 シークレットクライアントは、シークレットキャッシュ機能、ベストプラクティス、およびデザインパターンをカプセル化します。 これにより、開発者がシークレットクライアントをアプリケーションに統合するプロセスが簡素化されます。 シークレットクライアントを使用することを推奨します。 詳細については、「シークレットクライアント」をご参照ください。 SDKの詳細については、「SDKリファレンス」をご参照ください。

説明

SDKを使用して、ECSシークレットの作成やECSタグの変更などの管理操作を実行する場合、Alibaba Cloud SDKのみを使用できます。

その他操作

ECSシークレットの回転

シークレットの自動ローテーションを設定して、シークレットリークのリスクを減らすことができます。 シークレットが漏洩した場合は、KMSコンソールでシークレットをすぐに回転させて、侵入のリスクを排除できます。

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

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

  3. 秘密のローテーションポリシーを設定します。

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

    • 即時回転: ページの右上隅にある Rotate Now をクリックします。 Configure Rotation Policy ダイアログボックスで、Use Custom Secrets をオンまたはオフにし、[OK] をクリックします。

      • スイッチをオンにする場合は、新しいシークレット値を指定する必要があります。

      • スイッチをオフにすると、KMSは自動的に32文字のランダムパスワードまたはRSA-2048 SSHキーペアを作成します。

ECSシークレットの削除

すぐにシークレットを削除するか、スケジュールされたタスクを作成してシークレットを削除できます。

警告

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

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

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

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

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

    • Delete Immediately を選択すると、シークレットがすぐに削除されます。

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

秘密にタグを追加する

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

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

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

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

シークレットのタグの追加

解決策

説明

方法1: Secretsページにタグを追加する

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

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

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

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

方法2: Secret Detailsページにタグを追加する

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

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

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

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

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

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

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

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

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

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

よくある質問

関連ドキュメント