翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 イベントのログ記録」を参照してください。
シークレットを他のリージョンにレプリケートするには (コンソール)
Secrets Manager コンソール (https://console.aws.amazon.com/secretsmanager/
) を開きます。 -
シークレットのリストから、自分のシークレットを選択します。
-
シークレットの詳細ページの [レプリケーション] タブで、次のいずれかを実行します。
-
シークレットがレプリケートされない場合は、[Replicate secret] (シークレットをレプリケート) をクリックします。
-
シークレットがレプリケートされている場合は、[Replicate secret] (シークレットをレプリケート) セクションで、[Add Regions] (リージョンを追加) をクリックします。
-
-
[Add replica regions] (レプリカリージョンの追加) ダイアログボックスで、次の操作を行います。
-
[AWS Region] (AWS リージョン) で、シークレットのレプリケート先となるリージョン選択します。
-
(オプション) [Encryption key] (暗号化キー) で、シークレットの暗号化に使用する KMS キーを選択します。このキーは、レプリカのリージョンに存在する必要があります。
-
(オプション) 別のリージョンを追加するには、[Add more regions] (リージョンを追加) をクリックします。
-
[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:GenerateDataKey
と kms: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」を参照してください。