跨賬號遷移RAM角色授權策略
跨賬號遷移是指不同賬號之間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>/*" ] } ] }