このトピックでは、手動で Google Cloud Migrate for Compute Engine(旧称 Velostrata)の移行の権限を設定する方法について説明します。ここでのガイドは、移行プロセスや移行されたワークロードに付与された権限を理解したい、あるいは制御したいユーザーを対象としています。
このページでは、次の移行先の場合の役割作成プロセスについて説明します。
- 単一の 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 アカウントのログイン情報に置き換えます。
gcloud auth login login@google.com --no-launch-browser --brief
- ダウンロード ページから Cloud Deployment Manager ファイルをダウンロードします。
- ダウンロードしたファイルを展開し、役割の作成時にアクセスできるディレクトリに保存します。
- 展開したディレクトリで
manual
ディレクトリを開きます。cd google/migrate/gce/manual
そのディレクトリ内の YAML ファイルを使用して、役割に権限を割り当てます。
gcloud iam roles create "velos_manager" --project project-ID \ --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet gcloud iam roles create "velos_ce" --project project-ID \ --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
サービス アカウントの作成
Google Cloud で
velos-manager
サービス アカウントを作成します。注:project-ID
はインフラストラクチャ プロジェクトです。gcloud config set project project-ID gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"
velos-manager
サービス アカウントにvelos_manager
役割を割り当てます。gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \ --role "projects/project-ID/roles/velos_manager" \ --no-user-output-enabled --quiet
他に必要な役割を
velos_manager
役割に追加します。gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"velos-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:"velos-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:"velos-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:"velos-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.viewer" --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "velos-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
Google Cloud で
velos-cloud-extension
サービス アカウントを作成します。Migrate for Compute Engine Cloud Extension(CE)をデプロイする予定のプロジェクトで、このアカウントを作成します。gcloud iam service-accounts create "velos-cloud-extension" \ --display-name "velos-cloud-extension"
velos-cloud-extension
サービス アカウントにvelos_ce
役割を割り当てます。gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "projects/project-ID/roles/velos_ce" \ --no-user-output-enabled --quiet
他に必要な役割を
velos-cloud-extension
サービス アカウントに割り当てます。gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"velos-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:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet
複数のプロジェクト
このセクションでは、複数のプロジェクトへの移行で必要となるロールを作成し、サービス アカウントに割り当てる方法について説明します。
役割の作成
次の手順に従って、Google Cloud での Migrate for Compute Engine の役割を作成します。
- 組織レベルで、Google Cloud 内で Migrate for Compute Engine のロールを作成します。
gcloud auth login orgadmin@google.com --no-launch-browser --brief
- ダウンロード ページから Cloud Deployment Manager ファイルをダウンロードします。
- ダウンロードしたファイルを展開し、役割の作成時にアクセスできるディレクトリに保存します。
- 展開したディレクトリで
manual
ディレクトリを開きます。cd google/migrate/gce/manual
そのディレクトリ内の YAML ファイルを使用して、役割に権限を割り当てます。
gcloud iam roles create "velos_manager" --organization organization-ID \ --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet gcloud iam roles create "velos_ce" --project project-ID \ --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
サービス アカウントの作成と役割の割り当て
Google Cloud で
velos-manager
サービス アカウントを作成します。任意のプロジェクトでvelos-manager
サービス アカウントを作成できますが、Migrate for Compute Engine 4.5 では、煩雑さを避けるためにホスト プロジェクトでこのサービスを作成することをおすすめします。gcloud config set project project-ID gcloud iam service-accounts create "velos-manager" \ --display-name "velos-manager"
velos-manager
サービス アカウントにvelos_manager
役割を割り当てます。gcloud organizations add-iam-policy-binding organization-ID \ --member serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com"\ --role organizations/organization-ID/roles/"velos_manager"\ --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "velos-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
他に必要な役割を
velos_manager
役割に追加します。gcloud organizations add-iam-policy-binding organization-ID --member \ serviceAccount:"velos-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:"velos-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:"velos-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:"velos-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.viewer" --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "velos-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
Google Cloud で
velos-cloud-extension
サービス アカウントを作成します。Migrate for Compute Engine Cloud Extension(CE)をデプロイする予定のプロジェクトで、このアカウントを作成します。gcloud iam service-accounts create "velos-cloud-extension" \ --display-name "velos-cloud-extension"
velos-cloud-extension
サービス アカウントにvelos_ce
役割を割り当てます。gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "projects/project-ID/roles/velos_ce" \ --no-user-output-enabled --quiet
他に必要な役割を
velos-cloud-extension
サービス アカウントに割り当てます。gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"velos-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:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet