

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 複寫 S3 on Outposts 的物件
<a name="S3OutpostsReplication"></a>

開啟 S3 複寫時 AWS Outposts，您可以將 Amazon S3 on Outposts 設定為自動複寫不同 Outpost 之間的 S3 物件，或在相同 Outpost 上的儲存貯體之間複寫 S3 物件。您可以使用 S3 Replication on Outposts，在相同或不同的 Outposts 中或跨不同的帳戶維護資料的多個複本，以協助符合資料駐留需求。S3 Replication on Outposts 有助於支援合規儲存需求，以及跨帳戶資料共用。如果需要確保複本與來源資料相同，您可以使用 S3 Replication on Outposts 來建立保留所有中繼資料的物件複本，例如原始物件建立時間、標籤和版本 ID。

S3 Replication on Outposts 也提供詳細的指標和通知，以監控儲存貯體之間的物件複寫狀態。您可以使用 Amazon CloudWatch 監控複寫進度，方法為追蹤位元組等待複寫、操作等待複寫，以及來源與目標儲存貯體之間的複寫延遲。若要快速診斷並更正組態問題，您也可以將 Amazon EventBridge 設定為接收有關複寫物件失敗的通知。如需詳細資訊，請參閱 [管理複寫](manage-outposts-replication.md)。

