プロジェクト内または組織内のユーザーのアクセスを制限するには、Database Migration Service と関連する移行先データベース プロダクトの Identity and Access Management(IAM)ロールを使用します。 Google Cloud プロジェクト全体に対する閲覧者、編集者、オーナーのロールを付与するのではなく、Database Migration Service 関連リソースへのアクセスのみを制御できます。
このページでは、Database Migration Service を使用した同種の Cloud SQL 移行中にユーザー アカウントとサービス アカウントに必要なすべてのロールについて説明します。移行プロセスでこれらの権限を使用するタイミングの詳細については、 SQL Server データベースを Cloud SQL for SQL Server に移行するをご覧ください。
移行ジョブの実行に関連するアカウント
Database Migration Service で実行されるデータ移行には、次の 3 つのアカウントが関与します。
- 移行を実行するユーザー アカウント
- これは、接続プロファイルの作成、バックアップ ファイルの Cloud Storage ストレージへのアップロード、移行ジョブの作成と実行に使用する Google アカウントです。
- Database Migration Service サービス アカウント
- これは、Database Migration Service API を有効にしたときに自動的に作成されるサービス アカウントです。このサービス アカウントに関連付けられたメールアドレスは自動的に生成され、変更できません。このメールアドレスの形式は次のとおりです。
service-PROJECT_NUMBER@datamigration.iam.gserviceaccount.com
- Cloud SQL インスタンスのサービス アカウント
- これは、移行先の Cloud SQL for SQL Server インスタンスに特別に割り当てられるサービス アカウントです。移行先インスタンスの作成後に作成されます。このサービス アカウントに関連付けられたメールアドレスは、Cloud SQL インスタンスの詳細ページで参照できます。Cloud SQL for SQL Server のドキュメントの インスタンス情報を表示するをご覧ください。
データ移行プロセスに関与する各アカウントには、異なるロールと権限が必要です。
権限とロール
Database Migration Service で同種の SQL Server 移行を実行するために必要な権限を取得するには、次のアカウントに対してプロジェクトで必要な IAM ロールを付与するよう管理者に依頼します。
- 移行を実行するユーザー アカウント:
-
データベース移行管理者(
roles/datamigration.admin
) -
ストレージ管理者(
roles/storage.admin
) -
Cloud SQL 編集者(
roles/cloudsql.editor
)
-
データベース移行管理者(
- Database Migration Service サービス アカウント:
-
データベース移行管理者(
roles/datamigration.admin
) -
ストレージ管理者(
roles/storage.admin
) -
Cloud SQL 編集者(
roles/cloudsql.editor
) -
Cloud SQL Studio ユーザー(
roles/cloudsql.studioUser
)
-
データベース移行管理者(
- Cloud SQL インスタンスのサービス アカウント:
ストレージ オブジェクト閲覧者(
roles/storage.objectViewer
)
ロールの付与の詳細については、 アクセスの管理をご覧ください。
これらの事前定義ロールには、Database Migration Service を使用して同種の SQL Server 移行を実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Database Migration Service で同種の SQL Server 移行を実行するには、次の権限が必要です。
- 移行を実行するユーザー アカウント:
datamigration.*
resourcemanager.projects.get
resourcemanager.projects.list
cloudsql.operations.get
cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.import
cloudsql.databases.get
cloudsql.databases.list
cloudsql.databases.delete
compute.machineTypes.list
compute.machineTypes.get
compute.projects.get
storage.buckets.create
storage.buckets.list
- Database Migration Service サービス アカウント:
datamigration.*
resourcemanager.projects.get
resourcemanager.projects.list
cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.executeSql
storage.objects.create
storage.objects.list
- Cloud SQL インスタンスのサービス アカウント:
storage.objects.list
storage.objects.get
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。