DTS を使用して、2 つの異なる Alibaba Cloud アカウント配下のインスタンス間でデータを移行および同期できます。この機能を実現するには、ソースインスタンスの属する Alibaba Cloud アカウントが、ターゲットインスタンスの属する Alibaba Cloud アカウントに権限を付与する必要があります。次に、ターゲットインスタンスが属する Alibaba Cloud アカウントを使用して DTS コンソールにログインし、タスクを設定する必要があります。
このトピックでは、Resource Access Management (RAM) システムを使用して異なるアカウントに権限を付与し、異なる Alibaba Cloud アカウントのインスタンス間でデータを移行する方法について説明します。
DTS でサポートされるクロスアカウントの移行と同期機能
DTS でサポートされるクロスアカウントの移行と同期機能は次のとおりです。
データ移行
- RDS インスタンスから RDS インスタンス
- RDS インスタンスから DRDS インスタンス
- RDS インスタンスから PetaData インスタンス
- RDS インスタンスから OceanBase インスタンス
- RDS インスタンスから ECS 外部データベース
- RDS インスタンスからオンプレミスデータベース
データ同期
- RDS インスタンスから RDS インスタンス
- RDS インスタンスから MaxCompute (以前の ODPS) インスタンス
- RDS インスタンスから Datahub (ストリーム計算用) インスタンス
- RDS インスタンスから AnalyticDB インスタンス
セキュリティ上の理由から、クロスアカウントクラウドリソース間でデータ移行を実行する前に、ユーザーに権限が付与されている必要があります。ソースインスタンスがアカウント A に属し、ターゲットインスタンスがアカウント B に属しているとします。この場合、次の権限付与を完了する必要があります。
(1) ソースインスタンスが属するアカウントは、クラウドリソースへの DTS アクセスを許可します。
(2) ソースインスタンスが属するアカウント A は、ターゲットインスタンスが属するアカウント B に DTS のアカウント A のクラウドリソースへのアクセスを許可します。
権限付与プロセスの詳細は次のとおりです。
ソースインスタンスが属するアカウントは、DTS にクラウドリソースへのアクセスを許可
まず、ソースインスタンスが属するアカウントは、DTS にクラウドリソースへの アクセスを許可する必要があります。これには、次の手順を実行します。
アカウント A を使用して Alibaba Cloud Web サイトにログインし、DTS コンソールにアクセスします。アカウント A が DTS にクラウドリソースへのアクセスを許可していない場合、次の権限付与ダイアログが表示されます。
[RAM ユーザーの権限付与] をクリックして、権限付与ページに移動します。
権限付与ページで [権限付与に同意] をクリックして、DTS にクラウドリソースへのアクセスを許可します。
DTS コンソールにログインしたときに上記の権限付与要求メッセージが表示されない場合、アカウント A に権限が付与されていることを示します。
ソースインスタンスの属するアカウント A は、ターゲットインスタンスの属するアカウント B に、DTS のアカウント A のクラウドリソースへのアクセスを許可
アカウント A が DTS にクラウドリソースへのアクセスを許可する場合、ユーザーは DTS のアカウント A のクラウドリソースへのアクセスをアカウント B に許可する必要があります。
RAM システムでアカウントにロールを付与して、権限付与します。移行タスクを設定するとき、アカウント A の ID を設定し、アカウント A にロールを付与する必要があります (図を参照)。
この図では、[RDS が属する Alibaba Cloud アカウント] は、ソース RDS が属する Alibaba Cloud アカウントのアカウント ID です。アカウント ID は、[アカウント管理] の [セキュリティ設定] から取得できます。
[ロール名] は、アカウント A がアカウント B に対して、アカウント A のクラウドリソースへのアクセスを許可する名前です。許可されたロールを作成するプロセスは次のとおりです。
別のアカウントへのロールの付与
このセクションでは、別の Alibaba アカウントに対して、自分のアカウントの RAM ユーザーのクラウドリソースへのアクセスを許可する方法について説明します。
次の例では、アカウント A の RDS インスタンスをアカウント B のクラウドリソースに移行します。ロールを許可するプロセスは次のとおりです。
ロールの作成
- アカウント A を使用して RAM コンソールにログインし、[ロール管理] ページに移動して右上の [新規ロール] をクリックして、クロスアカウント許可ロールを作成します。
- ロールタイプとして [ユーザーロール] を選択します。
信頼できるアカウント。[他の Alibaba Cloud アカウント] を選択します。ターゲットインスタンスが属する Alibaba Cloud アカウントの ID、つまりアカウント B の ID で [信頼できる Alibaba Cloud アカウント ID] を設定します。
このステップでは、DTS 同期タスクの設定プロセスで指定する必要があるロール名を設定します。
作成したロールへの権限付与
ロールを作成するとき、ロール権限付与ポリシーを変更する必要があります。
(1) 信頼できるクラウドアカウント。DTS コンソールで自身のクラウドリソースのみにアクセスできるように、信頼できるクラウドアカウントを制限します。これには、次の手順を実行します。
1) [ロール管理] ページで、作成したロールの横にある [管理] をクリックしてロールを管理します。
2) 右上の [基本情報の編集] をクリックします。[ロールの編集] ダイアログボックスが表示されます。次のように、Principal にサービス定義を追加します。
"Service": [
"Trusted Alibaba Cloud account ID@dts.aliyuncs.com"
]
DTS で同期タスクを設定するため、信頼できるクラウドアカウント ID を Alibaba Cloud アカウント ID に置き換えます。dts.aliyuncs.com は DTS コードです。DTS 移行タスクの設定に使用する Alibaba Cloud アカウント ID が 1218522260143989 とします。この場合、対応するサービスを次のように定義する必要があります。
"Service": [
"121852226014398@dts.aliyuncs.com"
]
完全なロール定義は次のとおりです。
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::1218522260143989:root"
],
"Service": [
"1218522260143989@dts.aliyuncs.com"
]
}
}
],
"Version": "1"
}
(2) このロールに対して、ソースインスタンスの Alibaba Cloud アカウントのリソースへのアクセスを許可します。
アカウント B を設定した後、ロール権限付与ポリシーを変更します。特定のクラウドリソースへのアクセス権限をロールに許可し、DTS がこれらのクラウドインスタンスにアクセスするロールとして機能できるようにします。これには、次の手順を実行します。
1) [ロール管理] ページで、作成されたロールの横にある [許可] をクリックすると、[ロールの権限付与ポリシーの編集] ダイアログが表示されます。
2) 検索バーで AliyunDTSRolePolicy を検索し、このポリシーをロールに付与します。
ロールを作成し、そのロールを別のアカウントに付与するプロセスを完了しました。
権限付与が完了したら、クロスアカウント同期タスクを設定できます。同期タスクを設定するとき、ソースインスタンス情報の [ロール名] に、作成したロールの名前を設定します。