このトピックでは、VM の移行に必要な権限を手動で設定する方法について説明します。ここでのガイドは、移行プロセスや移行されたワークロードに付与された権限を理解したい、あるいは制御したいユーザーを対象としています。
このページでは、次の移行先の場合のロール作成プロセスについて説明します。
- 単一の Google Cloud プロジェクト
- 複数の Google Cloud プロジェクト
始める前に
Migrate for Compute Engine での移行では 2 つのサービス アカウントが必要です。各サービス アカウントおよび関連するロールの詳細については、Google Cloud の構成をご覧ください。gcloud
コマンドとそのパラメータの詳細については、gcloud CLI のドキュメントをご覧ください。
- Google Cloud SDK をインストールする必要があります。
- Google Cloud 上で Migrate for Compute Engine インフラストラクチャをホストするための Google Cloud プロジェクトを作成します。このプロジェクトをインフラストラクチャ プロジェクトと呼びます。
project-ID
となっているところで、このプロジェクトを使用します。 - インフラストラクチャ プロジェクトで次の API を有効にします。
gcloud services enable iam.googleapis.com --project project-ID gcloud services enable cloudresourcemanager.googleapis.com --project project-ID gcloud services enable compute.googleapis.com --project project-ID gcloud services enable storage-component.googleapis.com --project project-ID gcloud services enable logging.googleapis.com --project project-ID gcloud services enable monitoring.googleapis.com --project project-ID
続行するには、単一または複数のプロジェクトどちらに移行するかを選択します。
単一のプロジェクト
ここでは、単一のスタンドアロンのプロジェクトで必要となるサービス アカウントを作成し、適切な役割を割り当てる方法について説明します。
サービス アカウントの作成
Google Cloud で
migration-manager
サービス アカウントを作成します。gcloud config set project project-ID gcloud iam service-accounts create "migration-manager" --display-name "migration-manager"
ロールを
migration-manager
サービス アカウントに割り当てます。gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.inframanager" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/iam.serviceAccountUser" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.viewer" \ --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "migration-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
Google Cloud で
migration-cloud-extension
サービス アカウントを作成します。Migrate for Compute Engine Cloud Extension(CE)をデプロイする予定のプロジェクトで、このアカウントを作成します。gcloud iam service-accounts create "migration-cloud-extension" \ --display-name "migration-cloud-extension"
ロールを
migration-cloud-extension
サービス アカウントに割り当てます。gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet
複数のプロジェクト
このセクションでは、複数のプロジェクトへの移行で必要となるロールを作成し、サービス アカウントに割り当てる方法について説明します。
サービス アカウントの作成とロールの割り当て
Google Cloud で
migration-manager
サービス アカウントを作成します。migration-manager
サービス アカウントはどのプロジェクトでも作成できますが、このサービスをホスト プロジェクトで作成すると構成を簡素化できます。gcloud config set project project-ID gcloud iam service-accounts create "migration-manager" \ --display-name "migration-manager"
ロールを
migration-manager
サービス アカウントに割り当てます。gcloud organizations add-iam-policy-binding organization-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.inframanager" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud organizations add-iam-policy-binding organization-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/iam.serviceAccountUser" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.viewer" \ --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "migration-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
Google Cloud で
migration-cloud-extension
サービス アカウントを作成します。Migrate for Compute Engine Cloud Extension(CE)をデプロイする予定のプロジェクトで、このアカウントを作成します。gcloud iam service-accounts create "migration-cloud-extension" \ --display-name "migration-cloud-extension"
ロールを
migration-cloud-extension
サービス アカウントに割り当てます。gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet