全部產品
Search
文件中心

Cloud Backup:跨帳號備份

更新時間:Nov 06, 2024

為便於企業內部採用中心化統一策略進行資料災備保護、合規性審計等,雲備份對雲上資源支援跨阿里雲帳號進行備份和恢複。本文介紹如何在阿里雲帳號B下建立RAM角色並授權給阿里雲帳號A,允許A以服務關聯角色SLR(AliyunServiceRoleForHbrCrossAccountBackup)扮演B的RAM角色來訪問B的資源,從而實現A跨帳號備份和恢複B的阿里雲資源。

背景資訊

在典型的LandingZone架構最佳實務中,企業記憶體在不同多個部門多個阿里雲帳號,開發或者測試環境需要隔離。而資料災備保護、合規性審計等則採取中心化統一策略。

例如在某企業內,擁有兩個獨立的生產環境帳號A和測試環境帳號B。現需要統一備份兩個帳號下的資源,且生產帳號A的資料可以恢複至測試帳號B作開發測試用途,測試帳號B的資料可恢複至生產帳號A做版本更新。此時可以挑選兩個帳號中的一個作為中心備份帳號,或者新建立一個中心備份帳號。A和B通過RAM授權給中心備份帳號進行備份,A和B中的資料也可以跨帳號恢複。

image

使用限制

重要
  • 目前支援ECS整機備份、ECS檔案備份、NAS備份、OSS備份、Tablestore備份、ECSDatabase Backup和SAP HANA備份情境使用跨帳號備份功能。ECS整機備份跨帳號備份後,恢複操作時只能恢複到原阿里雲帳號。具體支援情境請以雲備份控制台提示為準。

  • 支援地區:請參考地區支援的功能特性

授權原理

以阿里雲帳號A備份阿里雲帳號B資源為例,說明其授權原理:

  1. 帳號A建立服務關聯角色AliyunServiceRoleForHbrCrossAccountBackup,雲備份用此角色來扮演帳號B的RAM角色進行資料備份。

  2. 帳號B建立RAM角色hbrcrossrole,然後:

    1. 精確授權:先授予RAM角色hbrcrossrole系統策略AliyunHBRRolePolicy。該策略擁有訪問帳號B資源的許可權,內容如下:

      {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "nas:DescribeFileSystems",
              "nas:CreateMountTargetSpecial",
              "nas:DeleteMountTargetSpecial",
              "nas:DescribeMountTargets",
              "nas:DescribeAccessGroups"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "ecs:RunCommand",
              "ecs:CreateCommand",
              "ecs:InvokeCommand",
              "ecs:DeleteCommand",
              "ecs:DescribeCommands",
              "ecs:StopInvocation",
              "ecs:DescribeInvocationResults",
              "ecs:DescribeCloudAssistantStatus",
              "ecs:DescribeInstances",
              "ecs:DescribeInstanceRamRole",
              "ecs:DescribeInvocations",
              "ecs:CreateSnapshotGroup",
              "ecs:DescribeSnapshotGroups",
              "ecs:DeleteSnapshotGroup",
              "ecs:CopySnapshot"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": "bssapi:QueryAvailableInstances",
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "ecs:AttachInstanceRamRole",
              "ecs:DetachInstanceRamRole"
            ],
            "Resource": [
              "acs:ecs:*:*:instance/*",
              "acs:ram:*:*:role/aliyunecsaccessinghbrrole"
            ],
            "Effect": "Allow"
          },
          {
            "Action": [
              "ram:PassRole",
              "ram:GetRole",
              "ram:GetPolicy",
              "ram:ListPoliciesForRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "hcs-sgw:DescribeGateways"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "oss:ListBuckets",
              "oss:GetBucketInventory",
              "oss:ListObjects",
              "oss:HeadBucket",
              "oss:GetBucket",
              "oss:GetBucketAcl",
              "oss:GetBucketLocation",
              "oss:GetBucketInfo",
              "oss:PutObject",
              "oss:CopyObject",
              "oss:GetObject",
              "oss:AppendObject",
              "oss:GetObjectMeta",
              "oss:PutObjectACL",
              "oss:GetObjectACL",
              "oss:PutObjectTagging",
              "oss:GetObjectTagging",
              "oss:InitiateMultipartUpload",
              "oss:UploadPart",
              "oss:UploadPartCopy",
              "oss:CompleteMultipartUpload",
              "oss:AbortMultipartUpload",
              "oss:ListMultipartUploads",
              "oss:ListParts"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Effect": "Allow",
            "Action": [
              "ots:ListInstance",
              "ots:GetInstance",
              "ots:ListTable",
              "ots:CreateTable",
              "ots:UpdateTable",
              "ots:DescribeTable",
              "ots:BatchWriteRow",
              "ots:CreateTunnel",
              "ots:DeleteTunnel",
              "ots:ListTunnel",
              "ots:DescribeTunnel",
              "ots:ConsumeTunnel",
              "ots:GetRange",
              "ots:ListStream",
              "ots:DescribeStream",
              "ots:CreateIndex",
              "ots:CreateSearchIndex",
              "ots:DescribeSearchIndex",
              "ots:ListSearchIndex"
            ],
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "cms:QueryMetricList"
            ],
            "Resource": "*"
          },
          {
            "Action": [
              "ecs:DescribeSecurityGroups",
              "ecs:DescribeImages",
              "ecs:CreateImage",
              "ecs:DeleteImage",
              "ecs:DescribeSnapshots",
              "ecs:CreateSnapshot",
              "ecs:DeleteSnapshot",
              "ecs:DescribeSnapshotLinks",
              "ecs:DescribeAvailableResource",
              "ecs:ModifyInstanceAttribute",
              "ecs:CreateInstance",
              "ecs:DeleteInstance",
              "ecs:AllocatePublicIpAddress",
              "ecs:CreateDisk",
              "ecs:DescribeDisks",
              "ecs:AttachDisk",
              "ecs:DetachDisk",
              "ecs:DeleteDisk",
              "ecs:ResetDisk",
              "ecs:StartInstance",
              "ecs:StopInstance",
              "ecs:ReplaceSystemDisk",
              "ecs:ModifyResourceMeta"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "vpc:DescribeVpcs",
              "vpc:DescribeVSwitches"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "kms:ListKeys",
              "kms:ListAliases"
            ],
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
    2. 修改信任策略僅允許帳號A的服務關聯角色SLR(AliyunServiceRoleForHbrCrossAccountBackup)扮演帳號B的RAM角色來訪問阿里雲帳號B的資源。

  3. 在帳號A的雲備份控制台添加跨帳號備份帳號B,其中角色名稱必須為獲得授權的RAM角色hbrcrossrole

  4. 在帳號A的雲備份控制台切換到帳號B,就可以使用帳號A備份和恢複帳號B的資源。

假設使用阿里雲帳號A跨帳號備份和恢複阿里雲帳號B的資源,帳號A和帳號B允許的操作如下表所示:

帳號B的資源

帳號A允許的操作(備份管理帳號)

帳號B允許的操作(待備份資源帳號)

ECS整機

  • 查看帳號B的待備份ECS

  • 管理ECS整機備份策略

  • 為帳號A的ECS配置備份策略/發起備份

  • 管理ECS整機備份點/發起恢複

  • 查看待備份ECS

  • 在快照控制台查看或使用通過ECS整機備份建立的快照

其他類型資源

  • 查看帳號B的待備份資源

  • 管理備份計劃/策略

  • 對帳號B的資源發起備份/恢複

  • 查看待備份資源

費用說明

使用雲備份提供的跨帳號備份功能是免費的。但備份恢複產生的費用由備份管理帳號(阿里雲帳號A)支付,其中ECS整機備份的快照服務費用、OSS請求費用仍由原帳號(阿里雲帳號B)支付。更多資訊,請參見計費方式與計費項目

假設使用阿里雲帳號A跨帳號備份和恢複阿里雲帳號B的資源,帳號A和帳號B的計費項目如下表所示:

帳號B的資源

帳號A計費項目(備份管理帳號)

帳號B計費項目(待備份資源帳號)

ECS整機

  • ECS整機備份軟體使用費

  • 快照容量費

  • 開啟備份異地複寫後所產生的跨地區流量費和目標地區快照容量費

ECS檔案

  • 檔案備份軟體使用費

  • 備份庫儲存容量費

  • 開啟備份異地複寫後所產生的鏡像備份庫儲存容量費和備份庫跨地區複製流量費

/

NAS

  • 備份庫儲存容量費

  • 開啟備份異地複寫後所產生的鏡像備份庫儲存容量費和備份庫跨地區複製流量費

  • 訪問NAS的低頻儲存資料時,備份服務產生的NAS低頻儲存讀寫流量費

OSS

  • 備份庫儲存容量費

  • 開啟備份異地複寫後所產生的鏡像備份庫儲存容量費和備份庫跨地區複製流量費

  • 備份服務產生的OSS請求費

Tablestore

  • 備份庫儲存容量費

  • 開啟備份異地複寫後所產生的鏡像備份庫儲存容量費和備份庫跨地區複製流量費

/

ECS資料庫

  • Database Backup倉庫租用費

  • Database Backup儲存容量費

/

SAP HANA

  • SAP HANA 備份軟體使用費

  • 備份庫儲存容量費

  • 開啟備份異地複寫後所產生的鏡像備份庫儲存容量費和備份庫跨地區複製流量費

/

步驟一:為阿里雲帳號A建立服務關聯角色

使用阿里雲帳號A進行跨帳號備份和恢複,您需要為阿里雲帳號A授權服務關聯角色AliyunServiceRoleForHbrCrossAccountBackup。

  • 角色名稱:AliyunServiceRoleForHbrCrossAccountBackup

  • 權限原則:AliyunServiceRolePolicyForHbrCrossAccountBackup

  • 許可權說明:允許備份服務跨帳號訪問其他被授權帳號的資源,以進行跨帳號備份和恢複。

重要

該操作只需要在首次進入時操作一次。

  1. 使用阿里雲帳號A登入雲備份管理主控台

  2. 在左側導覽列,選擇 备份 > 跨账号备份。

    頁面會彈出授權對話方塊,根據提示授權角色。

  3. 雲備份服務授權對話方塊中,單擊確認授權

    image.png更多資訊,請參見雲備份服務關聯角色

步驟二:為阿里雲帳號B建立RAM角色

  1. 使用阿里雲帳號B登入RAM控制台

  2. 在左側導覽列中,選擇身份管理 > 角色

  3. 角色頁面,單擊建立角色

  4. 選擇類型設定精靈中,選擇可信實體類型為阿里雲帳號,然後單擊下一步

  5. 配置角色設定精靈中,配置如下內容,然後單擊完成

    參數

    說明

    角色名稱

    輸入RAM角色名稱,例如hbrcrossrole

    備忘

    輸入建立RAM角色的備忘資訊。

    選擇信任的雲帳號

    選擇其它雲帳號。此處選擇帳號A的帳號ID。

    說明

  6. 建立完成設定精靈中,單擊關閉

步驟三:為RAM角色授權

建立RAM角色後,您可以使用該RAM角色進行相關操作,但該RAM角色無任何許可權,您需要為該RAM角色授予系統策略或自訂策略。在精確授權介面,RAM預設提供兩種系統策略,請選擇一種授權。

  • AdministratorAccess:授予目標帳號管理所有雲資源的許可權。

  • AliyunHBRRolePolicy:(推薦)授予雲備份系統權限原則。

本文以為RAM角色授予AliyunHBRRolePolicy許可權為例。

  1. 使用阿里雲帳號B登入RAM控制台

  2. 在左側導覽列,選擇身份管理 > 角色

  3. 找到目標RAM角色(例如hbrcrossrole),進入目標RAM角色詳情頁。

  4. 許可權管理頁簽,單擊精確授權

  5. 精確授權面板,選擇權限類別型為系統策略,輸入策略名稱稱為AliyunHBRRolePolicy,然後單擊確定

  6. 系統提示精確授權成功,單擊關閉

  7. 修改該RAM角色的信任策略。

    1. 在當前角色的詳情頁面,單擊信任策略

    2. 單擊編輯信任策略

    3. 在編輯框中,將下述代碼複製至文字框。其中目標帳號ID為阿里雲帳號A的帳號ID。

      該策略表示阿里雲帳號A有許可權通過雲備份擷取臨時Token來操作阿里雲帳號B的資源。

      說明

      安全設定頁面查看阿里雲帳號ID。

      {
       "Statement": [
           {
               "Action": "sts:AssumeRole",
               "Effect": "Allow",
               "Principal": {
                   "RAM": [
                       "acs:ram::目標帳號ID:role/AliyunServiceRoleForHbrCrossAccountBackup"
                   ]
               }
           }
       ],
       "Version": "1"
      }
    4. 單擊儲存信任策略。配置完成。

步驟四:添加備份帳號

  1. 使用阿里雲帳號A登入雲備份管理主控台

  2. 在頂部功能表列,選擇所在地區。

    重要

    如果您要備份阿里雲帳號B在地區regionC的ECS檔案、NAS、OSS、Tablestore、資料庫或ECS整機,請選擇地區regionC。即待備份資源在哪個地區,就在哪個地區添加備份帳號。

  3. 在左側導覽列,選擇 备份 > 跨账号备份。

  4. 在跨账号备份,單擊添加备份账号。

  5. 在添加备份账号對話方塊,配置以下參數,然後單擊確定

    image.png

    參數

    說明

    阿里云账号ID

    輸入您的阿里雲帳號ID。此處填寫帳號B的帳號ID。

    說明

    安全設定頁面查看阿里雲帳號ID。

    角色名称

    輸入已建立的RAM角色名稱。此處填寫hbrcrossrole,即您在步驟二:為阿里雲帳號B建立RAM角色建立的RAM角色名稱。

    重要

    您可以單擊授权检查,檢查之前配置授權是否正確。若提示錯誤,請檢查之前配置後重試。通過檢查時,介面會提示此角色已经授权您访问其所属资源的权限。

    账号名称

    您可以任意設定帳號別名,方便進行備份帳號的管理。

    建立成功後,您可以看到已經增加一條跨帳號備份記錄。

    zhanghao

步驟五:開始跨帳號備份

建立完成後,您就可以使用阿里雲帳號A登入控制台,切換帳號,進行跨帳號備份阿里雲帳號B的資料來源。

  1. 使用阿里雲帳號A登入雲備份管理主控台

  2. 在頂部功能表列,選擇待備份資源所在的地區。

  3. 單擊登录账号,選擇阿里雲帳號B。image.png

  4. 在左側導航選擇不同備份功能,就可以進行跨帳號備份了。

    重要

    目前支援ECS檔案備份、NAS備份、OSS備份、Tablestore備份、Database Backup和SAP HANA備份情境使用跨帳號備份功能。ECS整機備份跨帳號備份後,恢複操作時只能恢複到原阿里雲帳號。具體支援情境請以雲備份控制台提示為準。

    例如,當您選擇ECS檔案備份,就可以看到ECS執行個體列表中已經讀取到阿里雲帳號B名下的ECS資產。備份完成後,阿里雲帳號B的資料來源已經備份到阿里雲帳號A的備份庫。

步驟六:跨帳號恢複

您已完成了阿里雲帳號A備份阿里雲帳號B的資料來源。此時,備份庫包含了阿里雲帳號A(未進行跨帳號備份之前的資料)和阿里雲帳號B的資料備份,備份庫是通用的。您可以從備份庫的任意歷史備份點進行恢複,可以恢複至帳號A,也可以恢複到帳號B。

  1. 切換帳號。

    備份庫是通用的,阿里雲帳號A和B都可以使用備份庫中的歷史備份點進行恢複。您希望恢複哪個帳號的資料,就切換到哪個帳號。

  2. 建立恢複任務。建立恢複任務的操作步驟,與各資料來源恢複步驟一致。

    image.png

如何取消跨帳號備份功能

重要
  • 取消跨帳號備份功能後,阿里雲帳號A無法再備份阿里雲帳號B的資料來源。請謹慎評估後操作。

  • 建議您保留對其他帳號的跨帳號備份功能,不進行備份恢複操作,不會新增費用。

  • 之前已經備份的資料仍然保留在備份庫,這些資料繼續佔用儲存容量,雲備份會繼續收取容量費用。希望停止計費,請參見雲備份服務如何停止計費?。注意刪除備份後資料不可恢複。

  1. 切換到阿里雲帳號B,在對應資料來源頁面,卸載備份用戶端(如果有)、登出執行個體、刪除備份庫等。具體操作,請參見雲備份服務如何停止計費?

  2. 切換到阿里雲帳號A,在雲備份控制台的跨帳號備份頁面,刪除阿里雲帳號B。image.png

  3. 刪除為阿里雲帳號B建立的RAM角色。

    1. 使用阿里雲帳號B登入RAM控制台

    2. 在左側導覽列中,選擇身份管理 > 角色

    3. 找到為阿里雲帳號B建立的RAM角色,例如hbrcrossrole。在其操作列,進行刪除。

相關文檔