オンプレミス ホストの限定公開の Google アクセスを構成する

オンプレミス ホスト用の限定公開の Google アクセスを使用すると、Cloud VPN トンネルまたは Cloud Interconnect 用の VLAN アタッチメントを経由してトラフィックをルーティングすることにより、オンプレミス システムから Google API とサービスに接続できます。オンプレミス ホスト用の限定公開の Google アクセスは、インターネット経由で Google API とサービスに接続するための代替手段として使用できます。

このドキュメントでは、オンプレミス ホストの限定公開の Google アクセスを有効にする方法について説明します。

仕様と要件

オンプレミス ホスト用の限定公開の Google アクセスには、次の要件があります。

  • 限定公開の Google アクセスでは API は自動的に有効になりません。Google Cloud コンソールの [API とサービス] ページから、使用する Google API を個別に有効にする必要があります。

  • オンプレミス システムから送信される Google API とサービス トラフィックを、private.googleapis.com または restricted.googleapis.com という特別なドメイン名のいずれかに関連付けられた IP アドレスに転送する必要があります。各ドメインでアクセスできるサービスの詳細については、ドメイン オプションをご覧ください。

  • オンプレミス ネットワークは、Cloud VPN トンネルまたは VLAN アタッチメントを使用して VPC ネットワークに接続する必要があります。

  • オンプレミス ネットワークが接続されている VPC ネットワークには、private.googleapis.com または restricted.googleapis.com の宛先 IP 範囲の適切なルートが必要です。詳細については、VPC ネットワーク ルーティングをご覧ください。

  • オンプレミス ネットワークが接続している VPC ネットワークには、オンプレミス ネットワークに到達するための適切なルートが必要です。これらのルートのオンプレミス ネットワークに接続するネクストホップの Cloud VPN トンネルまたは VLAN アタッチメントは、リクエスト送信元と同じリージョン内に存在する必要があります。ネクストホップが、限定公開の Google アクセスへのリクエスト元と異なるリージョンにある場合は、限定公開の Google アクセスからのレスポンスがオンプレミス ネットワークに到達しません。

  • オンプレミス ネットワークには、private.googleapis.com または restricted.googleapis.com の宛先 IP 範囲のルートが必要です。これらのルートによって、VPC ネットワークに接続する適切な Cloud VPN トンネルまたは VLAN アタッチメントにトラフィックが転送される必要があります。詳細については、Cloud Router を使用したオンプレミス ルーティングをご覧ください。

  • オンプレミス環境の IPv6 クライアントが private.googleapis.com または restricted.googleapis.com を使用して Google API にアクセスできるようにするには、IPv6 をサポートするように VPC ネットワークへの接続を構成する必要があります。詳しくは次のページをご覧ください。

  • オンプレミス クライアントは、IPv6 GUA または ULA アドレスからリクエストを送信できます。ただし、ULA 範囲 fda3:e722:ac3:cc00::/64 は内部使用のために予約されています。

権限

プロジェクト オーナー、編集者、ネットワーク管理者のロールを持つ IAM プリンシパルがサブネットを作成または更新し、IP アドレスを割り当てることができます。

ロールの詳細については、IAM ロールのドキュメントをご覧ください。

ネットワークの構成

オンプレミス ホスト用の限定公開の Google アクセスには、オンプレミス システムが Google API とサービスにトラフィックを送信する際に経由するオンプレミス システムと VPC ネットワークに固有のネットワーク要件があります。

ドメイン オプション

オンプレミス ホスト用の限定公開の Google アクセスでは、次のいずれかの特別なドメインにサービスを転送する必要があります。選択した特別なドメインによって、アクセスできるサービスが決定されます。

private.googleapis.com VIP と restricted.googleapis.com VIP は、TCP 上の HTTP ベースのプロトコル(HTTP、HTTPS、HTTP/2)のみをサポートします。MQTT や ICMP などの他のプロトコルはサポートされていません。

ドメインと IP アドレス範囲 サポート対象のサービス 使用例