**Topics**
+ [複寫組態](#outposts-replication-add-config)
+ [S3 Replication on Outposts 的需求](#outposts-replication-requirements)
+ [複寫內容為何？](#outposts-replication-what-is-replicated)
+ [未複寫內容為何？](#outposts-replication-what-is-not-replicated)
+ [S3 Replication on Outposts 不支援哪些項目？](#outposts-replication-what-is-not-supported)
+ [設定複寫](outposts-replication-how-setup.md)
+ [管理複寫](manage-outposts-replication.md)

## 複寫組態
<a name="outposts-replication-add-config"></a>

S3 on Outposts 會以 XML 的形式存放複寫組態。在複寫組態 XML 檔案中，您可以指定 AWS Identity and Access Management (IAM) 角色和一或多個規則。

```
<ReplicationConfiguration>
    <Role>IAM-role-ARN</Role>
    <Rule>
        ...
    </Rule>
    <Rule>
         ... 
    </Rule>
     ...
</ReplicationConfiguration>
```

若沒有您的許可，S3 on Outposts 無法複寫物件。您可以使用複寫組態中指定的 IAM 角色來授予 S3 on Outposts 許可。S3 on Outposts 會擔任該 IAM 角色來代您複寫物件。您必須將所需的許可授予 IAM 角色，然後才能開始複寫。如需這些 S3 on Outposts 許可的詳細資訊，請參閱 [建立 IAM 角色](outposts-replication-prerequisites-config.md#outposts-rep-pretwo)。

針對下列情況，您可以在複寫組態中新增一個規則：
+ 您想要複寫所有物件。
+ 您想要複寫物件子集。您在規則中新增篩選條件，以識別物件子集。您可以在篩選條件中指定物件金鑰前綴、標籤，或這兩項的組合，以識別要套用規則的物件子集。

若您想複寫不同的物件子集，可以在複寫組態中新增多項規則。在每個規則中，您可以指定篩選條件以選取不同的物件子集。例如，您可以選擇複寫含有 `tax/` 或 `document/` 索引鍵字首的物件。要做到這一點，您需要新增兩個規則，一個指定 `tax/` 索引鍵字首篩選條件，另一個指定 `document/` 索引鍵字首。

如需 S3 on Outposts 複寫組態和複寫規則的詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的[ReplicationConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ReplicationConfiguration.html)。

## S3 Replication on Outposts 的需求
<a name="outposts-replication-requirements"></a>

複寫需求如下：
+ 目的地 Outpost CIDR 範圍必須與來源 Outpost 子網路表格相關聯。如需詳細資訊，請參閱[建立複寫規則的先決條件](outposts-replication-prerequisites-config.md)。
+ 來源與目的地儲存貯體都必須啟用 S3 版本控制。如需版本控制的詳細資訊，請參閱「[針對您的 S3 on Outposts 儲存貯體管理 S3 版本控制](S3OutpostsManagingVersioning.md)」。
+ Amazon S3 on Outposts 必須具備許可，才能代您將物件從來源儲存貯體複寫至目的地儲存貯體。這意味著您必須建立一個服務角色，將 `GET` 和 `PUT` 許可委派給 S3 on Outposts。

  1. 在建立服務角色之前，您必須對來源儲存貯體具有 `GET` 許可，以及對目的地儲存貯體具有 `PUT` 許可。

  1. 若要建立服務角色以將許可委派給 S3 on Outposts，您必須先設定許可，以允許 IAM 實體 (使用者或角色) 執行 `iam:CreateRole` 和 `iam:PassRole` 動作。然後，允取 IAM 實體建立服務角色。若要讓 S3 on Outposts 代您擔任服務角色，並將 `GET` 和 `PUT` 許可委派給 S3 on Outposts，您必須將所需的信任和許可政策指派給該角色。如需這些 S3 on Outposts 許可的詳細資訊，請參閱 [建立 IAM 角色](outposts-replication-prerequisites-config.md#outposts-rep-pretwo)。如需建立服務角色的詳細資訊，請參閱[建立服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

## 複寫內容為何？
<a name="outposts-replication-what-is-replicated"></a>

依預設，S3 on Outposts 會複寫下列項目：
+ 在您新增複寫組態之後建立的物件。
+ 從來源物件到複本的物件中繼資料。如需如何將中繼資料從複本複寫至來源物件的相關資訊，請參閱[啟用 Outposts 上的 Amazon S3 複本修改同步時的複寫狀態](manage-outposts-replication.md#outposts-replication-status-sync)。
+ 物件標籤 (如果有)。

### 刪除操作對複寫的影響
<a name="outposts-replication-delete-op"></a>

如果您從來源儲存貯體中刪除物件，預設會執行下列動作：
+ 如果您發出 `DELETE` 請求但未指定物件版本 ID，則 S3 on Outposts 會新增刪除標記。S3 on Outposts 會如下處理刪除標記：
  + S3 on Outposts 預設不會複寫刪除標記。
  + 但是，您可以將*刪除標記複寫*新增至非標籤型規則。如需如何在複寫組態中啟用刪除標記複寫的詳細資訊，請參閱[使用 S3 主控台](replication-between-outposts.md#outposts-enable-replication)。
+ 如果您在 `DELETE` 請求中指定要刪除的物件版本 ID，S3 on Outposts 會永久刪除來源儲存貯體中的該物件版本。不過，不會在目的地儲存貯體中複寫刪除。換句話說，Amazon S3 不會從目的地儲存貯體中刪除相同的物件版本。此行為可防止資料遭到惡意刪除。

## 未複寫內容為何？
<a name="outposts-replication-what-is-not-replicated"></a>

依預設，S3 on Outposts 不會複寫下列項目：
+ 來源儲存貯體中由其他複寫規則所建立的物件複本。例如，若您設定複寫，其中儲存貯體 A 是來源，而儲存貯體 B 是目的地。現在，假設您新增另一個複寫組態，其中儲存貯體 B 是來源，而儲存貯體 C 是目的地。在此情況下，如果儲存貯體 B 中的物件是儲存貯體 A 中的物件複本，則不會複寫至儲存貯體 C。
+ 來源儲存貯體中已複寫至不同目的地的物件。例如，如果您變更現有複寫組態中的目的地儲存貯體，則 S3 on Outposts 不會再次複寫這些物件。
+ 在使用客戶所提供加密金鑰 (SSE-C) 進行伺服器端加密情況下建立的物件。
+ 儲存貯體層級子資源的更新。

  例如，如果您變更來源儲存貯體上的生命週期組態，或將通知組態新增至來源儲存貯體，這些變更並不會套用至目的地儲存貯體。此功能可讓來源儲存貯體與目的地儲存貯體各有不同的組態。
+ 生命週期組態執行的動作。

  例如，如果您只在來源儲存貯體上啟用生命週期組態，並設定到期動作，則 S3 on Outposts 會為過期物件建立刪除標記，但不會將這些標記複寫至目的地儲存貯體。如果您想要將相同的生命週期組態套用至來源與目的地儲存貯體，請在這兩個儲存貯體上啟用相同的生命週期組態。如需生命週期組態的詳細資訊，請參閱「[建立和管理 Amazon S3 on Outposts 儲存貯體的生命週期組態](S3OutpostsLifecycleManaging.md)」。

## S3 Replication on Outposts 不支援哪些項目？
<a name="outposts-replication-what-is-not-supported"></a>

S3 on Outposts 目前不支援下列 S3 複寫功能。
+ S3 複寫時間控制 (S3 RTC)。不支援 S3 RTC，因為 S3 Replication on Outposts 中的物件流量會透過內部部署網路 (本機閘道) 傳輸。如需本機閘道的相關資訊，請參閱《AWS Outposts 使用者指南》**中的[使用本機閘道](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-local-gateways.html#working-with-lgw)。
+ 適用於批次操作的 S3 複寫。

# 設定複寫
<a name="outposts-replication-how-setup"></a>

**注意**  
您設定複寫之前就已存在於儲存貯體中的物件不會自動複寫。換句話說，Amazon S3 on Outposts 不會追溯複寫物件。若要複寫您在複寫組態之前建立的物件，您可使用 `CopyObject` API 操作以將其複製到相同的儲存貯體。複製物件之後，這些物件會在儲存貯體中顯示為「新」物件，且複寫組態將套用至這些物件。如需複製物件的詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [使用 在 Amazon S3 on Outposts 儲存貯體中複製物件 適用於 Java 的 AWS SDK](S3OutpostsCopyObject.md) 和 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)。

若要啟用 S3 Replication on Outposts，請將複寫規則新增至來源 Outposts 儲存貯體。複寫規則會通知 S3 on Outposts 依指定方式複寫物件。在複寫規則中，您必須提供以下項目：
+ **來源 Outposts 儲存貯體存取點** — 您想要 S3 on Outposts 從其中複寫物件的存取點 Amazon Resource Name (ARN) 或存取點別名。如需使用存取點別名的詳細資訊，請參閱[針對您的 S3 on Outposts 存取點使用儲存貯體樣式別名](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-outposts-access-points-alias.html)。
+ **您要複寫的物件** – 您可以複寫來源 Outposts 儲存貯體中的所有物件或物件子集。您可以在組態中提供[金鑰名稱前綴](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#keyprefix)、一或多個物件標籤或兩者，來識別子集。

  例如，如果您將複寫規則設定為僅複寫具有金鑰名稱前綴為 `Tax/` 的物件，則 S3 on Outposts 會複寫具有 `Tax/doc1` 或 `Tax/doc2` 等金鑰的物件。但不會複寫具有 `Legal/doc3` 金鑰的物件。如果您指定字首以及一或多個標籤，則 S3 on Outposts 僅會複寫具備特定索引鍵字首和標籤的物件。
+ **目的地 Outposts 儲存貯體** — 您想要 S3 on Outposts 複寫物件的儲存貯體 ARN 或存取點別名。

您可以使用 REST API、 AWS SDKs、 AWS Command Line Interface (AWS CLI) 或 Amazon S3 主控台來設定複寫規則。

S3 on Outposts 也提供 API 操作來支援設定複寫規則。如需詳細資訊，請參閱 *Amazon Simple Storage Service API 參考*中的下列主題：
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketReplication.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketReplication.html) 
+  [https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketReplication.html) 

**Topics**
+ [建立複寫規則的先決條件](outposts-replication-prerequisites-config.md)
+ [建立 Outposts 上的複寫規則](replication-between-outposts.md)

# 建立複寫規則的先決條件
<a name="outposts-replication-prerequisites-config"></a>

**Topics**
+ [連線您的來源和目的地 Outpost 子網路](#outposts-rep-preone)
+ [建立 IAM 角色](#outposts-rep-pretwo)

## 連線您的來源和目的地 Outpost 子網路
<a name="outposts-rep-preone"></a>

若要讓您的複寫流量透過本機閘道從來源 Outpost 傳送到目的地 Outpost，您必須新增新路由來設定網路。您必須將存取點的無類別域間路由 (CIDR) 網路範圍連接在一起。對於每對存取點，您只需要設定一次此連線。

根據與存取點相關聯 Outposts 端點的存取類型，設定連線的某些步驟會有所不同。端點的存取類型為**私有** （直接虛擬私有雲端 【VPC】 路由 AWS Outposts) 或**客戶擁有的 IP** （內部部署網路中的客戶擁有 IP 地址集區 【CoIP 集區】)。

### 步驟 1：尋找來源 Outposts 端點的 CIDR 範圍
<a name="outposts-pre-step1"></a>

**尋找與來源存取點相關聯來源端點的 CIDR 範圍**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Outposts buckets** (Outposts 儲存貯體)。

1. 在 **Outposts 儲存貯體**清單中，選擇您要進行複寫的來源儲存貯體。

1. 選擇 **Outposts 存取點**索引標籤，然後針對複寫規則選擇來源儲存貯體的 Outposts 存取點。

1. 選擇 Outposts 端點。

1. 複製要在[步驟 5](#outposts-pre-step5) 中使用的子網路 ID。

1. 您用來尋找來源 Outposts 端點 CIDR 範圍的方法取決於端點的存取類型。

   在 **Outposts 端點概觀**區段中，請參閱**存取類型**。
   + 如果存取類型為**私有**，請複製要在[步驟 6](#outposts-pre-step6) 中使用的**無類別域間路由 (CIDR)** 值。
   + 如果存取類型為**客戶擁有的 IP**，請執行下列動作：

     1. 複製**客戶擁有的 IPv4 集區**值，以便稍後使用做為地址集區的 ID。

     1. 在 https：//[https://console.aws.amazon.com/outposts/](https://console.aws.amazon.com/outposts/home) 開啟 AWS Outposts 主控台。

     1. 在導覽窗格中，選擇**本機閘道路由表**。

     1. 選擇來源 Outpost 的**本機閘道路由表 ID** 值。

     1. 在詳細資訊窗格中，選擇 **CoIP 集區**索引標籤。將先前所複製 CoIP 集區 ID 的值貼到搜尋方塊中。

     1. 對於相符的 CoIP 集區，複製來源 Outposts 端點的對應 **CIDR** 值，以便在[步驟 6](#outposts-pre-step6) 中使用。

### 步驟 2：尋找目的地 Outposts 端點的子網路 ID 和 CIDR 範圍
<a name="outposts-pre-step2"></a>

若要尋找與目的地存取點相關聯目的地端點的子網路 ID 和 CIDR 範圍，請遵循[步驟 1](#outposts-pre-step1) 中的相同子步驟，並在套用這些子步驟時，將來源 Outposts 端點變更為目的地 Outposts 端點。複製目的地 Outposts 端點的子網路 ID 值，以便在[步驟 6](#outposts-pre-step6) 中使用。複製目的地 Outposts 端點的 CIDR 值，以便在[步驟 5](#outposts-pre-step5) 中使用。

### 步驟 3：尋找來源 Outpost 的本機閘道 ID
<a name="outposts-pre-step3"></a>

**尋找來源 Outpost 的本機閘道 ID**

1. 在 https：//[https://console.aws.amazon.com/outposts/](https://console.aws.amazon.com/outposts/home) 開啟 AWS Outposts 主控台。

1. 在左側導覽窗格中，選擇**本機閘道**。

1. 在**本機閘道**頁面上，尋找您要用於複寫來源 Outpost 的 Outpost ID。

1. 複製來源 Outpost 的本機閘道 ID 值，以便在[步驟 5](#outposts-pre-step5) 中使用。

如需本機閘道的詳細資訊，請參閱《AWS Outposts 使用者指南》**中的[本機閘道](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-local-gateways.html)。

### 步驟 4：尋找目的地 Outpost 的本機閘道 ID
<a name="outposts-pre-step4"></a>

若要尋找目的地 Outpost 的本機閘道 ID，請遵循[步驟 3](#outposts-pre-step3) 中的相同子步驟，但尋找目的地 Outpost 的 Outpost ID 步驟除外。複製目的地 Outpost 的本機閘道 ID 值，以便在[步驟 6](#outposts-pre-step6) 中使用。

### 步驟 5：設定從來源 Outpost 子網路到目的地 Outpost 子網路的連線
<a name="outposts-pre-step5"></a>

**從來源 Outpost 子網路連線至目的地 Outpost 子網路**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 VPC 主控台。

1. 在左側導覽窗格中，選擇 **Subnets** (子網路)。

1. 在搜尋方塊中，輸入您在[步驟 1](#outposts-pre-step1) 中所找到來源 Outposts 端點的子網路 ID。選擇具有相符子網路 ID 的子網路。

1. 對於相符的子網路項目，請選擇此子網路的**路由表**值。

1. 在具有所選路由表的頁面上，選擇**動作**，然後選擇**編輯路由**。

1. 在**路由**標籤中，選擇**編輯路由**。

1. 在**目的地**下，輸入您在[步驟 2](#outposts-pre-step2) 中所找到目的地 Outposts 端點的 CIDR 範圍。

1. 在**目標**下，選擇 **Outpost 本機閘道**，然後輸入您在[步驟 3](#outposts-pre-step3) 中所找到來源 Outpost 的本機閘道 ID。

1. 選擇**儲存變更**。

1. 確定路由的**狀態**為**作用中**。

### 步驟 6：設定從目的地 Outpost 子網路到來源 Outpost 子網路的連線
<a name="outposts-pre-step6"></a>

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 VPC 主控台。

1. 在左側導覽窗格中，選擇 **Subnets** (子網路)。

1. 在搜尋方塊中，輸入您在[步驟 2](#outposts-pre-step2) 中所找到目的地 Outposts 端點的子網路 ID。選擇具有相符子網路 ID 的子網路。

1. 對於相符的子網路項目，請選擇此子網路的**路由表**值。

1. 在具有所選路由表的頁面上，選擇**動作**，然後選擇**編輯路由**。

1. 在**路由**標籤中，選擇**編輯路由**。

1. 在**目的地**下，輸入您在[步驟 1](#outposts-pre-step1) 中所找到來源 Outposts 端點的 CIDR 範圍。

1. 在**目標**下，選擇 **Outpost 本機閘道**，然後輸入您在[步驟 4](#outposts-pre-step4) 中所找到目的地 Outpost 的本機閘道 ID。

1. 選擇**儲存變更**。

1. 確定路由的**狀態**為**作用中**。

 連接來源和目的地存取點的 CIDR 網路範圍之後，您必須建立 AWS Identity and Access Management (IAM) 角色。

## 建立 IAM 角色
<a name="outposts-rep-pretwo"></a>

根據預設，所有 S3 on Outposts 資源 (儲存貯體、物件與相關子資源) 皆為私有，且只有資源擁有者才可存取該資源。S3 on Outposts 需要從來源 Outposts 儲存貯體讀取和複寫物件的許可。您可建立 IAM *服務角色*並在您的複寫組態中指定此角色以授予這些許可。

本節說明信任政策與最低必要許可政策。這些範例演練提供建立 IAM 角色的逐步說明。如需詳細資訊，請參閱[建立 Outposts 上的複寫規則](replication-between-outposts.md)。如需 IAM 角色的詳細資訊，請參閱 *IAM 使用者指南*中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。
+ 以下範例顯示*信任政策*，您可以在其中將 S3 on Outposts 識別為可擔任該角色的服務主體。

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement":[
        {
           "Effect":"Allow",
           "Principal":{
              "Service":"s3-outposts.amazonaws.com"
           },
           "Action":"sts:AssumeRole"
        }
     ]
  }
  ```

------
+ 以下範例顯示*存取政策*，您可以在其中授予角色許可來代您執行複寫作業。當 S3 on Outposts 擔任該角色時，即具備您在此政策中指定的許可。若要使用此政策，請以您自己的資訊取代 `user input placeholders`。請務必將其取代為來源和目的地 Outposts 的 Outpost ID，以及來源和目的地 Outposts 儲存貯體的儲存貯體名稱和存取點名稱。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3-outposts:GetObjectVersionForReplication",
                  "s3-outposts:GetObjectVersionTagging"
              ],
              "Resource": [
                  "arn:aws:s3-outposts:us-east-1:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET/object/*",
                  "arn:aws:s3-outposts:us-east-1:123456789012:outpost/SOURCE-OUTPOST-ID/accesspoint/SOURCE-OUTPOSTS-BUCKET-ACCESS-POINT/object/*"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3-outposts:ReplicateObject",
                  "s3-outposts:ReplicateDelete"
              ],
              "Resource": [
                  "arn:aws:s3-outposts:us-east-1:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*",
                  "arn:aws:s3-outposts:us-east-1:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*"
              ]
          }
      ]
  }
  ```

------

  存取政策會授予下列動作的許可：
  + `s3-outposts:GetObjectVersionForReplication` — 對所有物件授予此動作的許可，以允許 S3 on Outposts 取得與每個物件相關聯的特定物件版本。

    
  + `s3-outposts:GetObjectVersionTagging` – *`SOURCE-OUTPOSTS-BUCKET`* 儲存貯體 (來源儲存貯體) 中物件上這個動作的許可，其允許 S3 on Outposts 讀取要複寫的物件標籤。如需詳細資訊，請參閱[新增 S3 on Outposts 儲存貯體的標籤](S3OutpostsBucketTags.md)。如果 S3 on Outposts 不具備這些許可，則會複寫物件，但不會複寫物件標籤。
  + `s3-outposts:ReplicateObject` 與 `s3-outposts:ReplicateDelete` – *`DESTINATION-OUTPOSTS-BUCKET`* 儲存貯體 (目的地儲存貯體) 中所有物件上這些動作的許可，其允許 S3 on Outposts 將物件或刪除標記複寫至目的地 Outposts 儲存貯體。如需刪除標記的資訊，請參閱 [刪除操作對複寫的影響](S3OutpostsReplication.md#outposts-replication-delete-op)。
**注意**  
*`DESTINATION-OUTPOSTS-BUCKET`* 儲存貯體 (目的地儲存貯體) 上 `s3-outposts:ReplicateObject` 動作的許可也允許複寫物件標籤。因此，您不需要明確授予 `s3-outposts:ReplicateTags` 動作的許可。
對於跨帳戶複寫，目的地 Outposts 儲存貯體的擁有者必須更新其儲存貯體政策，以授予對 *`DESTINATION-OUTPOSTS-BUCKET`* 的 `s3-outposts:ReplicateObject` 動作許可。`s3-outposts:ReplicateObject` 動作可讓 S3 on Outposts 將物件和物件標籤複寫到目的地 Outposts 儲存貯體。

  如需 S3 on Outposts 動作的清單，請參閱 [S3 on Outposts 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3onoutposts.html#amazons3onoutposts-actions-as-permissions)。
**重要**  
 AWS 帳戶 擁有 IAM 角色的 必須具有授予 IAM 角色之動作的許可。  
例如，假設來源 Outposts 儲存貯體包含另一個 AWS 帳戶所擁有的物件。物件的擁有者必須透過儲存貯體政策和存取點政策，明確授予 AWS 帳戶 擁有 IAM 角色的必要許可。否則，S3 on Outposts 就無法存取這些物件，而導致物件的複寫失敗。  
此處描述的許可與基本複寫組態相關。如果您選擇新增額外的複寫組態，則必須將額外許可授予給 S3 on Outposts。

### 當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶
<a name="outposts-rep-prethree"></a>

當來源和目的地 Outposts 儲存貯體不屬於相同帳戶時，目的地 Outposts 儲存貯體的擁有者必須更新目的地儲存貯體的儲存貯體和存取點政策。這些政策必須對來源 Outposts 儲存貯體和 IAM 服務角色的擁有者授予執行複寫動作的許可，如同下列政策範例所示，若未授予，複寫則會失敗。在這些政策範例中，*`DESTINATION-OUTPOSTS-BUCKET`* 是目的地儲存貯體。若要使用這些政策範例，請以您自己的資訊取代 `user input placeholders`。

如果您要手動建立 IAM 服務角色，請將角色路徑設定為 `role/service-role/`，如下列政策範例所示。如需詳細資訊，請參閱《IAM 使用者指南》中的 [IAM ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForDestinationBucket",
    "Statement": [
        {
            "Sid": "Permissions on objects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/source-account-IAM-role"
            },
            "Action": [
                "s3-outposts:ReplicateDelete",
                "s3-outposts:ReplicateObject"
            ],
            "Resource": [
                "arn:aws:s3-outposts:us-east-1:444455556666:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*"
            ]
        }
    ]
}
```

------

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForDestinationAccessPoint",
    "Statement": [
        {
            "Sid": "Permissions on objects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/service-role/source-account-IAM-role"
            },
            "Action": [
                "s3-outposts:ReplicateDelete",
                "s3-outposts:ReplicateObject"
            ],
            "Resource": [
                "arn:aws:s3-outposts:us-east-1:111122223333:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*"
            ]
        }
    ]
}
```

------

**注意**  
如果來源 Outposts 儲存貯體中的物件已標記，請注意下列情況：  
如果來源 Outposts 儲存貯體擁有者將 `s3-outposts:GetObjectVersionTagging` 與 `s3-outposts:ReplicateTags` 動作的許可授予 S3 on Outposts 來複寫物件標籤 (透過 IAM 角色)，Amazon S3 會連同物件一起複寫標籤。如需 IAM 角色的資訊，請參閱 [建立 IAM 角色](#outposts-rep-pretwo)。

# 建立 Outposts 上的複寫規則
<a name="replication-between-outposts"></a>

Outposts 上的 S3 複寫是相同或不同儲存貯體之間的物件自動非同步複寫 AWS Outposts。複寫會將來源 Outposts 儲存貯體中新建立的物件和物件更新複製至目的地 Outposts 儲存貯體。如需詳細資訊，請參閱[複寫 S3 on Outposts 的物件](S3OutpostsReplication.md)。

**注意**  
不會複寫您設定複寫規則之前就已存在於來源 Outposts 儲存貯體中的物件。換句話說，S3 on Outposts 不會追溯複寫物件。若要複寫您在複寫組態之前建立的物件，您可使用 `CopyObject` API 操作以將其複製到相同的儲存貯體。複製物件之後，這些物件會在儲存貯體中顯示為「新」物件，且複寫組態將套用至這些物件。如需複製物件的詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [使用 在 Amazon S3 on Outposts 儲存貯體中複製物件 適用於 Java 的 AWS SDK](S3OutpostsCopyObject.md) 和 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)。

設定複寫時，會將複寫規則新增至來源 Outposts 儲存貯體。複寫規則會定義要複寫的來源 Outposts 儲存貯體物件，以及存放已複寫物件的目的地 Outposts 儲存貯體。您可以建立規則，以特定的金鑰名稱前綴、一或多個物件標籤、或兩種都用，複寫儲存貯體中的所有物件，或一部分的物件。目的地 Outposts 儲存貯體可以在與來源 Outposts 儲存貯體相同的 Outpost 中，也可以在不同的 Outpost 中。

對於 S3 on Outposts 複寫規則，您必須同時提供來源 Outposts 儲存貯體的存取點 Amazon Resource Name (ARN) 和目的地 Outposts 儲存貯體的存取點 ARN，而不是來源和目的地 Outposts 儲存貯體名稱。

如果您指定要刪除的物件版本 ID，S3 on Outposts 會刪除來源 Outposts 儲存貯體中的該物件版本。但不會在目的地 Outposts 儲存貯體中進行刪除。換句話說，它不會從目的地 Outposts 儲存貯體中刪除相同的物件版本。此行為可防止資料遭到惡意刪除。

當您將複寫規則新增至 Outposts 儲存貯體時，預設會啟用此規則，讓規則在您儲存之後立即運作。

在此範例中，您會設定來源與目的地 Outposts 儲存貯體為不同 Outposts 且同一 AWS 帳戶所擁有的複寫。提供使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) 和 適用於 Java 的 AWS SDK 和 的範例 適用於 .NET 的 AWS SDK。如需跨帳戶 S3 on Outposts 許可的相關資訊，請參閱 [當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶](outposts-replication-prerequisites-config.md#outposts-rep-prethree)。

如需設定 S3 on Outposts 複寫規則的先決條件，請參閱 [建立複寫規則的先決條件](outposts-replication-prerequisites-config.md)。

## 使用 S3 主控台
<a name="outposts-enable-replication"></a>

當目的地 Amazon S3 on Outposts 儲存貯體與來源 Outposts 儲存貯體位於不同的 Outpost 時，請依照這些步驟設定複寫規則。

如果目的地 Outposts 儲存貯體位在與來源 Outposts 儲存貯體不同的帳戶中，您必須將儲存貯體政策新增至目的地 Outposts 儲存貯體，以將複寫目的地 Outposts 儲存貯體中物件的許可授予來源 Outposts 儲存貯體帳戶擁有者。

**建立複寫規則**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 **Outposts 儲存貯體**清單中，選擇您要使用做為來源儲存貯體的儲存貯體名稱。

1. 選擇**管理**索引標籤，向下捲動至**複寫規則**區段，然後選擇**建立複寫規則**。

1. 對於**複寫規則名稱**，輸入規則名稱，以利之後識別此規則。此名稱為必要，且在儲存貯體內必須是唯一的。

1. 在**狀態**下，預設會選擇**已啟用**。已啟用規則在您儲存它之後就會立即運作。如果希望稍後再啟用此規則，請選擇**已停用**。

1. 在**優先順序**下，如果發生規則重疊，則規則的優先順序值會決定要套用的規則。當物件包含在多個複寫規則的範圍內時，S3 on Outposts 會使用這些優先順序值來避免衝突。依預設，新規則會以最高優先順序新增至複製組態。數字愈高，優先順序愈高。

   若要變更規則的優先順序，請在儲存規則之後，從複製規則清單中選擇規則名稱、選擇**動作**，然後選擇**編輯優先順序**。

1. 在**來源儲存貯體**之下，您有下列選項可用來設定複寫來源：
   + 若要複寫整個儲存貯體，請選擇**套用至儲存貯體中的*所有*物件**。
   + 若要將字首或標籤篩選套用至複寫來源，請選擇**使用一或多個篩選條件限制此規則的範圍**。您可以合併字首與標籤。
     + 若要複寫具有相同字首的所有物件，請在**字首**下的方塊中輸入字首。使用**字首**篩選條件以限制複寫名稱以相同字串 (例如，`pictures`) 開頭的所有物件。

       如果您輸入的字首是資料夾名稱，您必須使用 **/** (正斜線) 作為最後一個字元 (例如，`pictures/`)。
     + 若要複寫具有一個或多個相同物件標籤的所有物件，請選擇**新增標籤**，然後在方塊中輸入鍵/值對。若要新增另一個索引標籤，請重複此程序，。如需物件標籤的詳細資訊，請參閱 [新增 S3 on Outposts 儲存貯體的標籤](S3OutpostsBucketTags.md)。

1. 若要存取 S3 on Outposts 來源儲存貯體以進行複寫，請在**來源存取點名稱**下選擇連接至來源儲存貯體的存取點。

1. 在**目的地**下，選擇您想要 S3 on Outposts 在其中複寫物件的目的地 Outposts 儲存貯體的存取點 ARN。目的地 Outposts 儲存貯體可以 AWS 帳戶 與來源 Outposts 儲存貯體位於相同或不同位置。

   如果目的地儲存貯體位在與來源 Outposts 儲存貯體不同的帳戶中，您必須將儲存貯體政策新增至目的地 Outposts 儲存貯體，以將複寫目的地 Outposts 儲存貯體中物件的許可授予來源 Outposts 儲存貯體帳戶擁有者。如需詳細資訊，請參閱[當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶](outposts-replication-prerequisites-config.md#outposts-rep-prethree)。
**注意**  
如果未在目的地 Outposts 儲存貯體上啟用版本控制，您會收到包含**啟用版本控制**按鈕的警告訊息。選擇此按鈕，以在儲存貯體上啟用版本控制。

1. 設定 S3 on Outposts 可擔任的 AWS Identity and Access Management (IAM) 服務角色，以代表您複寫物件。

   若要設定 IAM 角色，請在 **IAM 角色**下，執行下列其中一個動作：
   + 若要讓 S3 on Outposts 為您的複寫組態建立新的 IAM 角色，請選擇**從現有的 IAM 角色中選擇**，然後選擇**建立新角色**。當您儲存規則時，系統會為符合所選擇來源與目的地 Outposts 儲存貯體的 IAM 角色產生新原則。建議您選擇**建立新角色**。
   + 您也可以選擇使用現有 IAM 角色。如果這麼做，則必須選擇將必要複寫許可授予 S3 on Outposts 的角色。如果此角色未依您的複寫規則授予 S3 on Outposts 足夠的許可，則複寫會失敗。

     若要選擇現有角色，請選擇**從現有 IAM 角色中選擇**，然後從下拉式功能表中選擇角色。您也可以選擇**輸入 IAM 角色 ARN**，然後輸入 IAM 角色的 Amazon Resource Name (ARN)。
**重要**  
當您新增複寫規則至 S3 on Outposts 儲存貯體時，必須擁有 `iam:CreateRole` 和 `iam:PassRole` 許可，才能建立和傳遞授予 S3 on Outposts 複寫許可的 IAM 角色。如需詳細資訊，請參閱《IAM 使用者指南》**中[授予使用者將角色傳遞至 AWS 服務的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)。

1. 依預設，Outposts 儲存貯體中的所有物件都會加密。如需 S3 on Outposts 加密的詳細資訊，請參閱 [S3 on Outposts 中的資料加密](s3-outposts-data-encryption.md)。只有使用 Amazon S3 管理金鑰的伺服器端加密 (SSE-S3) 進行加密的物件才可加以複寫。不支援使用 AWS Key Management Service (AWS KMS) 金鑰的伺服器端加密 (SSE-KMS) 或使用經由客戶提供加密金鑰的伺服器端加密 (SSE-C) 進行加密的物件複寫。

1. 設定複寫規則組態時，視需要啟用下列其他選項：
   + 如果您想要在複寫組態中啟用 S3 on Outposts 複寫指標，請選取**複寫指標**。如需詳細資訊，請參閱[使用複寫指標監控進度](manage-outposts-replication.md#outposts-enabling-replication-metrics)。
   + 如果您想要在複寫組態中啟用刪除標記複寫，請選取 **Delete marker replication** (刪除標記複寫)。如需詳細資訊，請參閱[刪除操作對複寫的影響](S3OutpostsReplication.md#outposts-replication-delete-op)。
   + 如果您要將對複本所做的中繼資料變更複寫回來源物件，請選取**複本修改同步**。如需詳細資訊，請參閱[啟用 Outposts 上的 Amazon S3 複本修改同步時的複寫狀態](manage-outposts-replication.md#outposts-replication-status-sync)。

1. 若要完成，請選擇**建立規則**。

儲存規則之後，即可編輯、啟用、停用或刪除規則。若要這麼做，請前往來源 Outposts 儲存貯體的**管理**索引標籤，向下捲動至**複寫規則**區段，選擇您的規則，然後選擇**編輯規則**。

## 使用 AWS CLI
<a name="outposts-replication-ex1-cli"></a>

若要在來源和目的地 Outposts 儲存貯體由相同 擁有時使用 AWS CLI 設定複寫 AWS 帳戶，請執行下列動作：
+ 建立來源與目的地 Outposts 儲存貯體。
+ 在兩個儲存貯體上啟用版本控制。
+ 建立 IAM 角色，授予 S3 on Outposts 複寫物件的許可。
+ 將複寫組態新增至來源 Outposts 儲存貯體。

您可以測試以驗證設定。

**在來源和目的地 Outposts 儲存貯體由相同 擁有時設定複寫 AWS 帳戶**

1. 設定 AWS CLI的憑證描述檔。在此範例中，我們使用描述檔名稱 `acctA`。如需設定憑證描述檔的相關資訊，請參閱《AWS Command Line Interface 使用者指南》**中的[具名描述檔](https://docs.aws.amazon.com/cli/latest/userguide/cli-multiple-profiles.html)。
**重要**  
用於此練習的描述檔必須有必要的許可。例如，您可以在複寫組態中指定 S3 on Outposts 可以擔任的 IAM 服務角色。只有當您所用的描述檔有 `iam:CreateRole` 和 `iam:PassRole` 許可時才可執行此作業。如需詳細資訊，請參閱《IIAM 使用者指南》**《中[授予使用者將角色傳遞至 AWS 服務的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)。如果您使用管理員憑證建立具名描述檔，具名描述檔將擁有執行所有任務的必要許可。

1. 建立 *source* 儲存貯體並對它啟用版本控制。下列 `create-bucket` 命令會在美國東部 (維吉尼亞北部) (`us-east-1`) 區域中建立 `SOURCE-OUTPOSTS-BUCKET` 儲存貯體。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。

   ```
   aws s3control create-bucket --bucket SOURCE-OUTPOSTS-BUCKET --outpost-id SOURCE-OUTPOST-ID --profile acctA --region us-east-1
   ```

   下列 `put-bucket-versioning` 命令啟用 `SOURCE-OUTPOSTS-BUCKET` 儲存貯體上的版本控制。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。

   ```
   aws s3control put-bucket-versioning --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET --versioning-configuration Status=Enabled --profile acctA
   ```

1. 建立 *destination* 儲存貯體並對它啟用版本控制。下列 `create-bucket` 命令會在美國西部 (奧勒岡) (`us-west-2`) 區域中建立 `DESTINATION-OUTPOSTS-BUCKET` 儲存貯體。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。
**注意**  
若要在來源和目的地 Outposts 儲存貯體都位於相同位置時設定複寫組態 AWS 帳戶，請使用相同的具名設定檔。此範例使用 `acctA`。若要在儲存貯體由不同 擁有時測試複寫組態 AWS 帳戶，您可以為每個儲存貯體指定不同的設定檔。

   ```
   aws s3control create-bucket --bucket DESTINATION-OUTPOSTS-BUCKET --create-bucket-configuration LocationConstraint=us-west-2 --outpost-id DESTINATION-OUTPOST-ID --profile acctA --region us-west-2                       
   ```

   下列 `put-bucket-versioning` 命令啟用 `DESTINATION-OUTPOSTS-BUCKET` 儲存貯體上的版本控制。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。

   ```
   aws s3control put-bucket-versioning --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET --versioning-configuration Status=Enabled --profile acctA
   ```

1. 建立 IAM 服務角色。稍後在複寫組態中，您會將此服務角色新增至 `SOURCE-OUTPOSTS-BUCKET` 儲存貯體。S3 on Outposts 就會擔任此角色以代您複寫物件。建立 IAM 角色需要兩個步驟：

   1. 建立 IAM 角色。

      1. 複製下列信任政策，並將它儲存至本機電腦目前目錄下名稱為 `s3-on-outposts-role-trust-policy.json` 的檔案中。此政策會授予 S3 on Outposts 服務主體擔任該服務角色的許可。

------
#### [ JSON ]

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Effect":"Allow",
                  "Principal":{
                     "Service":"s3-outposts.amazonaws.com"
                  },
                  "Action":"sts:AssumeRole"
               }
            ]
         }
         ```

------

      1. 執行下列 命令以建立角色。以您自己的資訊取代 `user input placeholders`。

         ```
         aws iam create-role --role-name replicationRole --assume-role-policy-document file://s3-on-outposts-role-trust-policy.json --profile acctA
         ```

   1. 將許可政策連接到服務角色。

      1. 複製下列許可政策，並將它儲存至本機電腦目前目錄中名為 `s3-on-outposts-role-permissions-policy.json` 的檔案。此政策會授予各種 S3 on Outposts 儲存貯體與物件動作的許可。若要使用此政策，請以您自己的資訊取代 `user input placeholders`。

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Action": [
                         "s3-outposts:GetObjectVersionForReplication",
                         "s3-outposts:GetObjectVersionTagging"
                     ],
                     "Resource": [
                         "arn:aws:s3-outposts:us-east-1:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET/object/*",
                         "arn:aws:s3-outposts:us-east-1:123456789012:outpost/SOURCE-OUTPOST-ID/accesspoint/SOURCE-OUTPOSTS-BUCKET-ACCESS-POINT/object/*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "s3-outposts:ReplicateObject",
                         "s3-outposts:ReplicateDelete"
                     ],
                     "Resource": [
                         "arn:aws:s3-outposts:us-east-1:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*",
                         "arn:aws:s3-outposts:us-east-1:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*"
                     ]
                 }
             ]
         }
         ```

------

      1. 執行下列命令以建立政策，並將它連接至角色。以您自己的資訊取代 `user input placeholders`。

         ```
         aws iam put-role-policy --role-name replicationRole --policy-document file://s3-on-outposts-role-permissions-policy.json --policy-name replicationRolePolicy --profile acctA
         ```

1. 將複寫組態新增至 `SOURCE-OUTPOSTS-BUCKET` 儲存貯體。

   1. 雖然 S3 on Outposts API 需要 XML 格式的複寫組態，但 AWS CLI 需要您以 JSON 格式指定複寫組態。將下列 JSON 儲存至您電腦本機目錄下的 `replication.json` 檔案中。若要使用此組態，請以您自己的資訊取代 `user input placeholders`。

      ```
      {
        "Role": "IAM-role-ARN",
        "Rules": [
          {
            "Status": "Enabled",
            "Priority": 1,
            "DeleteMarkerReplication": { "Status": "Disabled" },
            "Filter" : { "Prefix": "Tax"},
            "Destination": {
              "Bucket": 
              "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT"
            }
          }
        ]
      }
      ```

   1. 執行下列 `put-bucket-replication` 命令，將複寫組態新增至您的來源 Outposts 儲存貯體。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。

      ```
      aws s3control put-bucket-replication --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET --replication-configuration file://replication.json --profile acctA
      ```

   1. 使用 `get-bucket-replication` 命令來擷取複寫組態。若要使用此命令，請以您自己的資訊取代 `user input placeholders`。

      ```
      aws s3control get-bucket-replication --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET --profile acctA
      ```

1. 在 Amazon S3 主控台中測試設定：

   1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)：// 開啟 Amazon S3 主控台。

   1. 在 `SOURCE-OUTPOSTS-BUCKET` 儲存貯體中，建立名為 `Tax` 的資料夾。

   1. 將範例物件新增至 `SOURCE-OUTPOSTS-BUCKET` 儲存貯體的 `Tax` 資料夾。

   1. 在 `DESTINATION-OUTPOSTS-BUCKET` 儲存貯體中驗證下列事項：
      + S3 on Outposts 已複寫物件。
**注意**  
S3 on Outposts 複寫物件所需的時間長短取決於物件大小。如需如何查看複寫狀態的相關資訊，請參閱 [取得複寫狀態資訊](manage-outposts-replication.md#outposts-replication-status)。
      + 在物件**屬性**標籤中，**複寫狀態**已設定為**複寫** (將此識別為複本物件)。

# 管理複寫
<a name="manage-outposts-replication"></a>

本節描述 S3 on Outposts 中可用的其他複寫組態選項、如何判斷複寫狀態，以及如何疑難排解複寫。如需核心複寫組態的資訊，請參閱 [設定複寫](outposts-replication-how-setup.md)。

**Topics**
+ [使用複寫指標監控進度](#outposts-enabling-replication-metrics)
+ [取得複寫狀態資訊](#outposts-replication-status)
+ [故障排除複寫](#outposts-replication-troubleshoot)
+ [針對 Outposts 上的 S3 複寫使用 EventBridge](outposts-replication-eventbridge.md)

## 使用複寫指標監控進度
<a name="outposts-enabling-replication-metrics"></a>

Outposts 上的 S3 複寫提供了複寫組態中複寫規則的詳細指標。透過追蹤擱置複寫的位元組、複寫延遲和作業擱置，您可以每 5 分鐘以複寫指標，監控複寫進度。您也可以設定 Amazon EventBridge 以接收複寫失敗通知，協助疑難排解任何組態問題。

啟用複寫指標後，Outposts 上的 S3 複寫會將下列指標發佈至 Amazon CloudWatch：
+ **擱置複寫的位元組** — 針對指定的複寫規則，擱置複寫的物件位元組總數。
+ **複寫延遲** — 針對指定的複寫規則，複寫目的地儲存貯體位於來源儲存貯體後方的秒數上限。
+ **擱置複寫的作業** – 針對指定的複寫規則，擱置複寫的作業數量。作業包含物件、刪除標記和標籤。

**注意**  
Outposts 上的 S3 複寫指標的計費方式與 CloudWatch 自訂指標相同。如需詳細資訊，請參閱 [CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

## 取得複寫狀態資訊
<a name="outposts-replication-status"></a>

複寫狀態可協助您判斷要由 Amazon S3 on Outposts 複寫之物件的目前狀態。來源物件的複寫狀態將會傳回 `PENDING`、`COMPLETED` 或 `FAILED`。複本的複寫狀態將會傳回 `REPLICA`。

### 複寫狀態概觀
<a name="outposts-replication-status-overview"></a>

在複寫中，您有一個來源儲存貯體，您可以在其上設定複寫與 S3 on Outposts 複寫物件的目的地儲存貯體。當您從這些儲存貯體請求物件 (使用 `GetObject`) 或物件中繼資料 (使用 `HeadObject`) 時，S3 on Outposts 會在回應中傳回 `x-amz-replication-status` 標頭，如下所示：
+ 當您從來源儲存貯體請求物件時，如果請求中的物件符合複寫資格，S3 on Outposts 即會傳回 `x-amz-replication-status` 標頭。

  例如，假設您在複寫組態中指定物件前綴 `TaxDocs`，告知 S3 on Outposts 複寫僅具有金鑰名稱前綴 `TaxDocs` 的物件。系統會複寫您上傳且具有此金鑰名稱前綴 (例如 `TaxDocs/document1.pdf`) 的任何物件。針對具有此金鑰名稱前綴的物件請求，S3 on Outposts 會傳回 `x-amz-replication-status` 標頭，以及代表物件複寫狀態的下列其中一個值：`PENDING`、`COMPLETED` 或 `FAILED`。
**注意**  
若物件複寫在您上傳完物件後失敗，則您無法重試複寫。您必須再次上傳物件。對於缺少複寫角色許可或儲存貯體許可等問題，物件會轉換成 `FAILED` 狀態。對於暫時性錯誤，例如，如果儲存貯體或 Outpost 無法使用，複寫狀態不會轉換成 `FAILED`，但會保持 `PENDING`。資源恢復線上狀態後，S3 on Outposts 會繼續複寫這些物件。
+ 當您從目的地儲存貯體請求物件時，如果您請求中的物件是 S3 on Outposts 建立的複本，S3 on Outposts 會傳回值為 `REPLICA` 的 `x-amz-replication-status` 標頭。

**注意**  
在從已啟用複寫的來源儲存貯體中刪除物件之前，您應該先檢查物件的複寫狀態，確保已複寫物件。

### 啟用 Outposts 上的 Amazon S3 複本修改同步時的複寫狀態
<a name="outposts-replication-status-sync"></a>

當您的複寫規則啟用 S3 on Outposts 複本修改同步時，複本可以報告 `REPLICA` 以外的狀態。如果中繼資料變更正在複寫過程中，則複寫 `x-amz-replication-status` 標頭會傳回 `PENDING`。如果複本修改同步無法複寫中繼資料，則複寫標頭會傳回 `FAILED`。如果中繼資料正確複寫，複寫標頭會傳回值 `REPLICA`。

## 故障排除複寫
<a name="outposts-replication-troubleshoot"></a>

在您設定複寫之後，如果物件複本未出現在目的地 Amazon S3 on Outposts 儲存貯體中，請使用這些故障診斷技巧以識別並修正問題。
+ S3 on Outposts 複寫物件所需的時間長短取決於幾個因素，包括來源和目的地 Outposts 的距離，以及物件的大小。

  您可以檢查來源物件的複寫狀態。如果物件複寫狀態為 `PENDING`，表示 S3 on Outposts 尚未完成複寫。如果物件複寫狀態為 `FAILED`，請檢查來源儲存貯體中所設的複寫組態。
+ 在來源儲存貯體中的複寫組態中，驗證下列項目：
  + 目的地儲存貯體的存取點 Amazon Resource Name (ARN) 正確。
  + 金鑰名稱前綴正確。例如，如果您設定組態來複寫具有前綴 `Tax` 的物件，則只會複寫具有 `Tax/document1` 或 `Tax/document2` 等金鑰名稱的物件。不會複寫具有金鑰名稱 `document3` 的物件。
  + 狀態為 `Enabled`。
+ 確認在任何儲存貯體上均沒有已暫停的版本控制。來源與目的地儲存貯體都必須啟用版本控制。
+ 如果目的地儲存貯體由另一個儲存貯體擁有 AWS 帳戶，請確認儲存貯體擁有者在目的地儲存貯體上有儲存貯體政策，允許來源儲存貯體擁有者複寫物件。如需範例，請參閱 [當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶](outposts-replication-prerequisites-config.md#outposts-rep-prethree)。
+ 如果目的地儲存貯體中未出現物件複本，可能是下列問題阻礙了複寫作業：
  + 如果來源儲存貯體中的物件是由另一個複寫組態所建立的複本，則 S3 on Outposts 不會複寫該複本。例如，如果您將複寫組態從儲存貯體 A 設定到儲存貯體 B，再設定到儲存貯體 C，則 S3 on Outposts 不會將儲存貯體 B 中的物件複本複寫至儲存貯體 C。

    如果您想要將儲存貯體 A 的物件複製到儲存貯體 B 和儲存貯體 C，請在不同的複寫規則中，為來源儲存貯體複寫組態設定多個儲存貯體目的地。例如，在來源儲存貯體 A 上建立兩個複寫規則，其中一個規則可複寫到目的地儲存貯體 B，另一個規則複寫到目的地儲存貯體 C。
  + 來源儲存貯體擁有者可以授予其他上傳物件的 AWS 帳戶 許可。根據預設，來源儲存貯體擁有者不具其他帳戶所建立之物件的任何許可。複寫組態只會複寫來源儲存貯體擁有者具備存取許可的物件。為了避免複寫問題，來源儲存貯體擁有者可以授予其他 AWS 帳戶 許可，以有條件地建立物件，並需要這些物件的明確存取許可。
+ 假設您在複寫組態中新增一個規則，以複寫含特定標籤的物件子集。在此情況下，您必須於建立物件時指派特定標籤金鑰與值，以便 S3 on Outposts 複寫物件。如果您先建立物件，之後才將標籤新增至現有物件，S3 on Outposts 就不會複寫該物件。
+ 如果儲存貯體政策拒絕存取下列任何動作的複寫角色，則複寫會失敗：

  來源儲存貯體：

  ```
  1. "s3-outposts:GetObjectVersionForReplication",
  2. "s3-outposts:GetObjectVersionTagging"
  ```

  目的地儲存貯體：

  ```
  1. "s3-outposts:ReplicateObject",
  2. "s3-outposts:ReplicateDelete",
  3. "s3-outposts:ReplicateTags"
  ```
+ 當物件未複寫至其目的地 Outposts 時，Amazon EventBridge 可以通知您。如需詳細資訊，請參閱[針對 Outposts 上的 S3 複寫使用 EventBridge](outposts-replication-eventbridge.md)。

# 針對 Outposts 上的 S3 複寫使用 EventBridge
<a name="outposts-replication-eventbridge"></a>

Amazon S3 on Outposts 會與 Amazon EventBridge 整合，並使用 `s3-outposts` 命名空間。EventBridge 是無伺服器事件匯流排服務，可讓您用於將應用程式與來自各種來源的資料互相連線。如需詳細資訊，請參閱《Amazon EventBridge 使用者指南》**中的[什麼是 Amazon EventBridge？](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 

您也可以設定 Amazon EventBridge 以接收複寫失敗事件通知，協助疑難排解任何複寫組態問題。當物件未複寫至其目的地 Outposts 時，EventBridge 可以在執行個體中通知您。如需詳細了解複寫物件的目前狀態，請參閱 [複寫狀態概觀](manage-outposts-replication.md#outposts-replication-status-overview)。

每當 Outposts 儲存貯體發生事件，S3 on Outposts 就會將事件傳送至 EventBridge。與其他目的地不同，您不需要選取想要傳遞的事件類型。您也可以使用 EventBridge 規則將事件路由至其他目標。啟用 EventBridge 後，S3 on Outposts 會將下列所有事件傳送至 EventBridge。


| 事件類型 | Description  | 命名空間 | 
| --- | --- | --- | 
|  `OperationFailedReplication`  |  複寫規則內的物件複寫失敗。如需詳細了解 Outposts 上的 S3 複寫失敗原因，請參閱 [使用 EventBridge 檢視 Outposts 上的 S3 複寫失敗原因](#outposts-replication-failure-codes)。  |  `s3-outposts`  | 

## 使用 EventBridge 檢視 Outposts 上的 S3 複寫失敗原因
<a name="outposts-replication-failure-codes"></a>

下表列出 Outposts 上的 S3 複寫失敗原因。您可以將 EventBridge 規則設定為透過 Amazon Simple Queue Service (Amazon SQS) AWS Lambda、Amazon Simple Notification Service (Amazon SNS) 或 Amazon CloudWatch Logs 發佈和檢視失敗原因。如需詳細了解針對 EventBridge 使用這些資源的必要權限，請參閱[針對 EventBridge 使用資源型政策](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html)。


| 複寫失敗原因 | Description | 
| --- | --- | 
| AssumeRoleNotPermitted | S3 on Outposts 無法擔任複寫組態中指定的 AWS Identity and Access Management (IAM) 角色。 | 
| DstBucketNotFound | S3 on Outposts 找不到複寫組態中指定的目的地儲存貯體。 | 
| DstBucketUnversioned | Outposts 目的地儲存貯體上未啟用版本控制。若要以 Outposts 上的 S3 複寫來複寫物件，您必須啟用目的地儲存貯體上的版本控制。 | 
| DstDelObjNotPermitted | S3 on Outposts 無法將刪除項目複寫到目的地儲存貯體。可能缺少目的地儲存貯體的 s3-outposts:ReplicateDelete 許可。 | 
| DstMultipartCompleteNotPermitted | S3 on Outposts 無法完成目的地儲存貯體中物件的分段上傳。可能缺少目的地儲存貯體的 s3-outposts:ReplicateObject 許可。 | 
| DstMultipartInitNotPermitted | S3 on Outposts 無法起始目的地儲存貯體中物件的分段上傳。可能缺少目的地儲存貯體的 s3-outposts:ReplicateObject 許可。 | 
| DstMultipartPartUploadNotPermitted | S3 on Outposts 無法在目的地儲存貯體上傳分段物件。可能缺少目的地儲存貯體的 s3-outposts:ReplicateObject 許可。 | 
| DstOutOfCapacity | S3 on Outposts 無法複寫到目的地 Outpost，因為 Outpost 不在 S3 儲存容量中。 | 
| DstPutObjNotPermitted | S3 on Outposts 無法將物件複寫到目的地儲存貯體。可能缺少目的地儲存貯體的 s3-outposts:ReplicateObject 許可。 | 
| DstPutTaggingNotPermitted | S3 on Outposts 無法將物件標籤複寫到目的地儲存貯體。可能缺少目的地儲存貯體的 s3-outposts:ReplicateObject 許可。 | 
| DstVersionNotFound | S3 on Outposts 無法在目的地儲存貯體中找到所需的物件版本，以複寫該物件版本的中繼資料。 | 
| SrcBucketReplicationConfigMissing | S3 on Outposts 找不到與來源 Outposts 儲存貯體相關聯的存取點複寫組態。 | 
| SrcGetObjNotPermitted | S3 on Outposts 無法存取來源儲存貯體中的物件以進行複寫。可能缺少來源儲存貯體的 s3-outposts:GetObjectVersionForReplication 許可。 | 
| SrcGetTaggingNotPermitted | S3 on Outposts 無法從來源儲存貯體存取物件標籤資訊。可能缺少來源儲存貯體的 s3-outposts:GetObjectVersionTagging 許可。 | 
| SrcHeadObjectNotPermitted | S3 on Outposts 無法從來源儲存貯體擷取物件中繼資料。可能缺少來源儲存貯體的 s3-outposts:GetObjectVersionForReplication 許可。 | 
| SrcObjectNotEligible | 物件不符合複寫資格。物件或物件標籤不符合複寫組態。 | 

如需詳細了解複寫疑難排解，請參閱下列主題：
+ [建立 IAM 角色](outposts-replication-prerequisites-config.md#outposts-rep-pretwo)
+ [故障排除複寫](manage-outposts-replication.md#outposts-replication-troubleshoot)

## 以 CloudWatch 監控 EventBridge
<a name="outposts-replication-eventbridge-cw"></a>

Amazon EventBridge 與 Amazon CloudWatch 整合用以進行監控。EventBridge 會每分鐘自動將指標傳送至 CloudWatch。這些指標包括已符合[規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)的[事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)數量，以及規則叫用[目標](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)的次數。在 EventBridge 中執行規則時，與該規則關聯的所有目標都會受到叫用。您可採取下列方式，透過 CloudWatch 監控 EventBridge 行為。
+ 您可以從 CloudWatch 儀表板，監控 EventBridge 規則的可用 [EventBridge 指標](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-monitoring.html#eb-metrics)。然後，您可以使用 CloudWatch 的功能 (例如 CloudWatch 警示) 在特定指標上設定警示。如果這些指標達到您在警示中指定的自訂閾值，您就會收到通知，且可採取相應動作。
+ 您可以將 Amazon CloudWatch Logs 設定為 EventBridge 規則的目標。接著，EventBridge 會建立日誌串流，而 CloudWatch Logs 會將事件中的文字儲存為日誌項目。如需詳細資訊，請參閱 [EventBridge 和 CloudWatch Logs](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html#eb-cloudwatchlogs-permissions)。

如需詳細了解偵錯 EventBridge 事件傳遞和封存事件，請參閱下列主題：
+ [事件重試政策和使用無效字母佇列](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rule-dlq.html)
+ [封存 EventBridge 事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-archive-event.html)