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

Key Management Service:ApsaraDB for Redis/Tairシークレットの管理と使用

最終更新日:Feb 07, 2025

ApsaraDB for RedisデータベースまたはApsaraDB for Redis Enhanced Edition (Tair) データベースのアカウントは、Key Management Service (KMS) のApsaraDB for Redis/Tairシークレットで管理できます。 この場合、SDKをアプリケーションに統合すると、アプリケーションは動的にKMSからシークレットを取得してデータベースにログインできます。 シークレットローテーションを設定して、アカウントリークのリスクを減らすことができます。 このトピックでは、ApsaraDB for Redis/Tairシークレットを管理および使用する方法について説明します。

説明

ApsaraDB for Redis/Tairシークレットを使用する場合、アプリケーションで静的データベースアカウントを構成する必要はありません。 KMSでデータベースのApsaraDB for Redis/Tairシークレットを作成した後、アプリケーションはGetSecretValue操作を呼び出して、データベースにアクセスするためのシークレットを取得できます。

新しいApsaraDB for RedisまたはTairアカウントは、デュアルアカウントモードでのみApsaraDB for Redis/Tairシークレットで管理できます。 既存のアカウントは管理できません。 KMSでApsaraDB for Redis/Tairシークレットを作成する場合、カスタムデータベースアカウントを設定する必要があります。 この場合、KMSはApsaraDB for RedisまたはTairの操作を呼び出して、同じ権限とパスワードを持つ2つのアカウントを作成します。 例として、Tair (Redis OSS-compatible) を取り上げます。 userユーザー名プレフィックスを入力すると、userおよびuser _cloneという名前のアカウントが作成されます。 のシークレットのバージョンステージラベルユーザーアカウントはACSCurrentのシークレットのバージョンステージラベルuser_cloneアカウントはACSPrevious. アカウントを表示するには、ApsaraDB for Redisコンソールにログインし、[インスタンス] ページに移動して、関連付けられているインスタンスを見つけます。 インスタンスの詳細ページで、[アカウント管理] をクリックします。

シークレットローテーションを設定した場合、2つのApsaraDB for Redisアカウントのパスワードは、シークレットローテーション中に有効です。 この場合、シークレットがローテーションされているとき、アプリケーションはまだ有効なシークレットを取得できます。 シングルアカウントモードと比較して、デュアルアカウントモードはアプリケーションの可用性を向上させます。

重要
  • KMSでApsaraDB for RedisまたはTairアカウントを管理する場合、Tair (Redis OSS-compatible) のアカウントを変更または削除しないでください。 そうしないと、サービス障害が発生する可能性があります。

  • ApsaraDB for RedisまたはTairがクラスターアーキテクチャの場合、KMSはApsaraDB for RedisまたはTairアカウントをサポートしません。 Tair (Redis OSS-compatible) のアーキテクチャの詳細については、「サービスアーキテクチャ」をご参照ください。

次のプロセスでは、例としてTair (Redis OSS-compatible) を使用して、シークレットの使用方法を説明します。

image

前提条件

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

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

  • ApsaraDB for RedisインスタンスまたはTairインスタンスが作成されています。 詳細については、「手順1: インスタンスの作成」をご参照ください。

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

ApsaraDB for Redis/Tairシークレットの作成

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

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

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

  3. シングル資格情報の作成 または Create Bulk Secrets を選択します。 次に、パラメーターを設定し、[OK] をクリックします。

    説明

    シークレットを作成すると、AliyunServiceRoleForKMSSecretsManagerForRedisサービスにリンクされたロールが自動的に作成され、AliyunServiceRolePolicyForKMSSecretsManagerForRedisポリシーがロールにアタッチされます。 KMSはシークレットを管理する役割を引き受けます。 たとえば、KMSはシークレットに保存されているアカウントのパスワードをローテーションできます。

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

    次の例では、単一のシークレットが作成されます。

    パラメーター

    説明

    データベースタイプ

    作成するデータベースシークレットの種類。 ApsaraDB for Redis Secrets を選択します。

    Secret Name

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

    ApsaraDB for Redis/Tairインスタンス

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

    アカウント管理

    デュアルアカウント管理 のみがサポートされています。

    Secret Value

    KMSを使用してApsaraDB for Redisインスタンスのアカウントを管理する場合、新しいアカウントのみを管理できます。 既存のアカウントは管理できません。

    • Account Name: ユーザー名のプレフィックスを入力します。 次に、KMSはApsaraDB for Redisを操作して、同じ権限を持つ2つのアカウントを作成します。 たとえば、user usernameプレフィックスを入力した場合、userおよびuser _cloneアカウントが作成されます。

    • Permissions: 有効な値はRead/WriteRead-Onlyです。 2つのApsaraDB for Redisアカウントには同じ権限があります。

    CMK

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

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

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

    タグ

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

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

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

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

    自動ローテーション

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

    ローテーション期間

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

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

    説明

    シークレットの説明です。

    ポリシー設定

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

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

ApsaraDB for Redis/Tairシークレットをアプリケーションに統合する

KMSは、Alibaba Cloud SDK、KMSインスタンスSDK、およびシークレットを取得するためのシークレットクライアントを提供します。 アプリケーションはSDKを使用してApsaraDB for Redis/Tairシークレットを統合できます。 SDKの詳細については、「SDKリファレンス」をご参照ください。

KMSインスタンスSDKを使用する場合は、「KMSを使用してインスタンスシークレットを管理する」を参照して操作を実行します。 別のSDKを使用する場合は、再試行メカニズムを使用してサービスの安定性を向上させることを推奨します。

説明
  • KMSインスタンスSDKの使用方法の詳細については、「KMSを使用したインスタンスシークレットの管理」をご参照ください。

  • SDKを使用して、ApsaraDB for Redis/Tairシークレットの作成やシークレットに追加されたタグの変更などの管理操作を実行する場合、Alibaba Cloud SDKのみを使用できます。

ApsaraDB for Redis/Tairシークレットの回転

KMSがApsaraDB for Redis/Tairシークレットをローテーションすると、関連付けられたアカウントのパスワードが変更されます。 アカウントのユーザー名は変更されません。 ローテーションが2分を超えても完了しない場合は、関連するApsaraDB for RedisまたはTairインスタンスと、関連するApsaraDB for RedisまたはTairアカウントが正常かどうかを確認します。

使用法ノート前に回転

  • ApsaraDB for Redis/Tairシークレットがローテーションされている場合、KMSはApsaraDB for RedisまたはTairにリクエストを送信し、関連付けられているアカウントのパスワードを変更します。 シークレットをローテーションする前に、すべてのアプリケーションがKMSからシークレットを取得していることを確認してください。 これにより、アプリケーションが使用できなくなります。

  • シークレットがローテーションされている場合は、そのシークレットに関連付けられているインスタンスとアカウントを削除しないでください。 さもなければ、回転の失敗が起こる。

  • ローテーションの前にアカウントチェックを実行し、KMSがチェックの成功を求めた後にローテーションを実行することを推奨します。 シークレットに関連付けられているApsaraDB for RedisまたはTairのインスタンスまたはアカウントを削除した場合、KMSはシークレットをローテーションできません。

回転プロセス

ApsaraDB for Redis/Tairシークレットを管理するには、デュアルアカウントモードのみを使用できます。 KMSでApsaraDB for Redis/Tairシークレットを作成する場合、カスタムApsaraDB for RedisまたはTairアカウントを設定する必要があります。 この場合、KMSはApsaraDB for RedisまたはTairの操作を呼び出して、同じ権限とパスワードを持つ2つのアカウントを作成します。

例として、Tair (Redis OSS-compatible) を取り上げます。 userユーザー名プレフィックスを入力すると、userおよびuser_cloneという名前のアカウントが作成されます。 のシークレットのバージョンステージラベルユーザーアカウントはACSCurrentのシークレットのバージョンステージラベルuser_cloneアカウントはACSPrevious.

最初のローテーションで、KMSはApsaraDB for Redis操作を呼び出して変更します のパスワードuser_cloneのシークレットのバージョンステージラベルを設定します。ユーザーアカウントを ACSPreviousのシークレットのバージョンステージラベル ユーザー_clone アカウントを ACSCurrent. KMSは、シークレットがローテーションされるたびに、2つのアカウントのパスワードを交互に変更します。 次の図は詳細を示しています。

image

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

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

  2. データベース資格情報 タブをクリックし、インスタンス管理 ドロップダウンリストからKMSインスタンスのIDを選択し、Secret Type ドロップダウンリストから [Redis/Tair] を選択し、ローテーションするシークレットを見つけて、操作 列の 詳細 をクリックします。

  3. Versions タブで、Configure Rotation をクリックして、回転ポリシーを設定します。

    • 自動回転: 自動回転をオンにする場合は、回転期間を選択する必要があります。 値の範囲は6時間から365日です。

    • 今すぐローテーション: このオプションを選択すると、KMSはすぐにシークレットをローテーションします。

次のステップ

アカウントチェックの実行

KMSは、シークレットで保護されているアカウントが、関連付けられているApsaraDB for RedisインスタンスまたはTairインスタンスに属しているかどうかを確認します。 はいの場合、秘密を回転させることができます。 いいえの場合、シークレットを削除し、別のApsaraDB for Redis/Tairシークレットを作成する必要があります。

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

  2. データベース資格情報 タブをクリックし、インスタンス管理 ドロップダウンリストからKMSインスタンスのIDを選択し、Secret Type ドロップダウンリストから [Redis/Tair] を選択し、ローテーションするシークレットを見つけて、操作 列の 詳細 をクリックします。

  3. Versions タブで、Check Account をクリックします。 チェックが完了したら、チェック結果を表示します。

ApsaraDB for Redis/Tairシークレットの削除

警告

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

すぐにシークレットを削除するか、スケジュールされたタスクを作成してシークレットを削除できます。 ApsaraDB for Redis/Tairシークレットを削除した場合、シークレットはKMSからのみ削除されます。 ApsaraDB for RedisまたはTairでは、シークレットのユーザー名とパスワードは削除されません。

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

  2. データベース資格情報 タブをクリックし、インスタンス管理 ドロップダウンリストからKMSインスタンスのIDを選択し、Secret Type ドロップダウンリストから [Redis/Tair] を選択して、削除するシークレットを見つけ、操作 列の 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] をクリックします。 表示されるメッセージで、[閉じる] をクリックします。

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

よくある質問