AWS Secrets Manager シークレットを他の AWS リージョンにレプリケートする - AWS Secrets Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Secrets Manager シークレットを他の AWS リージョンにレプリケートする

シークレットを複数の AWS リージョン レプリケートし、リージョンのアクセスと低レイテンシーの要件を満たすために、これらのリージョンに分散するアプリケーションをサポートします。後で必要な場合は、レプリカシークレットをスタンドアロンに昇格させ、レプリケーション用に個別に設定できます。Secrets Manager は、指定したリージョン全体で、タグ、リソースポリシー、シークレットの更新など、暗号化されたシークレットデータおよびメタデータをレプリケートします。

複製されたシークレットの ARN は、リージョンを除いてプライマリシークレットと同じです。以下にその例を示します。

  • プライマリシークレット: arn:aws:secretsmanager:Region1:123456789012:secret:MySecret-a1b2c3

  • レプリカシークレット: arn:aws:secretsmanager:Region2:123456789012:secret:MySecret-a1b2c3

レプリカシークレットの料金情報については、AWS Secrets Manager の料金を参照してください。

他のリージョンにレプリケートされているソースデータベースのデータベース認証情報を保存すると、シークレットにはソースデータベースの接続情報が含まれます。その後、シークレットをレプリケートすると、レプリカはソースシークレットのコピーとなり、同じ接続情報が含まれます。リージョン接続情報のシークレットにキー/値ペアを追加できます。

プライマリシークレットのローテーションを設定すると、Secrets Manager はプライマリリージョンでシークレットのローテーションを実行し、新しいシークレット値が関連するすべてのレプリカシークレットに反映されます。すべてのレプリカシークレットのローテーションを個別に管理する必要はありません。

シークレットは、すべての有効な AWS リージョンでレプリケーションできます。ただし、Secrets Manager を特別な AWS リージョン (AWS GovCloud (US) または中国のリージョン等) で使用する場合、設定できるのは、それらの特別な AWS リージョン内にあるシークレットおよびそのレプリカのみとなります。有効な AWS リージョンにあるシークレットを特別なリージョンでレプリケートしたり、特別なリージョンのシークレットを商用リージョンでレプリケーションしたりすることはできません。

シークレットを別のリージョンにレプリケートするには、そのリージョンを有効にする必要があります。詳細については、「AWS リージョンの管理」を参照してください。

シークレットが保存されているリージョンで Secrets Manager エンドポイントを呼び出すことで、レプリケートせずに複数のリージョンでシークレットを使用できます。; エンドポイントのリストについては、「AWS Secrets Manager エンドポイント」を参照してください。レプリケーションを使用してワークロードの耐障害性を向上させるには、「AWS でのディザスタリカバリ (DR) アーキテクチャ、パートI:クラウドでのリカバリの戦略」を参照してください。

Secrets Manager は、シークレットをレプリケートすると CloudTrail ログエントリを生成します。詳細については、「AWS CloudTrail による AWS Secrets Manager イベントのログ記録」を参照してください。

シークレットを他のリージョンにレプリケートするには (コンソール)
  1. Secrets Manager コンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  2. シークレットのリストから、自分のシークレットを選択します。

  3. シークレットの詳細ページの [レプリケーション] タブで、次のいずれかを実行します。

    • シークレットがレプリケートされない場合は、[Replicate secret] (シークレットをレプリケート) をクリックします。

    • シークレットがレプリケートされている場合は、[Replicate secret] (シークレットをレプリケート) セクションで、[Add Regions] (リージョンを追加) をクリックします。

  4. [Add replica regions] (レプリカリージョンの追加) ダイアログボックスで、次の操作を行います。

    1. [AWS Region] (AWS リージョン) で、シークレットのレプリケート先となるリージョン選択します。

    2. (オプション) [Encryption key] (暗号化キー) で、シークレットの暗号化に使用する KMS キーを選択します。このキーは、レプリカのリージョンに存在する必要があります。

    3. (オプション) 別のリージョンを追加するには、[Add more regions] (リージョンを追加) をクリックします。

    4. [Replicate] (レプリケート) を選択します。

    シークレットの詳細ページに戻ります。[Replicate Secret] (シークレットをレプリケート) セクションで、[Replication Status] (レプリケーションステータス) がそれぞれのリージョンを表示します。

AWS CLI

例 シークレットを異なるリージョンにレプリケートする

次に、シークレットをeu-west-3 にレプリケートする、replicate-secret-to-regions の例を示します。このレプリカは、AWS マネージドキー aws/secretsmanager により暗号化されます。

aws secretsmanager replicate-secret-to-regions \ --secret-id MyTestSecret \ --add-replica-regions Region=eu-west-3

AWS SDK

シークレットをレプリケートするには、ReplicateSecretToRegions コマンドを使用してください。詳細については、「AWS SDK」を参照してください。

トラブルシューティング

レプリケーションが失敗する原因として、次のようなものがあります。

選択したリージョンに同じ名前のシークレットがある

この問題を解決するには、レプリカリージョンにある重複した名前のシークレットを上書きします。レプリケーションを再試行し、[レプリケーションを再試行] ダイアログボックスで [上書き]をクリックします。

KMS キーにレプリケーションを完成させるためのアクセス許可がない

Secrets Manager は、レプリカリージョンにある新しい KMS キーを使用して再暗号化する前に、まずシークレットを復号します。プライマリリージョンの暗号化キーに対する kms:Decrypt アクセス許可がない場合、このエラーが発生します。aws/secretsmanager 以外の KMS キーでレプリケートされたシークレットを暗号化するには、キーに kms:GenerateDataKeykms:Encrypt が必要です。KMS キーのアクセス許可 を参照してください。

KMS キーが無効になっているか、見つかりません

プライマリリージョンの暗号化キーが無効化または削除されている場合、Secrets Manager はシークレットをレプリケートできません。このエラーは、暗号化キーを変更した場合でも、無効化または削除された暗号化キーで暗号化されたカスタムラベルが付いたバージョンがシークレットにある場合に発生することがあります。Secrets Manager が暗号化を行う方法については、「でのシークレット暗号化と復号化 AWS Secrets Manager」を参照してください。この問題を回避するには、Secrets Manager が現在の暗号化キーで暗号化するようにシークレットバージョンを再作成できます。詳細については、「シークレットの暗号化キーを変更する」を参照してください。その後でレプリケーションを再試行します。

aws secretsmanager put-secret-value \ --secret-id testDescriptionUpdate \ --secret-string "SecretValue" \ --version-stages "MyCustomLabel"

レプリケーションを行うリージョンが有効化されていない

リージョンを有効化する方法については、「AWS Account Management リファレンスガイド」の「Managing AWS Regions」を参照してください。