Google Cloud の役割とサービス アカウントを手動で作成する

このトピックでは、手動で Google Cloud Migrate for Compute Engine(旧称 Velostrata)の移行の権限を設定する方法について説明します。ここでのガイドは、移行プロセスや移行されたワークロードに付与された権限を理解したい、あるいは制御したいユーザーを対象としています。

このページでは、次の移行先の場合の役割作成プロセスについて説明します。

  • 単一の Google Cloud プロジェクト
  • 複数の Google Cloud プロジェクト

前提条件

Migrate for Compute Engine での移行では 2 つのサービス アカウントが必要です。各サービス アカウントおよび関連するロールの詳細については、Google Cloud の構成をご覧ください。gcloud コマンドとそのパラメータの詳細については、gcloud CLI のドキュメントをご覧ください。

  1. Google Cloud SDK をインストールする必要があります。
  2. Google Cloud に Migrate for Compute Engine インフラストラクチャをホストする Google Cloud プロジェクトを作成します。このプロジェクトをインフラストラクチャ プロジェクトと呼びます。project-ID となっているところで、このプロジェクトを使用します。
  3. インフラストラクチャ プロジェクトで次の 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
    

続行するには、単一または複数のプロジェクトどちらに移行するかを選択します。

単一のプロジェクト

ここでは、単一のスタンドアロンのプロジェクトで必要となるサービス アカウントを作成し、適切なロールを割り当てる方法について説明します。

役割の作成

次の手順で、プロジェクト レベルの役割を作成します。

  1. コマンド プロンプトを開き、次のコマンドを実行します。ログイン パラメータは、Google Cloud アカウントのログイン情報に置き換えます。
    gcloud auth login login@google.com --no-launch-browser --brief
    
  2. ダウンロード ページから Cloud Deployment Manager ファイルをダウンロードします。
  3. ダウンロードしたファイルを展開し、役割の作成時にアクセスできるディレクトリに保存します。
  4. 展開したディレクトリで manual ディレクトリを開きます。
    cd google/migrate/gce/manual
    
  5. そのディレクトリ内の 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
    

サービス アカウントの作成

  1. Google Cloud で velos-manager サービス アカウントを作成します。注: project-ID はインフラストラクチャ プロジェクトです。

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"

  2. 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
    
  3. 他に必要な役割を 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
    
  4. 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"
  5. 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
    
  6. 他に必要な役割を 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 の役割を作成します。

  1. 組織レベルで、Google Cloud 内で Migrate for Compute Engine のロールを作成します。
    gcloud auth login orgadmin@google.com --no-launch-browser --brief
  2. ダウンロード ページから Cloud Deployment Manager ファイルをダウンロードします。
  3. ダウンロードしたファイルを展開し、役割の作成時にアクセスできるディレクトリに保存します。
  4. 展開したディレクトリで manual ディレクトリを開きます。
    cd google/migrate/gce/manual
    
  5. そのディレクトリ内の 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
    

サービス アカウントの作成と役割の割り当て

  1. 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"
  2. 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
    
  3. 他に必要な役割を 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
    
    
  4. 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"
  5. 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
    
  6. 他に必要な役割を 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