

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

# リージョン間でシー AWS Secrets Manager クレットをレプリケートする
<a name="replicate-secrets"></a>

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

複製されたシークレットの ARN は、リージョンを除いてプライマリシークレットと同じです。以下にその例を示します。
+ プライマリシークレット: `arn:aws:secretsmanager:Region1:123456789012:secret:MySecret-a1b2c3`
+ レプリカシークレット: `arn:aws:secretsmanager:Region2:123456789012:secret:MySecret-a1b2c3`

レプリカシークレットの料金情報については、[AWS Secrets Manager の料金](https://aws.amazon.com/secrets-manager/pricing/)を参照してください。

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

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

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

シークレットを別のリージョンにレプリケートするには、そのリージョンを有効にする必要があります。詳細については、「[AWS リージョンの管理](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)」を参照してください。

シークレットが保存されているリージョンで Secrets Manager エンドポイントを呼び出すことで、レプリケートせずに複数のリージョンでシークレットを使用できます。; エンドポイントのリストについては、「[AWS Secrets Manager エンドポイント](asm_access.md#endpoints)」を参照してください。レプリケーションを使用してワークロードの耐障害性を向上させるには、「 [でのディザスタリカバリ (DR) アーキテクチャ AWS、パート I: クラウドでの復旧戦略](https://aws.amazon.com/blogs/architecture/disaster-recovery-dr-architecture-on-aws-part-i-strategies-for-recovery-in-the-cloud/)」を参照してください。

Secrets Manager は、シークレットをレプリケートすると CloudTrail ログエントリを生成します。詳細については、「[で AWS Secrets Manager イベントをログに記録する AWS CloudTrail](monitoring-cloudtrail.md)」を参照してください。

**シークレットを他のリージョンにレプリケートするには (コンソール)**

1. Secrets Manager コンソール ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) を開きます。

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

1. シークレットの詳細ページの **[レプリケーション]** タブで、次のいずれかを実行します。
   + シークレットがレプリケートされない場合は、**[Replicate secret]** (シークレットをレプリケート) をクリックします。
   + シークレットがレプリケートされている場合は、**[Replicate secret]** (シークレットをレプリケート) セクションで、**[Add Regions]** (リージョンを追加) をクリックします。

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

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

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

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

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

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

## AWS CLI
<a name="replicate-secrets_CLI"></a>

**Example シークレットを異なるリージョンにレプリケートする**  
次に、シークレットをeu-west-3 にレプリケートする、[https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/replicate-secret-to-regions.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/replicate-secret-to-regions.html) の例を示します。レプリカは AWS マネージドキー で暗号化されます**aws/secretsmanager**。  

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

**Example シークレットを作成し、レプリケートする**  
次の[例](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/create-secret.html)ではシークレットを作成し、eu-west-3 にレプリケートします。レプリカは で暗号化されます AWS マネージドキー **aws/secretsmanager**。  

```
aws secretsmanager create-secret \
    --name MyTestSecret \
    --description "My test secret created with the CLI." \
    --secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
    --add-replica-regions Region=eu-west-3
```

## AWS SDK
<a name="replicate-secrets_SDK"></a>

シークレットをレプリケートするには、[https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html) コマンドを使用してください。詳細については、「[AWS SDKs](asm_access.md#asm-sdks)」を参照してください。

# レプリカシークレットを のスタンドアロンシークレットに昇格させる AWS Secrets Manager
<a name="standalone-secret"></a>

レプリカシークレットは、別の のプライマリからレプリケートされるシークレットです AWS リージョン。プライマリと同じシークレット値とメタデータを持ちますが、別の KMS キーで暗号化できます。レプリカシークレットは、暗号化キーを除き、プライマリシークレットとは別に更新することはできません。レプリカシークレットを昇格すると、プライマリシークレットからレプリカシークレットが切断され、レプリカシークレットがスタンドアロンのシークレットになります。プライマリシークレットに加えた変更は、スタンドアロンのシークレットにレプリケーションされません。

プライマリシークレットが使用できなくなった場合、災害対策ソリューションとして、レプリカシークレットをスタンドアロンのインスタンスに昇格させることができます。または、レプリカのローテーションを有効にする場合は、レプリカをスタンドアロンのシークレットに昇格させることができます。

レプリカを昇格する場合は、スタンドアロンシークレットを使用するために、必ず対応するアプリケーションを更新します。

Secrets Manager では、シークレットをプロモートすると CloudTrail ログエントリを生成します。詳細については、「[で AWS Secrets Manager イベントをログに記録する AWS CloudTrail](monitoring-cloudtrail.md)」を参照してください。

**レプリカシークレットを昇格するには (コンソール)**

1. 次の場所から Secrets Manager にログインします ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/))。

1. レプリカのリージョンに移動します。

1. **[Secrets]** (シークレット) ページで、レプリカシークレットを選択します。

1. レプリカシークレットの詳細ページで、**[Promote to standalone secret]** (スタンドアロンシークレットに昇格させる) を選択します。

1. **[Promote replica to standalone secret]** (レプリカのスタンドアロンシークレットへの昇格) ダイアログボックスで、リージョンを入力してから、**[Promote replica]** (レプリカを昇格させる) を選択します。

## AWS CLI
<a name="standalone-secret-cli"></a>

**Example レプリカシークレットをプライマリに昇格させる**  
次の [https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/stop-replication-to-replica.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/stop-replication-to-replica.html) の例は、レプリカシークレットからプライマリへのリンクを削除します。このレプリカシークレットは、レプリカのリージョンでプライマリシークレットに昇格されます。[https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/stop-replication-to-replica.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/stop-replication-to-replica.html) は、レプリカリージョン内から呼び出す必要があります。  

```
aws secretsmanager stop-replication-to-replica \
    --secret-id MyTestSecret
```

## AWS SDK
<a name="standalone-secret-sdk"></a>

レプリカをスタンドアロンシークレットに昇格させるには、[https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_StopReplicationToReplica.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_StopReplicationToReplica.html) コマンドを使用します。このコマンドはレプリカシークレットリージョンから呼び出す必要があります。詳細については、「[AWS SDKs](asm_access.md#asm-sdks)」を参照してください。

# AWS Secrets Manager レプリケーションの防止
<a name="replicate-secrets-permissions"></a>

シークレットは、[https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html) を使用した場合、または [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) を使用して作成されたときにレプリケートできるため、ユーザーがシークレットをレプリケートできないようにする場合は、`AddReplicaRegions` パラメータを含むアクションを禁止することを推奨します。アクセス許可ポリシーで `Condition` ステートメントを使用して、レプリカリージョンを追加しないアクションのみを許可できます。使用できる条件ステートメントについては、次のポリシー例を参照してください。

**Example レプリケーション権限の防止する**  
次のポリシー例は、レプリカリージョンを追加しないすべてのアクションを許可する方法を示しています。これにより、ユーザーは `ReplicateSecretToRegions` と `CreateSecret` の両方を経由して、シークレットをレプリケートできなくなります。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:*",
      "Resource": "*",
      "Condition": {
        "Null": {
          "secretsmanager:AddReplicaRegions": "true"
        }
      }
    }
  ]
}
```

**Example レプリケーション権限を特定のリージョンにのみ許可する**  
次のポリシーは、以下のすべてを許可する方法を示しています。  
+ シークレットをレプリケーションなしで作成する
+ 米国およびカナダリージョンのみにレプリケーションするシークレットを作成する
+ シークレットを米国およびカナダのリージョンにのみレプリケートする   
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:CreateSecret",
        "secretsmanager:ReplicateSecretToRegions"
      ],
      "Resource": "*",
      "Condition": {
        "ForAllValues:StringLike": {
          "secretsmanager:AddReplicaRegions": [
            "us-*",
            "ca-*"
          ]
        }
      }
    }
  ]
}
```

# AWS Secrets Manager レプリケーションのトラブルシューティング
<a name="replicate-secrets_troubleshoot"></a>

AWS Secrets Manager レプリケーションは、さまざまな理由で失敗することがあります。シークレットのレプリケートに失敗した理由を確認するには、次のいずれかを実行します。
+ `DescribeSecret` API オペレーションを呼び出す
+  AWS CloudTrail イベントの確認

レプリケーションが失敗した場合:
+ 使用可能なシークレットバージョンがない場合、Secrets Manager はレプリカリージョンからシークレットを削除します。
+ 正常にレプリケートされたシークレットバージョンがある場合は、`RemoveRegionsFromReplication` API オペレーションを使用して明示的に削除するまで、レプリカリージョンに残ります。

以下のセクションでは、レプリケーションの失敗の一般的な理由について説明します。

## 選択したリージョンに同じ名前のシークレットがある
<a name="w2aac17c33c13"></a>

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

## KMS キーにレプリケーションを完成させるためのアクセス許可がない
<a name="w2aac17c33c15"></a>

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

## KMS キーが無効になっているか、見つかりません
<a name="w2aac17c33c17"></a>

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

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

## レプリケーションを行うリージョンが有効化されていない
<a name="w2aac17c33c19"></a>

リージョンを有効化する方法については、「*AWS Account Management リファレンスガイド*」の「[Managing AWS Regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)」を参照してください。