private.googleapis.com

199.36.153.8/30

2600:2d00:0002:2000::/64

VPC Service Controls でサポートされているかどうかにかかわらず、ほとんどの Google API とサービスへの API アクセスを有効にします。Google マップ、Google 広告、Google Cloud、さらに以下のリストを含む他のほとんどの Google API への API アクセスが含まれます。Gmail や Google ドキュメントなどの Google Workspace ウェブ アプリケーションはサポートされていません。インタラクティブなウェブサイトはサポートされていません。

一致するドメイン名:

  • accounts.google.com(OAuth 認証に必要なパスのみ)
  • *.aiplatform-notebook.cloud.google.com
  • *.aiplatform-notebook.googleusercontent.com
  • appengine.google.com
  • *.appspot.com
  • *.backupdr.cloud.google.com
  • backupdr.cloud.google.com
  • *.backupdr.googleusercontent.com
  • backupdr.googleusercontent.com
  • *.cloudfunctions.net
  • *.cloudproxy.app
  • *.composer.cloud.google.com
  • *.composer.googleusercontent.com
  • *.datafusion.cloud.google.com
  • *.datafusion.googleusercontent.com
  • *.dataproc.cloud.google.com
  • dataproc.cloud.google.com
  • *.dataproc.googleusercontent.com
  • dataproc.googleusercontent.com
  • dl.google.com
  • gcr.io または *.gcr.io
  • *.googleapis.com
  • *.gke.goog
  • *.gstatic.com
  • *.kernels.googleusercontent.com
  • *.ltsapis.goog
  • *.notebooks.cloud.google.com
  • *.notebooks.googleusercontent.com
  • packages.cloud.google.com
  • pkg.dev または *.pkg.dev
  • pki.goog または *.pki.goog
  • *.run.app
  • source.developers.google.com
  • storage.cloud.google.com

private.googleapis.com を使用して、Google Cloud 内からのみルーティング可能な一連の IP アドレスを使用して Google API とサービスにアクセスします。

次の状況では private.googleapis.com を選択します。

  • VPC Service Controls を使用しない。
  • VPC Service Controls を使用するものの、VPC Service Controls でサポートされていない Google API とサービスにもアクセスする必要がある。1

restricted.googleapis.com

199.36.153.4/30

2600:2d00:0002:1000::/64

VPC Service Controls でサポートされている Google API およびサービスへの API アクセスを有効にします。

VPC Service Controls をサポートしない Google API とサービスへのアクセスをブロックします。Google Workspace API、または Gmail や Google ドキュメントなどの Google Workspace ウェブ アプリケーションはサポートされていません。

restricted.googleapis.com を使用して、Google Cloud 内からのみルーティング可能な一連の IP アドレスを使用して Google API とサービスにアクセスします。

VPC Service Controls でサポートされている Google API とサービスにアクセスする必要がある場合にのみ restricted.googleapis.com を選択します。

restricted.googleapis.com ドメインでは、VPC Service Controls をサポートしていない Google API とサービスへのアクセスは許可されません。1

1 ユーザーがアクセスできる対象を、VPC Service Controls をサポートする Google API とサービスのみに制限する必要がある場合は、restricted.googleapis.com を使用します。これにより、データ引き出しのリスクがさらに軽減されます。restricted.googleapis.com を使用すると、VPC Service Controls でサポートされていない Google API とサービスへのアクセスは拒否されます。詳細については、VPC Service Controls に関するドキュメントのプライベート接続の設定をご覧ください。

private.googleapis.comrestricted.googleapis.com の IPv6 サポート

次の IPv6 アドレス範囲を使用して、IPv6 クライアントから Google API とサービスにトラフィックを転送できます。

  • private.googleapis.com: 2600:2d00:0002:2000::/64
  • restricted.googleapis.com: 2600:2d00:0002:1000::/64

private.googleapis.com または restricted.googleapis.com ドメインを使用していて、IPv6 アドレスを使用するクライアントがある場合は、IPv6 アドレスの構成を検討してください。IPv4 アドレスも構成されている IPv6 クライアントは、IPv4 アドレスを使用して Google API とサービスにアクセスできます。すべてのサービスが IPv6 クライアントからのトラフィックを受信するわけではありません。

DNS 構成

オンプレミス ネットワークには、Google ドメイン名が private.googleapis.com または restricted.googleapis.com のいずれかの IP アドレスのセットに解決されるように構成された DNS ゾーンとレコードが必要です。Cloud DNS の限定公開マネージド ゾーンを作成して、Cloud DNS 受信サーバー ポリシーを使用できます。また、オンプレミスのネームサーバーを構成することもできます。たとえば、BINDMicrosoft Active Directory DNS を使用できます。

以降のセクションでは、DNS ゾーンを使用して、選択した VIP に関連付けられている IP アドレスにパケットを送信する方法について説明します。該当するすべてのシナリオの指示に従ってください。

VIP の DNS レコードを構成する場合は、次の手順で説明する IP アドレスのみを使用してください。private.googleapis.com VIP と restricted.googleapis.com VIP のアドレスを混在させないでください。パケットの宛先によって提供するサービスが異なるため、断続的な障害が発生する可能性があります。

googleapis.com の DNS を構成する

googleapis.com の DNS ゾーンとレコードを作成します。

  1. googleapis.com の限定公開 DNS ゾーンを作成します。その場合は、Cloud DNS 限定公開ゾーンの作成を検討してください。
  2. googleapis.com ゾーンで、使用するドメインに応じて private.googleapis.com または restricted.googleapis.com に以下のプライベート DNS レコードを作成します。

    • private.googleapis.com:

      1. IP アドレス 199.36.153.8199.36.153.9199.36.153.10199.36.153.11 を指す private.googleapis.comA レコードを作成します。

      2. IPv6 アドレスを使用して API に接続するには、2600:2d00:0002:2000:: を指す private.googleapis.comAAAA レコードも構成します。

    • restricted.googleapis.com:

      1. IP アドレス 199.36.153.4199.36.153.5199.36.153.6199.36.153.7 を指す restricted.googleapis.comA レコードを作成します。

      2. IPv6 アドレスを使用して API に接続するには、2600:2d00:0002:1000:: を指す restricted.googleapis.comAAAA レコードも作成します。

    Cloud DNS でプライベート DNS レコードを作成するには、レコードを追加するをご覧ください。

  3. googleapis.com ゾーンで、構成したドメイン(private.googleapis.com または restricted.googleapis.com)を指す *.googleapis.comCNAME レコードを作成します。

他のドメインの DNS を構成する

一部の Google API とサービスは、*.gcr.io*.gstatic.com*.pkg.devpki.goog*.run.app などの追加ドメイン名を使用して提供されます。追加のドメインのサービスに private.googleapis.com または restricted.googleapis.com を使用してアクセスできるかどうかを判断するため、ドメイン オプションのドメインと IP アドレス範囲の表を参照します。それぞれの追加ドメインについて、次の作業を行います。

  1. DOMAIN の DNS ゾーンを作成します(例: gcr.io)。Cloud DNS を使用している場合は、このゾーンが googleapis.com 限定公開ゾーンと同じプロジェクトにあることを確認してください。

  2. この DNS ゾーンで、使用するドメインに応じて private.googleapis.com または restricted.googleapis.com に以下のプライベート DNS レコードを作成します。

    • private.googleapis.com:

      1. IP アドレス 199.36.153.8199.36.153.9199.36.153.10199.36.153.11 を指す DOMAINA レコードを作成します。

      2. IPv6 アドレスを使用して API に接続するには、2600:2d00:0002:2000:: を指す DOMAINAAAA レコードも作成します。

    • restricted.googleapis.com:

      1. IP アドレス 199.36.153.4199.36.153.5199.36.153.6199.36.153.7 を指す DOMAINA レコードを作成します。

      2. IPv6 アドレスを使用して API に接続するには、2600:2d00:0002:1000:: を指す restricted.googleapis.comAAAA レコードも作成します。

  3. DOMAIN ゾーンで、DOMAIN を指す *.DOMAINCNAME レコードを作成します。たとえば、gcr.io を指す *.gcr.ioCNAME レコードを作成します。

Cloud Storage カスタム ドメイン名の DNS を構成する

Cloud Storage バケットを使用していて、リクエストを Cloud Storage のカスタム ドメイン名に送信する場合、Cloud Storage バケットへのアクセスを許可するには、カスタム Cloud Storage ドメイン名の DNS レコードが private.googleapis.com または restricted.googleapis.com の IP アドレスを指し示すように構成するだけでは不十分です。

Cloud Storage のカスタム ドメイン名にリクエストを送信する場合は、HTTP リクエストの Host ヘッダーと TLS SNI を storage.googleapis.com に明示的に設定する必要もあります。private.googleapis.comrestricted.googleapis.com の IP アドレスは、HTTP リクエストの Host ヘッダーと TLS SNI のカスタム Cloud Storage ホスト名をサポートしていません。

オンプレミス システムの DNS を構成する

Cloud DNS を使用して DNS 構成を実装した場合は、Cloud DNS の限定公開マネージド ゾーンに対してクエリを行えるように、オンプレミス システムを構成する必要があります。

  • オンプレミス ネットワークが接続する VPC ネットワークにインバウンド サーバー ポリシーを作成します。
  • オンプレミス ネットワークが接続する VPC ネットワークで、Cloud VPN トンネルと VLAN アタッチメントが配置されているリージョンのインバウンド フォワーダー エントリ ポイントを特定します。
  • VPC ネットワークに接続する Cloud VPN トンネルまたは VLAN アタッチメントと同じリージョン内のインバウンド フォワーダー エントリ ポイントに、googleapis.com と追加のドメイン名を転送するようにオンプレミス システムとオンプレミスの DNS ネームサーバーを構成します。

VPC ネットワーク ルーティング

オンプレミス ネットワークが接続する VPC ネットワークには、private.googleapis.com または restricted.googleapis.com によって使用される IP アドレス範囲のルートが必要です。これらのルートでは、デフォルトのインターネット ゲートウェイのネクストホップを使用する必要があります。

Google では、private.googleapis.com ドメインまたは restricted.googleapis.com ドメインで使用されている IP アドレス範囲のインターネット上のルートを公開していません。したがって、VPC ネットワーク内のルートがデフォルト インターネット ゲートウェイのネクストホップにトラフィックを送信しても、これらの IP アドレス範囲に送信されたパケットは Google のネットワーク内に残ります。

オンプレミス ネットワークが接続する VPC ネットワークに、ネクストホップがデフォルト インターネット ゲートウェイであるデフォルト ルートが含まれている場合、そのルートはオンプレミス ホストへの限定公開の Google アクセスに関するルーティング要件を満たします。

VPC ネットワークのカスタム ルーティング

デフォルト ルートを置き換えた、または変更した場合は、private.googleapis.comrestricted.googleapis.com で使用される宛先 IP 範囲のために構成されたカスタム静的ルートがあることを確認します。特定のネットワークで Google API とサービスのカスタムルートの構成を確認する方法は次のとおりです。

コンソール

  1. Google Cloud Console で、[ルート] ページに移動します。

    [ルート] に移動

  2. [表をフィルタリング] テキスト フィールドを使用して、次の基準でルートのリストをフィルタリングします。NETWORK_NAME は、オンプレミス ネットワークが接続する VPC ネットワークの名前に置き換えます。

    • ネットワーク: NETWORK_NAME
    • ネクストホップのタイプ: default internet gateway
  3. 各ルートの [宛先 IP の範囲] 列を確認します。宛先の範囲が一致するルートを探します。

    • private.googleapis.com を選択した場合は 199.36.153.8/30
    • restricted.googleapis.com を選択した場合は 199.36.153.4/30

gcloud

