建立 Outposts 上的複寫規則 - Amazon S3 on Outposts

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

建立 Outposts 上的複寫規則

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

注意

不會複寫您設定複寫規則之前就已存在於來源 Outposts 儲存貯體中的物件。換句話說,S3 on Outposts 不會追溯複寫物件。若要複寫在複寫組態之前建立的物件,您可以使用 CopyObjectAPI操作將其複製到相同的儲存貯體。複製物件之後,這些物件會在儲存貯體中顯示為「新」物件,且複寫組態將套用至這些物件。如需複製物件的詳細資訊,請參閱 使用 複製 Amazon S3 on Outposts 儲存貯體中的物件 AWS SDK for JavaCopyObjectAmazon Simple Storage Service API參考 中。

設定複寫時,會將複寫規則新增至來源 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) 和 AWS SDK for Java 和 的範例 AWS SDK for .NET。如需跨帳戶 S3 on Outposts 許可的相關資訊,請參閱 當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶

如需設定 S3 on Outposts 複寫規則的先決條件,請參閱 建立複寫規則的先決條件

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

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

建立複寫規則
  1. 登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

  2. Outposts 儲存貯體清單中,選擇您要使用做為來源儲存貯體的儲存貯體名稱。

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

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

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

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

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

  7. 來源儲存貯體之下,您有下列選項可用來設定複寫來源:

    • 若要複寫整個儲存貯體,請選擇套用至儲存貯體中的所有物件

    • 若要將字首或標籤篩選套用至複寫來源,請選擇使用一或多個篩選條件限制此規則的範圍。您可以合併字首與標籤。

      • 若要複寫具有相同字首的所有物件,請在字首下的方塊中輸入字首。使用字首篩選條件以限制複寫名稱以相同字串 (例如,pictures) 開頭的所有物件。

        如果您輸入的字首是資料夾名稱,您必須使用 / (正斜線) 作為最後一個字元 (例如,pictures/)。

      • 若要複寫具有一個或多個相同物件標籤的所有物件,請選擇新增標籤,然後在方塊中輸入鍵/值對。若要新增另一個索引標籤,請重複此程序,。如需物件標籤的詳細資訊,請參閱 新增 S3 on Outposts 儲存貯體的標籤

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

  9. 目的地 下,選擇您希望 S3 on Outposts 複寫物件ARN的目的地 Outposts 儲存貯體存取點。目的地 Outposts 儲存貯體可與來源 Outposts 儲存貯體位於相同或不同 AWS 帳戶 位置。

    如果目的地儲存貯體位在與來源 Outposts 儲存貯體不同的帳戶中,您必須將儲存貯體政策新增至目的地 Outposts 儲存貯體,以將複寫目的地 Outposts 儲存貯體中物件的許可授予來源 Outposts 儲存貯體帳戶擁有者。如需詳細資訊,請參閱當來源和目的地 Outposts 儲存貯體由不同 擁有時授予許可 AWS 帳戶

    注意

    如果未在目的地 Outposts 儲存貯體上啟用版本控制,您會收到包含啟用版本控制按鈕的警告訊息。選擇此按鈕,以在儲存貯體上啟用版本控制。

  10. 設定 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:CreateRoleiam:PassRole許可,才能建立和傳遞授予 S3 on Outposts 複寫許可IAM的角色。如需詳細資訊,請參閱 IAM 使用者指南 中的授予使用者將角色傳遞至 的許可 AWS 服務

  11. 依預設,Outposts 儲存貯體中的所有物件都會加密。如需 S3 on Outposts 加密的詳細資訊,請參閱 S3 on Outposts 中的資料加密。只有透過使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 加密的物件才能複寫。不支援使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 或伺服器端加密搭配客戶提供的加密金鑰 (SSE-C) 進行加密的物件複寫。

  12. 設定複寫規則組態時,視需要啟用下列其他選項:

  13. 若要完成,請選擇建立規則

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

若要在來源和目的地 Outposts 儲存貯體由相同 擁有時使用 AWS CLI 設定複寫 AWS 帳戶,請執行下列動作:

  • 建立來源與目的地 Outposts 儲存貯體。

  • 在兩個儲存貯體上啟用版本控制。

  • 建立IAM角色,提供 S3 on Outposts 複寫物件的許可。

  • 將複寫組態新增至來源 Outposts 儲存貯體。

您可以測試以驗證設定。

在來源和目的地 Outposts 儲存貯體由相同 擁有時設定複寫 AWS 帳戶
  1. 設定 AWS CLI的憑證描述檔。在此範例中,我們使用描述檔名稱 acctA。如需設定憑證描述檔的相關資訊,請參閱《AWS Command Line Interface 使用者指南》中的具名描述檔

    重要

    用於此練習的描述檔必須有必要的許可。例如,在複寫組態中,您可以指定 S3 on Outposts 可擔任IAM的服務角色。只有當您所用的描述檔有 iam:CreateRoleiam:PassRole 許可時才可執行此作業。如需詳細資訊,請參閱 IAM 使用者指南 中的授予使用者將角色傳遞至 的許可 AWS 服務。如果您使用管理員憑證建立具名描述檔,具名描述檔將擁有執行所有任務的必要許可。

  2. 建立 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
  3. 建立 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
  4. 建立IAM服務角色。稍後在複寫組態中,您會將此服務角色新增至 SOURCE-OUTPOSTS-BUCKET 儲存貯體。S3 on Outposts 就會擔任此角色以代您複寫物件。您建立IAM角色的步驟分為兩個:

    1. 建立 IAM 角色。

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

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3-outposts.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. 執行下列 命令以建立角色。以您自己的資訊取代 user input placeholders

        aws iam create-role --role-name replicationRole --assume-role-policy-document file://s3-on-outposts-role-trust-policy.json --profile acctA
    2. 將許可政策連接到服務角色。

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

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3-outposts:GetObjectVersionForReplication", "s3-outposts:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET/object/*", "arn:aws:s3-outposts:region: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:region:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*", "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*" ] } ] }
      2. 執行下列命令以建立政策,並將它連接至角色。以您自己的資訊取代 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
  5. 將複寫組態新增至 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" } } ] }
    2. 執行下列 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
    3. 使用 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
  6. 在 Amazon S3 主控台中測試設定:

    1. 登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

    2. SOURCE-OUTPOSTS-BUCKET 儲存貯體中,建立名為 Tax 的資料夾。

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

    4. DESTINATION-OUTPOSTS-BUCKET 儲存貯體中驗證下列事項:

      • S3 on Outposts 已複寫物件。

        注意

        S3 on Outposts 複寫物件所需的時間長短取決於物件大小。如需如何查看複寫狀態的相關資訊,請參閱 取得複寫狀態資訊

      • 在物件屬性標籤中,複寫狀態已設定為複寫 (將此識別為複本物件)。