本文介紹在使用Data Transmission Service配置跨阿里雲帳號的任務時,如何為源或目標庫執行個體所屬的阿里雲帳號配置RAM授權。
背景資訊
在使用DTS配置跨帳號任務時,需要使用資料庫執行個體所屬的阿里雲帳號(主帳號)配置RAM授權,將建立DTS任務的阿里雲帳號(主帳號)作為授信雲帳號,允許其通過Data Transmission Service訪問資料庫執行個體所屬阿里雲帳號的相關雲資源。
支援的資料庫
在配置DTS任務時,支援配置是否跨阿里雲帳號的資料庫如下表所示。
源庫是否跨阿里雲帳號的配置結果,不影響目標庫資料庫類型的選項。
資料庫執行個體 | 阿里雲資料庫 | 自建資料庫 |
源庫 | RDS MySQL、RDS MariaDB、RDS PostgreSQL、RDS SQL Server、PolarDB-X 1.0、PolarDB-X 2.0、PolarDB PostgreSQL版、PolarDB PostgreSQL版(相容Oracle)、PolarDB MySQL版、KVStore for Redis、雲原生記憶體資料庫Tair、ApsaraDB for MongoDB、OceanBase(MySQL模式)。 |
|
目標庫 | RDS MySQL、PolarDB MySQL版、雲資料庫SelectDB版、KVStore for Redis、雲原生記憶體資料庫Tair和雲資料庫ClickHouse。 | 暫不支援。 |
前提條件
源和目標庫執行個體所屬的阿里雲帳號已經授權DTS的RAM角色訪問其雲資源,詳情請參見授予DTS訪問雲資源的許可權。
已擷取源庫執行個體、目標庫執行個體和建立DTS任務的阿里雲帳號(主帳號)ID。您可以使用對應的阿里雲帳號(主帳號)登入安全設定頁面,擷取帳號ID。
注意事項
當前僅RDS MySQL執行個體間、雲原生記憶體資料庫Tair(含企業版的KVStore for Redis)執行個體間,支援跨帳號的雙向同步任務。
暫不支援不同屬性帳號之間(如金融雲和政務雲帳號之間)的同步任務。
操作步驟
為資料庫執行個體建立RAM角色。
說明若使用RAM使用者(子帳號)進行操作,則可能會在建立DTS任務時提示授權不正確。
DTS執行個體中無需跨阿里雲帳號(是否跨阿里雲帳號選擇為不跨帳號或者無該配置項)的資料庫執行個體不需要建立RAM角色。
使用資料庫執行個體所屬的阿里雲帳號(主帳號),登入RAM控制台。
在左側導覽列,選擇 。
重要請勿選擇為
,否則DTS將無法訪問資料庫執行個體並報錯。在角色頁面,單擊建立角色。
在建立角色面板,選擇可信實體類型為阿里雲帳號,然後單擊下一步。
在彈出的對話方塊中,配置RAM角色資訊。
配置選項
配置說明
角色名稱
填寫RAM角色名稱,本樣本填寫ram-for-dts。
說明可以填寫大寫英文、小寫英文、數字或虛線(-),長度不超過64個字元。
備忘(可選)
填寫RAM角色備忘資訊。
選擇信任的雲帳號
選擇為其他雲帳號,並填寫建立DTS任務的阿里雲帳號(主帳號)ID作為授信雲帳號。
單擊完成。
為建立好的RAM角色精確授權。
單擊精確授權。
在許可權管理頁簽,單擊精確授權。
在精確授權面板中,勾選選擇權限類別型為系統策略。
在輸入策略名稱稱下方的文字框中,輸入AliyunDTSRolePolicy。
單擊確定。
精確授權成功後,單擊關閉。
修改信任策略。
(可選):在角色頁面,找到剛剛建立的RAM角色,單擊對應的RAM角色名稱。
在RAM角色的基本資料頁面,單擊信任策略頁簽。
在信任策略頁簽中,單擊編輯信任策略。
將下述代碼複製至策略框中。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<阿里雲帳號ID>:root" ], "Service": [ "<阿里雲帳號ID>@dts.aliyuncs.com" ] } } ], "Version": "1" }
將代碼中兩個
<阿里雲帳號ID>
替換為建立DTS任務的阿里雲帳號(主帳號)ID。單擊儲存信任策略。
後續操作
完成RAM授權後,您可以建立跨阿里雲帳號的任務。具體操作,請參見同步方案概覽、遷移方案概覽、訂閱者案概覽中的相關配置文檔。
您需要使用信任策略中配置的
<阿里雲帳號ID>
,登入控制台建立DTS任務。是否跨阿里雲帳號選擇為跨帳號;跨阿里雲帳號填入資料庫執行個體所屬阿里雲帳號(主帳號)的UID;跨阿里雲帳號角色名稱填入資料庫執行個體所屬雲帳號配置的角色名稱(本樣本填寫準備工作中建立的ram-for-dts)。
常見問題
如何在跨帳號任務中使用各阿里雲帳號?
在跨帳號任務中,各阿里雲帳號的用途與跨阿里雲帳號的資料庫相關,存在以下三種情況。
說明使用的阿里雲帳號均為阿里雲帳號(主帳號)。
跨阿里雲帳號的資料庫:配置DTS任務時,是否跨阿里雲帳號選擇為跨帳號的資料庫。
目前僅目標庫為RDS MySQL或雲資料庫ClickHouse時,支援配置是否跨阿里雲帳號。
表格使用樣本:首先需要確認跨帳號的是源庫還是目標庫,然後通過跨阿里雲帳號的資料庫列尋找目標行,查看各階段使用到的阿里雲帳號。
跨阿里雲帳號的資料庫
登入RAM控制台的阿里雲帳號
信任策略中填入的阿里雲帳號
建立DTS任務的阿里雲帳號
DTS任務填入的跨阿里雲帳號
源庫
源庫所屬的阿里雲帳號
目標庫所屬的阿里雲帳號
目標庫所屬的阿里雲帳號
源庫資訊:跨阿里雲帳號填入源庫所屬的阿里雲帳號
目標庫
目標庫所屬的阿里雲帳號
源庫所屬的阿里雲帳號
源庫所屬的阿里雲帳號
目標庫資訊:跨阿里雲帳號填入目標庫所屬的阿里雲帳號
源庫和目標庫
源庫和目標庫所屬的阿里雲帳號
指定的阿里雲帳號
指定的阿里雲帳號
源庫資訊:跨阿里雲帳號填入源庫所屬的阿里雲帳號
目標庫資訊:跨阿里雲帳號填入目標庫所屬的阿里雲帳號
如何處理配置跨帳號任務時出現的報錯?
以下為配置跨帳號任務時,出現的常見警示資訊及對應解決辦法:
警示資訊
解決辦法
您填寫的跨阿里雲帳號有誤,請檢查資料庫執行個體所屬阿里雲帳號(主帳號)的UID是否填寫正確。更多資訊,請參見準備工作。
可能原因如下:
您填寫的跨阿里雲帳號角色名稱有誤:請檢查資料庫執行個體所屬阿里雲帳號(主帳號)的RAM角色名稱是否填寫正確。
RAM角色精確授權不正確:請使用資料庫執行個體所屬的阿里雲帳號(主帳號)進行授權操作。
說明更多資訊,請參見準備工作。
可能原因如下:
您填寫的跨阿里雲帳號角色名稱有誤:請檢查資料庫執行個體所屬阿里雲帳號(主帳號)的角色名稱是否填寫正確。
RAM角色未完成精確授權:請檢查RAM角色是否正確完成精確授權。
RAM角色未修改信任策略:請檢查RAM角色是否正確修改信任策略。
說明請參考準備工作進行檢查。
您填寫的跨阿里雲帳號角色名稱沒有精確授權,請為填寫的RAM角色精確授權後重新建立任務。以來源資料庫為例,授權操作請參見為已有RAM角色精確授權。
您填寫的跨阿里雲帳號角色名稱有誤,請勿填寫DTS系統的預設角色AliyunDTSDefaultRole,請填寫在準備工作中建立的RAM角色。
為已有RAM角色精確授權
使用源執行個體所屬的阿里雲帳號(主帳號),登入RAM控制台。
在左側導覽列,選擇
。在建立角色右側輸入目標RAM角色並搜尋。
在目標行的操作列,單擊精確授權。
在添加許可權介面輸入策略名稱稱下方,輸入AliyunDTSRolePolicy。
說明選擇權限類別型預設選擇為系統策略。
單擊確認。