VPC ネットワークでプライベート プールを使用するように環境を設定する

このページでは、VPC ネットワークでプライベート プールを使用するようにネットワーク環境を設定する方法について説明します。プライベート プールの情報については、プライベート プールの概要をご覧ください。

ネットワーク構成オプションについて

プライベート プールは、サービス プロデューサー ネットワークと呼ばれる Google 所有の Virtual Private Cloud ネットワークでホストされます。プライベート プールを設定するときは、サービス プロデューサー ネットワークを使用するか、サービス プロデューサー ネットワークとリソースを含む VPC ネットワークの間にプライベート接続を設定するかを選択できます。

組織の要望に応じて、次のいずれかのネットワーク構成スキームを選択します。

  • サービス プロデューサー ネットワークを単独で使用する: このオプションは、次の場合に使用します。

    これは、プライベート プールを作成するためのデフォルトのネットワーク オプションで、ネットワークの設定は不要です。このオプションを検討する場合は、プライベート プールの作成に進みます。

  • サービス プロデューサー ネットワークと VPC ネットワーク間のプライベート接続を設定する: プライベート接続を使用すると、VPC ネットワーク内の VM インスタンスとプライベート プールで内部 IP アドレスのみを使用して通信できます。このオプションは、次の場合に使用します。

    • ビルドに VPC ネットワーク内のリソースにアクセスさせたい場合
    • 構成可能なマシンタイプとサイズが必要な場合

VPC ネットワークとサービス プロデューサー ネットワーク間のプライベート接続を設定する

  1. サービス プロデューサーのネットワークへの接続に使用する既存の VPC ネットワークが必要です。

  2. このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。

  3. API を有効にします。

    コンソール


    Cloud Build API と Service Networking API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API を有効にする

    gcloud

    Cloud Build API と Service Networking API を有効にします。

    gcloud services enable cloudbuild.googleapis.com servicenetworking.googleapis.com
    
  4. がプライベート接続を設定するために必要な 権限を持っていることを確認するには、VPC ネットワークが存在する Google Cloud プロジェクトのサービス アカウントにCompute Engine ネットワーク管理者 roles/compute.networkAdmin)IAM ロールを付与するよう管理者に依頼してください。 ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を付与することもできます。

  5. VPC ネットワークで、名前付き内部 IP 範囲を割り当てます。

    ここで指定する IP 範囲は、VPC ネットワークで定義されるファイアウォール ルールの対象です。

    Cloud Build は、Docker ブリッジ ネットワーク用に IP 範囲 192.168.10.0/24172.17.0.0/16 を予約します。プロジェクト内のリソースに IP 範囲を割り当てる際に、Cloud Build ビルダーがこれらのリソースにアクセスする場合は、192.168.10.0/24172.17.0.0/16 以外の範囲を選択することをおすすめします。

    たとえば、Google Kubernetes Engine コントロール プレーンのアドレス範囲 192.168.10.96/28 は、重複のために Cloud Build gke-deploy ビルダーからアクセスできません。

    コンソール

    1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] ページに移動

    2. プライベート プールの VPC ネットワークに接続する VPC ネットワークを選択します。

    3. [限定公開サービス アクセス] タブを選択します。

    4. [プライベート サービス アクセス] タブで、[サービスに割り当てられた IP 範囲] タブを選択します。

    5. [IP 範囲の割り当て] をクリックします。

    6. 割り当て範囲の [名前] と [説明] を入力します。

    7. 割り当ての [IP 範囲] を指定します。

      • IP アドレス範囲を指定するには、[カスタム] を選択してから、CIDR ブロックを入力します。
      • 接頭辞長を指定して利用可能な範囲を Google に選択させるには、[自動] を選択して接頭辞長を入力します。接頭辞長は /24 以下でなければなりません(/22/21 など)。
    8. [割り当て] をクリックして、割り振る範囲を作成します。

    gcloud

    アドレス範囲と接頭辞長(サブネット マスク)を指定するには、addresses フラグと prefix-length フラグを使用します。接頭辞長は /24 以下でなければなりません(/22、/21 など)。たとえば、CIDR ブロック 192.168.0.0/16 を割り振るには、アドレスに 192.168.0.0 を指定し、接頭辞長には 16 を指定する必要があります。

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --addresses=192.168.0.0 \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    接頭辞長(サブネット マスク)だけを指定するには、prefix-length フラグを使用します。アドレス範囲を省略すると、 Google Cloudでは VPC ネットワークで使用されていないアドレス範囲が自動的に選択されます。次の例では、16 ビットの接頭辞長を使用して、未使用の IP アドレス範囲を選択しています。

      gcloud compute addresses create RESERVED_RANGE_NAME \
          --global \
          --purpose=VPC_PEERING \
          --prefix-length=16 \
          --description=DESCRIPTION \
          --network=VPC_NETWORK
    

    コマンドのプレースホルダ値を、次のように置き換えます。

    • RESERVED_RANGE_NAME: 割り当て範囲の名前(my-allocated-range など)。
    • DESCRIPTION: 範囲の説明(allocated for my-service など)。
    • VPC_NETWORK: VPC ネットワークの名前(my-vpc-network など)。

  6. サービス プロデューサー VPC ネットワークと お使いの VPC ネットワークの間にプライベート接続を作成します。

    コンソール

    1. Google Cloud コンソールの [VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] ページに移動

    2. プライベート プールの VPC ネットワークに接続する VPC ネットワークを選択します。

    3. [限定公開サービス アクセス] タブを選択します。

    4. [プライベート サービス アクセス] タブで、[サービスへのプライベート接続] タブを選択します。

    5. ネットワークとサービス プロデューサー ネットワークの間にプライベート接続を作成するには、[接続の作成] をクリックします。

    6. [割り当て] で、前の手順で作成した割り振り範囲を選択します。

    7. [接続] をクリックして接続を作成します。

    gcloud

    1. 以下のとおり、プライベート接続を作成します。

      gcloud services vpc-peerings connect \
          --service=servicenetworking.googleapis.com \
          --ranges=ALLOCATED_RANGE_NAME \
          --network=VPC_NETWORK \
          --project=PROJECT_ID
      

      コマンドのプレースホルダ値を、次のように置き換えます。

      • ALLOCATED_RANGE_NAME: 前の手順で作成した割り当て範囲の名前。
      • VPC_NETWORK: VPC ネットワークの名前。
      • PROJECT_ID: VPC ネットワークを含むプロジェクトの ID。

      このコマンドは、長時間実行オペレーションを開始し、オペレーション名を戻します。

    2. オペレーションが成功したかどうかを確認し、OPERATION_NAME を前のステップで返されたオペレーション名に置き換えます。

      gcloud services vpc-peerings operations describe \
          --name=OPERATION_NAME
      
  7. [省略可: 共有 VPC のシナリオ]共有 VPC を使用している場合は、割り振られた IP 範囲とプライベート接続をホスト プロジェクトに作成します。通常、ホスト プロジェクトのネットワーク管理者がこれらの作業を行う必要があります。ホスト プロジェクトがプライベート接続で設定されると、サービス プロジェクト内の VM インスタンスはサービス プロデューサー ネットワークとのプライベート接続を使用できます。VPC 接続をホストするプロジェクトと、プライベート プールを含むプロジェクトは、同じ組織に属している必要があります。

  8. [省略可: ファイアウォール ルールの使用]。VPC ネットワークで上り(内向き)ファイアウォール ルールを作成する場合は、上り(内向き)ルールのソースフィルタで割り振ったのと同じ IP 範囲を指定します。

次のステップ