全部產品
Search
文件中心

Data Online Migration:跨帳號遷移RAM角色授權策略

更新時間:Aug 10, 2024

跨帳號遷移是指不同帳號之間Bucket的資料移轉。本文介紹跨帳號遷移如何為RAM角色授予許可權。

前提條件

說明

如果登入控制台的帳號與源帳號、目的帳號以及清單儲存帳號相同,請參考同帳號遷移建立RAM角色並授權策略。關於清單儲存的源類型,包括AWS S3 Inventory、HTTP/HTTPS和Alibaba OSS Inventory。如果清單儲存的帳號D僅在清單列表位置選擇OSS,並且與登入控制台帳號不同時,則可參考跨帳號遷移。

本文所涉及的帳號和 Bucket 如下:

  • 帳號A用於登入遷移控制台、建立源以及目標的資料地址和遷移任務。

  • 已在帳號B下的某個地區建立Bucket B作為跨帳號遷移的源Bucket,並記錄帳號B的UID、Bucket B的名稱及所在地區。

  • 已在帳號C下的某個地區建立Bucket C作為跨帳號遷移的目標Bucket,並記錄帳號C的UID、Bucket C的名稱及所在地區。

  • 已在帳號D下的某個地區建立Bucket D作為跨帳號遷移的清單儲存Bucket,並記錄帳號D的UID、Bucket D的名稱及所在地區。

建立用於遷移資料的RAM角色

鑒於授權阿里雲帳號需要使用AK和SK,為了確保資料安全,建議您建立RAM角色,並按照最小許可權原則對該RAM角色進行授權策略,以便進行資料移轉。

說明

若需進行跨帳號資料移轉,請根據實際情況建議在帳號A下分別建立對應源阿里雲帳號B的RAM角色Role-B、目標阿里雲帳號C的RAM角色Role-C,以及清單儲存帳號D的RAM角色Role-D,並分別授予相關權限原則。

  1. 通過帳號A 登入RAM控制台

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

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

  4. 建立角色頁面的選擇可信實體類型地區,選擇阿里雲服務,點擊下一步。

  5. 在已選擇可信實體類型地區,選擇普通服務角色,輸入角色名稱和選擇受信服務(線上遷移服務)。

通過OSS控制台給遷移的RAM角色授予策略

重要

通過Bucket Policy按文法策略的方式進行授權時,新添加的策略會覆蓋已有的策略,請確保新添加策略包含已有策略的內容,否則可能導致關聯已有策略的操作失敗。實際使用時,請相應替換自訂角色名稱(如果自訂角色名稱包含大寫字母,需轉換為對應的小寫字母。例如已建立的角色名稱為AliyunSrcRoleA,您需要轉換為aliyunsrcrolea)。

通過源阿里雲帳號B給登入控制台帳號A的RAM角色Role-B授權

  • 登入OSS 控制台帳號B,進入遷移的Bucket B介面

  • 在左側導覽列,選擇許可權控制 > Bucket 授權策略

  • 在文法策略添加中,增加以下Bucket Policy。

    • 自訂策略:

      授予RAM角色列舉並讀取來源資料所在Bucket-B下所有資源的許可權

      說明

      以下權限原則僅供您參考,其中<mybucket>為源帳號B下的Bucket-B,<myuid>為源帳號B的UID,<uid>為登入控制台帳號A的UID,<rolename>為帳號A下的RAM角色名稱Role-B,請根據實際值替換。關於OSS權限原則的更多資訊,請參見RAM Policy常見樣本

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "oss:List*",
              "oss:Get*"
            ],
            "Principal": [
               "arn:sts::<uid>:assumed-role/<rolename>/*"
            ],
            "Resource": [
              "acs:oss:*:<myuid>:<mybucket>",
              "acs:oss:*:<myuid>:<mybucket>/*"
            ]
          }
        ]
      }

通過目標阿里雲帳號C給登入控制台帳號A的RAM角色Role-C授權

  • 登入OSS控制台帳號C,進入遷移的Bucket C介面

  • 在左側導覽列,選擇許可權控制 > Bucket 授權策略

  • 在文法策略添加中,增加以下Bucket Policy。

    • 自訂策略:

      授予RAM角色對存放遷移後資料的Bucket-C下所有資源進行列舉、讀取、刪除和寫操作的許可權。

      說明

      以下權限原則僅供您參考,其中<mybucket>為目標帳號C下的Bucket-C,<myuid>為目標帳號C的UID,<uid>為登入控制台帳號A的UID,<rolename>為帳號A下的RAM角色名稱Role-C,請根據實際值替換。關於OSS權限原則的更多資訊,請參見RAM Policy常見樣本

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "oss:List*",
              "oss:Get*",
              "oss:Put*",
              "oss:AbortMultipartUpload"
            ],
            "Principal": [
               "arn:sts::<uid>:assumed-role/<rolename>/*"
            ],
            "Resource": [
              "acs:oss:*:<myuid>:<mybucket>",
              "acs:oss:*:<myuid>:<mybucket>/*"
            ]
          }
        ]
      }

通過清單儲存阿里雲帳號D給登入控制台帳號A的RAM角色Role-D授權

  • 登入OSS 控制台帳號D,進入遷移的Bucket D介面

  • 在左側導覽列,選擇許可權控制 > Bucket 授權策略

  • 在文法策略添加中,增加以下Bucket Policy。

    • 自訂策略:

      授予RAM角色列舉並讀取清單所在Bucket-D下所有資源的許可權

      說明

      以下權限原則僅供您參考,其中<mybucket>為源帳號D下的Bucket-D,<myuid>為源帳號D的UID,<uid>為登入控制台帳號A的UID,<rolename>為帳號A下的RAM角色名稱Role-D,請根據實際值替換。關於OSS權限原則的更多資訊,請參見RAM Policy常見樣本

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "oss:List*",
              "oss:Get*"
            ],
            "Principal": [
               "arn:sts::<uid>:assumed-role/<rolename>/*"
            ],
            "Resource": [
              "acs:oss:*:<myuid>:<mybucket>",
              "acs:oss:*:<myuid>:<mybucket>/*"
            ]
          }
        ]
      }