次の gcloud コマンドを使用します。NETWORK_NAME は、オンプレミス ネットワークが接続する VPC ネットワークの名前に置き換えます。

gcloud compute routes list \
    --filter="default-internet-gateway NETWORK_NAME"

--format フラグでコマンドをカスタマイズしない限り、ルートはテーブル形式で一覧表示されます。[DEST_RANGE] 列で、宛先の範囲が一致するルートを探します。

  • private.googleapis.com を選択した場合は 199.36.153.8/30
  • restricted.googleapis.com を選択した場合は 199.36.153.4/30

VPC ネットワークにルートを作成する必要がある場合は、静的ルートの追加をご覧ください。

Cloud Router を使用したオンプレミス ルーティング

オンプレミス ネットワークのルートは、private.googleapis.com または restricted.googleapis.com ドメインで使用される IP アドレス範囲のトラフィックを、VPC ネットワークに接続するネクストホップの Cloud VPN トンネルまたは VLAN アタッチメントに転送するように構成される必要があります。

Cloud Router のカスタム ルート アドバタイズを使用して、private.googleapis.com ドメインと restricted.googleapis.com ドメインで使用される IP 範囲のルートを通知できます。

IPv6 ルートは、IPv6 が有効になっている BGP セッションでのみアドバタイズされます。

コンソール

カスタム BGP アドバタイズ自体を使用する BGP セッションを除き、Cloud Router 上のすべての BGP セッションのルート アドバタイズ モードを更新するには:

  1. Google Cloud コンソールで、[Cloud Router] ページに移動します。

    Cloud Router に移動

  2. オンプレミス ネットワークを VPC ネットワークに接続する Cloud VPN トンネルまたは VLAN アタッチメントの BGP セッションを管理する Cloud Router を選択します。

  3. Cloud Router の詳細ページで [編集] を選択します。

  4. [アドバタイズされたルート] セクションを展開します。

  5. [ルート] で、[カスタムルートの作成] を選択します。

  6. Cloud Router に表示されるすべてのサブネット ルートをアドバタイズするには、[Cloud Router に表示されるすべてのサブネットにアドバタイズする] を選択します。この設定により、デフォルト構成がカスタム構成に複製されます。

  7. 追加するアドバタイズされたルートごとに、次の操作を行います。

    1. [カスタムルートを追加] を選択します。
    2. [ソース] で [カスタム IP 範囲] を選択します。
    3. [IP アドレス範囲] に、使用する範囲のいずれかを入力します。
      • private.googleapis.com を使用する場合:
        • IPv4 接続の場合: 199.36.153.8/30
        • IPv6 接続の場合: 2600:2d00:0002:2000::/64
      • restricted.googleapis.com を使用する場合:
        • IPv4 接続の場合: 199.36.153.4/30
        • IPv6 接続の場合: 2600:2d00:0002:1000::/64
    4. [完了] をクリックします。
  8. ルートの追加が完了したら、[保存] を選択します。

特定の BGP セッションのルート アドバタイズ モードを更新するには:

  1. Google Cloud コンソールで、[Cloud Router] ページに移動します。

    Cloud Router に移動

  2. オンプレミス ネットワークを VPC ネットワークに接続する Cloud VPN トンネルまたは VLAN アタッチメントの BGP セッションを管理する Cloud Router を選択します。

  3. Cloud Router の詳細ページで、更新する BGP セッションを選択します。

  4. BGP セッションの詳細ページで、[編集] を選択します。

  5. [ルート] で、[カスタムルートの作成] を選択します。

  6. Cloud Router のデフォルトの動作に戻すには、[Cloud Router に表示されるすべてのサブネットをアドバタイズする] を選択して、Cloud Router で使用可能なすべてのサブネット ルートをアドバタイズします。

  7. 追加するアドバタイズされたルートごとに、次の操作を行います。

    1. [カスタムルートを追加] を選択します。
    2. [ソース] で [カスタム IP 範囲] を選択します。
    3. [IP アドレス範囲] に、使用する範囲のいずれかを入力します。
      • private.googleapis.com を使用する場合:
        • IPv4 接続の場合: 199.36.153.8/30
        • IPv6 接続の場合: 2600:2d00:0002:2000::/64
      • restricted.googleapis.com を使用する場合:
        • IPv4 接続の場合: 199.36.153.4/30
        • IPv6 接続の場合: 2600:2d00:0002:1000::/64
    4. [完了] をクリックします。
  8. ルートの追加が完了したら、[保存] を選択します。

