共有 VPC の権限を構成する

共有 VPC を使用すると、組織が、そのネットワークの内部 IP を使用して、安全で効率的な相互通信を行えるように、複数のプロジェクトから共通の Virtual Private Cloud(VPC)ネットワークにリソースを接続できます。

共有 VPC を使用する場合は、プロジェクトを共有 VPC ホスト プロジェクトとして指定し、1 つ以上のサービス プロジェクトをそのプロジェクトに接続します。共有 VPC ホスト プロジェクトの VPC ネットワークは、共有 VPC ネットワークと呼ばれます。サービス プロジェクトの適格リソースは、共有 VPC ネットワーク内のサブネットを使用できます。

Migrate to Virtual Machines で共有 VPC を使用する

Migrate to Virtual Machines 環境で共有 VPC を使用する場合は、移行した VM を Compute Engine ターゲット プロジェクトにデプロイするように権限が正しく構成されていることを確認する必要があります。

たとえば、次の環境があるとします。

  • プロジェクト A - Migrate to Virtual Machines のホスト プロジェクト
  • プロジェクト B - 共有 VPC ホスト プロジェクトとサブネットの定義
  • プロジェクト C - Migrate to Virtual Machines のターゲット プロジェクトと共有 VPC サービス プロジェクト

この例では、プロジェクト B で共有 VPC を定義します。プロジェクト B を共有 VPC ホスト プロジェクトと呼びます。

次に、プロジェクト C(共有 VPC にアクセスする Migrate to Virtual Machines のターゲット プロジェクト)の Compute Engine インスタンスに VM を移行します。この例では、プロジェクト C を共有 VPC サービス プロジェクトと呼びます。Compute Engine インスタンスをデプロイする前に、共有 VPC のプロビジョニングで説明されているように、プロジェクト C をプロジェクト B のサービス プロジェクトとして機能するよう構成しておく必要があります。

ただし、Compute Engine インスタンスをデプロイする前に、プロジェクト A の Migrate to Virtual Machines のデフォルト サービス アカウントに必要な権限が付与されていることを確認する必要があります。具体的には、Migrate to Virtual Machines には、共有 VPC ホスト プロジェクトのサブネットワークに対する compute.networkUser ロールが必要です。

次のセクションでは、Migrate to Virtual Machines のデフォルトのサービス アカウントを構成する方法について説明します。

Migrate to Virtual Machines のデフォルトのサービス アカウントを構成する

Migrate Connector をインストールするで説明されているように、最初の移行の作成時に、ホスト プロジェクトにデフォルトのサービス アカウントが作成されます。

共有 VPC にアクセスするターゲット プロジェクトに Compute Engine インスタンスをデプロイするには、共有 VPC ホスト プロジェクトのサブネットワークで、compute.networkUser ロールを Migrate to Virtual Machines のデフォルト サービス アカウントに追加する必要があります。このロールを追加するには、2 つの選択肢があります。

  • 共有 VPC ホスト プロジェクト内の一部のサブネットのみにアクセスできるサービス プロジェクト管理者として、Migrate to Virtual Machines のデフォルト サービス アカウントを割り当てます。この方法では、共有 VPC ホスト プロジェクト内の一部のサブネットのみに対する compute.networkUser ロールを付与することで、サービス プロジェクト管理者を定義する細かい手段を提供できます。

    この手続きのステップについては、一部のサブネットのサービス プロジェクト管理者をご覧ください。

  • 仮想マシンへのデフォルトのサービス アカウントが、共有 VPC ホスト プロジェクトのすべてのサブネットへのアクセス権を持つサービス プロジェクト管理者になることを許可します。この場合、共有 VPC ホスト プロジェクトの compute.networkUser のロールを Migrate for Virtual Machines のデフォルト サービス アカウントに付与します。これにより、デフォルトのサービス アカウントは、共有 VPC ホスト プロジェクト内の既存のサブネットだけでなく今後作成されるサブネットにもアクセスできるようになります。

共有 VPC ホスト プロジェクトのすべてのサブネットにアクセスできるように、仮想マシンのデフォルト サービス アカウントを構成するには:

  1. Google Cloud コンソールで [Migrate to Virtual Machines] ページを開きます。

    [Migrate to Virtual Machines] ページに移動

  2. [ターゲット] タブを選択します。

    ページの上部に情報ボックスがあり、Migrate to Virtual Machines のデフォルト サービス アカウントのメールアドレスが次の形式で表示されます。

    service-M4CE_HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com

  3. そのメールアドレスをコピーします。

  4. そのメールアドレスを使用して、共有 VPC ホスト プロジェクトの compute.networkUser ロールを Migrate to Virtual Machines のデフォルトのサービス アカウントに付与します。

    gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \
       --member=serviceAccount:service-M4CE_HOST_PROJECT_NUMBER@gcp-sa-vmmigration.iam.gserviceaccount.com \
       --role=roles/compute.networkUser

ロールと権限のユーザー アカウントへの割り当ての詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。