教學課程:將資料從現場部署儲存傳輸到不同的 Amazon S3AWS 帳戶 - AWS DataSync

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

教學課程:將資料從現場部署儲存傳輸到不同的 Amazon S3AWS 帳戶

AWS DataSync與內部部署儲存體搭配使用時,您通常會將資料複製到與DataSync代理程式相AWS 帳戶同的AWS儲存服務。不過,在某些情況下,您可能需要將資料傳輸到與其他帳戶相關聯的 Amazon S3 儲存貯體。

重要

只有在AWS 帳戶 Amazon S3 是其中一個DataSync位置時,才能使用本教學中的方法複製資料。

概要

在本教學中,您將了解AWS Identity and Access Management (IAM) 和AWS Command Line Interface (AWS CLI) 如何協助您建立將資料從現場部署儲存傳輸到不同 S3 儲存貯體的DataSync任務AWS 帳戶。

以下是這種情況可能是什麼樣子:

下圖說明此方案。

從內部部署儲存系統跨網際網路移入的資料範DataSync例案例AWS。資料會先傳輸到一個AWS 帳戶 (帳戶 A),然後最終將其傳輸到另一個AWS 帳戶 (帳戶 B) 中的 Amazon S3 儲存貯體。

先決條件

在開始 IAM 工作以促進跨帳戶轉移之前,如果尚未執行以下操作:

  1. 設定您的網路,讓內部部署儲存系統可以與之連線AWS。

  2. 使用帳戶 A 部署和啟用您的DataSync代理程式

  3. 針對要從中複製資料的內部部署儲存系統,使用帳戶 A 建立DataSync來源位置。

  4. 設定AWS CLI帳戶 A。您需要在帳戶 B 中建立 S3 儲存貯體的DataSync目標位置。AWS CLI

步驟 1:DataSync在帳戶 A 中建立的 IAM 角色

您需要 IAM 角色,以將DataSync授予您在 B 帳戶儲存貯體的寫入許可。

當您為值區建立位置時,DataSync可以自動建立並扮演具有存取該值區之正確權限的角色。由於您要跨帳戶轉移角色,因此您必須手動建立角色。

如需詳細資訊,請參閱《IAM 使用者指南》中的為AWS 服務 (主控台) 建立角色。

建立 IAM 角色

建立DataSync身為受信任實體的角色。

建立 IAM 角色
  1. AWS Management Console使用帳戶 A 登錄。

  2. 前往網址 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  3. 在左側導覽窗格的 [存取管理] 下,選擇 [角色],然後選擇 [建立角色]。

  4. 在 [選取信任的實體] 頁面上,針對 [信任的實體類型] 選擇AWS 服務

  5. 對於 [使用案例],請DataSync在下拉式清單中選擇並選取DataSync。選擇 下一步

  6. Add permissions (新增許可) 頁面上,選擇 Next (下一步)。

  7. 為您的角色命名,然後選擇 [建立角色]。

將自訂政策連接至 IAM 角色

IAM 角色需要允許DataSync寫入帳戶 B 中的 S3 儲存貯體的政策。

將自訂政策連接至 IAM 角色
  1. 在 IAM 主控台的 [角色] 頁面上,搜尋剛建立的角色,然後選擇其名稱。

  2. 在角色的詳細資訊頁面上,選擇可標籤。選擇新增權限,然後選擇建立內嵌政策

  3. 選擇 JSON 索引標籤,然後執行下列動作:

    1. 將下列 JSON 貼入政策編輯器中:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket/*" } ] }
    2. account-b-bucket以帳戶 B 中的 S3 儲存貯體名稱取代 B 中的 S3 儲存貯體

  4. 選擇 Review policy (檢閱政策)。

  5. 為您的原則命名,然後選擇 [建立原則]。

步驟 2:停用帳戶 B 中 S3 儲存貯體的 ACL

複製到 S3 儲存貯體的所有資料必須屬於帳戶 B。若要確保帳戶 B 是資料的擁有者,請停用儲存貯體的存取控制清單 (ACL)。如需詳細資訊,請參閱《Simple Storage Service (Amazon S3) 使用者指南》中的控制物件的所有權並停用儲存貯體的 ACL

停用 S3 儲存貯體的 ACL
  1. 在中AWS Management Console,切換至帳戶 B。

  2. 請在 https://console.aws.amazon.com/s3/ 開啟 Amazon Simple Storage Service (Amazon S3) 主控台。

  3. 在左側導覽窗格中,選擇 Buckets (儲存貯體)。

  4. 在 [儲存體] 清單中,選擇要傳輸資料的 S3 儲存貯體。

  5. 在值區的詳細資訊頁面上,選擇 [權限] 索引標籤。

  6. Object Ownership (物件擁有權) 下,選擇 Edit (編輯)。

  7. 如果尚未選取,請選擇停用 ACL (建議) 選項。

  8. 選擇 Save changes (儲存變更)。

步驟 3:更新帳戶 B 中的 S3 儲存貯體政策

在帳戶 B 中修改 S3 儲存貯體政策,以將存取權授予您DataSync在帳戶 A 中建立的 IAM 角色。

更新後的原則 (在下列指示中提供給您) 包含兩個主參與者:

  • 第一個主體會指定您在步驟 1 中建立的帳戶 A 中的 IAM 角色。此角色可DataSync將寫入 B 帳戶儲存貯體中的 S3 儲存貯體。

  • 第二個主體會在帳戶 A 中指定您用來存取主控台或的 IAM 角色AWS CLI。在步驟 4 中,您將在建立 S3 儲存貯體的目標位置時使用此角色。

更新 S3 儲存貯體政策
  1. 仍在 S3 主控台並使用帳戶 B 時,請選擇要將資料複製到的 S3 儲存貯體。

  2. 在值區的詳細資訊頁面上,選擇 [權限] 索引標籤。

  3. 在「儲存貯體政策」下,選擇「編輯」 並執行下列動作來修改 S3 儲存貯體政策:

    1. 更新編輯器中的內容以包含下列原則陳述式:

      { "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-datasync-role" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::account-b-bucket", "arn:aws:s3:::account-b-bucket/*" ] }, { "Sid": "DataSyncCreateS3Location", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-your-role" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::account-b-bucket" } ] }
    2. account-a-id以「帳戶 A」的AWS 帳戶編號取代。

    3. 取代name-of-datasync-role為您DataSync在帳戶 A 中建立的 IAM 角色 (返回步驟 1)。

    4. account-b-bucket以帳戶 B 中的 S3 儲存貯體名稱取代 B 中的 S3 儲存貯體

    5. 以您用來存取主控台或AWS CLI帳戶 A 的 IAM 角色取代name-of-your-role

  4. 選擇 Save changes (儲存變更)。

步驟 4:為 S3 儲存貯體建立DataSync目標位置

為 S3 儲存貯體建立位置後,您可以執行DataSync工作。不過,DataSync主控台不支援在不同帳戶中建立位置。您必須先使用建立位置,AWS CLI才能執行工作。

若要使用 CLI 建立DataSync位置
  1. 開啟 終端機。

  2. 確定您的 CLI 設定檔已設定為使用帳戶 A。

  3. 複製以下命令:

    aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::account-b-bucket \ --s3-config '{"BucketAccessRoleArn":"arn:aws:iam::account-a-id:role/name-of-datasync-role"}'
  4. account-b-bucket以帳戶 B 中的 S3 儲存貯體名稱取代 B 中的 S3 儲存貯體

  5. account-a-id以「帳戶 A」的AWS 帳戶編號取代。

  6. 取代name-of-datasync-role為您DataSync在帳戶 A 中建立的 IAM 角色 (返回步驟 1)。

  7. 執行命令。

    如果指令傳回類似於此的DataSync位置 ARN,表示您已成功建立該位置:

    { "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
  8. 在中切換回帳戶 AAWS Management Console。

  9. 請在以下位置開啟DataSync主控台。 https://console.aws.amazon.com/datasync/

  10. 在左側導覽窗格中,選擇位置

    您可以在剛使用 CLI 建立的帳戶 B 中查看 S3 儲存貯體的位置。

步驟 5:建立並開始工DataSync作

在移動數據之前,讓我們回顧一下您到目前為止所做的工作:

  • 在帳戶 A 中部署並啟動您的DataSync代理程式,以便代理程式可以從您的自我管理儲存系統讀取並與之通訊AWS。

  • 在帳戶 A 中建立 IAM 角色,DataSync以便將資料寫入帳戶 B 中的 S3 儲存貯體。

  • 在帳戶 B 中設定 S3 儲存貯體,以確保您的DataSync任務正常運作。

  • 在帳戶 A 中建立您的DataSync來源和目的地位置。

若要建立並啟動DataSync工作
  1. 在帳戶 A 中仍在使用DataSync主控台時,展開左側導覽窗格中的 [資料傳輸],然後選擇 [工作] 和 [建立工作]。

    注意

    您必須使用您在步驟 3 中在 S3 儲存貯體政策中指定的帳戶 A 相同的 IAM 角色登入主控台。

  2. 在 [設定來源位置] 頁面上,選擇 [選擇現有位置]。選擇要從中複製資料的來源位置 (您的內部部署儲存空間),然後選擇 [下一步]。

  3. 在 [設定目的地位置] 頁面上,選擇 [選擇現有位置]。選擇要將資料複製到的目的地位置 (帳戶 B 中的 S3 儲存貯體),然後選擇下一步

  4. [規劃設定] 頁面上,為工作指定名稱。視需要設定其他設定,例如指定 AmazonCloudWatch 日誌群組。選擇 下一步

  5. 在 [檢閱] 頁面上檢閱您的設定,然後選擇 [建立工作]。

  6. 在工作的詳細資訊頁面上,選擇開始,然後選擇下列其中一項:

    • 若要在不修改的情況下執行工作,請選擇以預設值啟動

    • 若要在執行工作之前修改工作,請選擇 [以覆寫選項開始]。

任務完成後,您會在 S3 儲存貯體中看到來自現場部署儲存的資料。您現在可以從帳戶 B 存取儲存貯體資料。

相關資源

如需本教學所做的詳細資訊,請參閱下列主題: