跨帳號遷移是指不同帳號之間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,並分別授予相關權限原則。
通過帳號A 登入RAM控制台。
在左側導覽列,選擇
。在角色頁面,單擊建立角色。
在建立角色頁面的選擇可信實體類型地區,選擇阿里雲服務,點擊下一步。
在已選擇可信實體類型地區,選擇普通服務角色,輸入角色名稱和選擇受信服務(線上遷移服務)。
通過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>/*" ] } ] }