gcloud

  1. オンプレミス ネットワークを VPC ネットワークに接続する Cloud VPN トンネルまたは VLAN アタッチメントの BGP セッションを管理する Cloud Router の名前とリージョンを特定します。

  2. compute routers update を使用して、カスタム BGP アドバタイズ自体を使用する BGP セッションを除き、すべての Cloud Router の BGP セッションのルート アドバタイズ モードを更新します。

    gcloud compute routers update ROUTER_NAME \
        --region=REGION \
        --advertisement-mode=CUSTOM \
        --set-advertisement-groups=ALL_SUBNETS \
        --set-advertisement-ranges=CUSTOM_RANGES
    

    すでに Cloud Router の CUSTOM アドバタイズ モードを使用している場合は、新しいアドバタイズ範囲を追加できます。これにより、カスタム BGP アドバタイズ自体を使用する BGP セッションを除き、すべての Cloud Router の BGP セッションでルート アドバタイズ モードが更新されます。

    gcloud compute routers update ROUTER_NAME \
        --region=REGION \
        --add-advertisement-ranges=CUSTOM_RANGES
    
  3. または、compute routers update-bgp-peer を使用して、特定の BGP ピアを Cloud Router で構成します。

    IPv6 カスタム範囲を追加し、BGP セッションで IPv6 トラフィックが無効になっている場合は、--enable-ipv6 フラグを使用して有効にできます。

    gcloud compute routers update-bgp-peer ROUTER_NAME \
        --region=REGION \
        --peer-name=PEER_NAME \
        --advertisement-mode=CUSTOM \
        --set-advertisement-groups=ALL_SUBNETS \
        --set-advertisement-ranges=CUSTOM_RANGES
    

    Cloud Router の BGP セッションですでに CUSTOM アドバタイズ モードを使用している場合は、新しいアドバタイズ範囲を追加できます。

    IPv6 カスタム範囲を追加し、BGP セッションで IPv6 トラフィックが無効になっている場合は、--enable-ipv6 フラグを使用して有効にできます。

    gcloud compute routers update-bgp-peer ROUTER_NAME \
        --region=REGION \
        --peer-name=PEER_NAME \
        --add-advertisement-ranges=CUSTOM_RANGES
    

    上記のコマンドで、次の値を有効な値に置き換えます。

ファイアウォールに関する考慮事項

オンプレミス ネットワークに接続する VPC ネットワーク内の Google Cloud ファイアウォール ルールは、次のパケットに対しては効果がありません。

  • VPC ネットワークに接続された Cloud VPN トンネル経由で送信されたパケット
  • VPC ネットワークに接続された VLAN アタッチメント経由で送信されたパケット
  • VPC ネットワーク内の Cloud DNS インバウンド フォワーダーの IP アドレスへの受信パケット

オンプレミス システムのファイアウォール構成で、適切な IP アドレスへのアウトバンド トラフィックと、適切な IP アドレスからの確立されたレスポンスを確実に許可する必要があります。

  • private.googleapis.com を使用する場合:
    • IPv4 接続の場合: 199.36.153.8/30
    • IPv6 接続の場合: 2600:2d00:0002:2000::/64
  • restricted.googleapis.com を使用する場合:
    • IPv4 接続の場合: 199.36.153.4/30
    • IPv6 接続の場合: 2600:2d00:0002:1000::/64
  • DNS 構成に Cloud DNS を使用している場合は、Cloud DNS インバウンド フォワーダーの IP アドレス

次のステップ