限定公開の Google アクセスを構成する

このページでは、限定公開の Google アクセスを有効にして構成する方法について説明します。デフォルトでは、Compute Engine VM がネットワーク インターフェースに割り当てられた外部 IP アドレスを持たない場合、他の内部 IP アドレスの宛先にのみパケットを送信できます。VM のネットワーク インターフェースが使用するサブネットで限定公開の Google アクセスを有効にすると、Google API とサービスで使用される一連の外部 IP アドレスに VM を接続できます。

限定公開の Google アクセスでは、App Engine で使用される外部 IP アドレス(サードパーティ App Engine ベースのサービスを含む)にもアクセスできます。

限定公開の Google アクセスで使用できる対象の API とサービスを確認するには、限定公開の Google アクセスの概要でサポート対象のサービスをご覧ください。

限定公開の Google アクセスや Google Cloud が提供するその他のプライベート接続オプションの背景情報については、サービスのプライベート アクセス オプションをご覧ください。

仕様

次のすべての条件が満たされている場合、VM インターフェースは限定公開の Google アクセスを使用して Google API とサービスの外部 IP アドレスにパケットを送信できます。

  • 限定公開の Google アクセスが有効なサブネットに VM インターフェースが接続している。

  • サブネットを含む VPC ネットワークが、Google API とサービスのネットワーク要件を満たしている。

  • VM インターフェースに外部 IP アドレスが割り振られていない。

  • VM から送信されたパケットの送信元 IP アドレスが、次のいずれかの IP アドレスと一致する。

    • VM インターフェースのプライマリ内部 IPv4 アドレス
    • VM インターフェースの内部 IPv6 アドレス
    • エイリアス IP 範囲からの内部 IPv4 アドレス

ネットワーク インターフェースに割り当てられた外部 IPv4 または IPv6 アドレスを持つ VM には、Google API とサービスに接続する限定公開の Google アクセスは必要ありません。ただし、VPC ネットワークは Google API とサービスのアクセス要件を満たしている必要があります。

ネットワークの要件

限定公開の Google アクセスには以下の要件があります。

  • 限定公開の Google アクセスはサブネットごとに有効になっているため、VPC ネットワークを使用する必要があります。レガシー ネットワークはサブネットに対応していないため、サポート対象外です。

  • IPv6 を使用して Google API とサービスに接続する場合は、次の両方の要件を満たす必要があります。

    • VM は /96 IPv6 アドレス範囲で構成する必要があります。

    • VM で実行されているソフトウェアは、送信元がこれらの IPv6 アドレスのいずれかに一致するパケットを送信する必要があります。

  • 選択した構成によっては、DNS エントリ、ルート、ファイアウォール ルールの更新が必要になる場合があります。詳細については、構成オプションの概要をご覧ください。

権限

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

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

ロギング

Cloud Logging は、限定公開の Google アクセスが有効になっているサブネット内の VM インスタンスからの API リクエストをすべてキャプチャします。ログエントリは、API リクエストのソースを呼び出し元インスタンスの内部 IP アドレスとして識別します。

日次使用状況レポートや月次ロールアップ レポートが Cloud Storage バケットに配信されるよう構成できます。詳細については、使用状況レポートの表示をご覧ください。

構成オプションの概要

次の表は、限定公開の Google アクセスのさまざまな構成方法をまとめたものです。詳細な構成情報については、ネットワークの構成をご覧ください。

ドメイン オプション DNS 構成 ルーティング構成 ファイアウォール構成
デフォルト ドメイン 特別な DNS 構成は必要ありません。

VPC ネットワークが、Google API とサービスで使用する IP アドレス範囲へのトラフィックをルーティングできるようにしてください。

  • 基本構成: ネクストホップが default-internet-gateway、宛先の範囲が 0.0.0.0/0(IPv4 トラフィックの場合)と ::/0(IPv6 トラフィック、必要な場合)のデフォルト ルートがあることを確認してください。このようなルートがない場合は作成してください。
  • カスタム構成: Google API とサービスで使用する IP アドレス範囲のルートを作成してください。

Google API とサービスで使用する IP アドレス範囲への下り(外向き)がファイアウォール ルールで許可されるようにしてください。

デフォルトの下り(外向き)許可のファイアウォール ルールでは、このトラフィックをブロックする優先度の高いルールがない限り、このトラフィックが許可されます。

private.googleapis.com

次の IP アドレスにリクエストを送信するように、限定公開 DNS ゾーン内に DNS レコードを構成してください。

IPv4 トラフィックの場合:

  • 199.36.153.8/30

IPv6 トラフィックの場合:

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

VPC ネットワークに次の IP 範囲へのルートがあるようにしてください。

IPv4 トラフィックの場合:

  • 199.36.153.8/30
  • 34.126.0.0/18

IPv6 トラフィックの場合:

  • 2600:2d00:0002:2000::/64
  • 2001:4860:8040::/42

次の IP 範囲への下り(外向き)がファイアウォール ルールで許可されるようにしてください。

IPv4 トラフィックの場合:

  • 199.36.153.8/30
  • 34.126.0.0/18

IPv6 トラフィックの場合:

  • 2600:2d00:0002:2000::/64
  • 2001:4860:8040::/42
restricted.googleapis.com

次の IP アドレスにリクエストを送信するように DNS レコードを構成してください。

IPv4 トラフィックの場合:

  • 199.36.153.4/30

IPv6 トラフィックの場合:

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

VPC ネットワークに次の IP 範囲へのルートがあるようにしてください。

IPv4 トラフィックの場合:

  • 199.36.153.4/30
  • 34.126.0.0/18

IPv6 トラフィックの場合:

  • 2600:2d00:0002:1000::/64
  • 2001:4860:8040::/42

次の IP 範囲への下り(外向き)がファイアウォール ルールで許可されるようにしてください。

IPv4 トラフィックの場合:

  • 199.36.153.4/30
  • 34.126.0.0/18

IPv6 トラフィックの場合:

  • 2600:2d00:0002:1000::/64
  • 2001:4860:8040::/42

ネットワークの構成

このセクションでは、VPC ネットワーク内の VM が Google API とサービスにアクセスするために必要な基本的なネットワーク要件について説明します。

ドメイン オプション

Google API とサービスへのアクセスに使用するドメインを選択します。

private.googleapis.comrestricted.googleapis.com の仮想 IP アドレス(VIP)は、TCP を使用する HTTP ベースのプロトコル(HTTP、HTTPS、HTTP/2)のみをサポートします。他のプロトコル(MQTT や ICMP など)はサポートされていません。

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

デフォルト ドメイン。

private.googleapis.comrestricted.googleapis.com を除く Google API とサービスのすべてのドメイン名。

さまざまな IP アドレス範囲 - デフォルト ドメインの IP アドレスを参照することにより、デフォルト ドメインで使用される可能性のあるアドレスを含む IP 範囲のセットを決定できます。

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

デフォルト ドメインは、private.googleapis.comrestricted.googleapis.com の DNS レコードを構成していない場合に使用されます。

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 API とサービスへの接続では、private.googleapis.com VIP または restricted.googleapis.com VIP に関連付けられた IP アドレスにパケットを送信できます。VIP を使用するには、VPC ネットワーク内の VM がパブリック IP アドレスではなく VIP アドレスを使用してサービスにアクセスできるように 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 ホスト名をサポートしていません。

ルーティング オプション

VPC ネットワークには、ネクストホップがデフォルトのインターネット ゲートウェイである適切なルートが必要です。Google Cloud は、他の VM インスタンスまたはカスタム ネクストホップを介した Google API とサービスへのトラフィックのルーティングをサポートしていません。デフォルトのインターネット ゲートウェイと呼ばれてはいますが、VPC ネットワーク内の VM から Google API とサービスに送信されるパケットは、Google のネットワーク内に残ります。

  • デフォルト ドメインを選択した場合、VM インスタンスは Google の外部 IP アドレスのサブセットを使用して Google API とサービスに接続します。この IP アドレスは一般公開され、ルーティング可能ですが、VPC ネットワーク内の VM からこれらのアドレスへのパスが Google のネットワーク内に残ります。

  • Google は、private.googleapis.com ドメインまたは restricted.googleapis.com ドメインで使用されているいずれの IP アドレス範囲のインターネット上のルートも公開していません。したがって、こうしたドメインにアクセスできるのは、VPC ネットワーク内の VM または VPC ネットワークに接続されているオンプレミス システムの場合のみです。

VPC ネットワークに、ネクストホップがデフォルトのインターネット ゲートウェイであるデフォルト ルートが含まれている場合は、そのルートを使用すると、カスタムルートを作成しなくても、Google API とサービスにもアクセスできます。詳細については、デフォルト ルートでのルーティングをご覧ください。

デフォルト ルート(宛先 0.0.0.0/0 または ::0/0)を、ネクストホップがデフォルトのインターネット ゲートウェイではないカスタムルートに置き換えた場合は、代わりにカスタム ルーティングを使用して、Google API とサービスのルーティング要件を満たすことができます。

VPC ネットワークに IPv6 のデフォルト ルートがない場合、Google API とサービスへの IPv6 接続は確立されません。IPv6 接続を許可するには、IPv6 デフォルト ルートを追加します。

デフォルト ルートでのルーティング

各 VPC ネットワークには、作成時に IPv4 のデフォルト ルート(0.0.0.0/0)が含まれます。サブネットで外部 IPv6 アドレスを有効にすると、システムによって生成された IPv6 デフォルト ルート(::/0)がその VPC ネットワークに追加されます。

デフォルトのルートは、次の宛先の IP アドレスへのパスを提供します。

  • デフォルト ドメイン。

  • private.googleapis.com: 199.36.153.8/302600:2d00:0002:2000::/64

  • restricted.googleapis.com: 199.36.153.4/302600:2d00:0002:1000::/64

特定のネットワークのデフォルト ルートの構成を確認する方法は次のとおりです。

コンソール

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

    [ルート] に移動

  2. ルートのリストをフィルタして、検査する必要があるネットワークのルートのみを表示します。

  3. 宛先が 0.0.0.0/0(IPv4 トラフィックの場合)か、::/0(IPv6 トラフィックの場合)で、ネクストホップがデフォルトのインターネット ゲートウェイであるルートを探します。

gcloud

次の gcloud コマンドを使用して、NETWORK_NAME を調べるネットワークの名前に置き換えます。

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

置換用のデフォルト IPv4 ルートを作成する必要がある場合は、静的ルートの追加をご覧ください。

置換用のデフォルトの IPv6 ルートを作成する必要がある場合は、IPv6 デフォルト ルートの追加をご覧ください。

カスタム ルーティング

デフォルト ルートの代わりに、宛先がより狭く、デフォルトのインターネット ゲートウェイ ネクストホップを使用するカスタム静的ルートを使用することもできます。必要なルートの数と宛先 IP アドレスは、選択したドメインによって異なります。

また、34.126.0.0/182001:4860:8040::/42 のルートを追加することもおすすめします。詳細については、構成オプションの概要をご覧ください。

特定のネットワークで Google API とサービスのカスタムルートの構成を確認する方法は次のとおりです。

コンソール

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

    [ルート] に移動

  2. [表をフィルタリング] テキスト フィールドで、次の条件を指定してルートのリストをフィルタリングします。NETWORK_NAME は実際の VPC ネットワークの名前に置き換えてください。

    • ネットワーク: NETWORK_NAME
    • ネクストホップのタイプ: default internet gateway
  3. 各ルートの [宛先 IP の範囲] 列を確認します。デフォルト ドメインを選択した場合は、複数のカスタム静的ルート(デフォルト ドメインで使用される各 IP アドレス範囲ごとに 1 つ)がないか確認します。private.googleapis.com または restricted.googleapis.com を選択した場合は、そのドメインの IP 範囲を探します。

gcloud

次の gcloud コマンドを使用して、NETWORK_NAME を調べるネットワークの名前に置き換えます。

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

--format フラグでコマンドをカスタマイズしない限り、ルートはテーブル形式で一覧表示されます。DEST_RANGE 列で各ルートの宛先を探します。デフォルト ドメインを選択した場合は、複数のカスタム静的ルート(デフォルト ドメインで使用される各 IP アドレス範囲ごとに 1 つ)がないか確認します。private.googleapis.com または restricted.googleapis.com を選択した場合は、そのドメインの IP 範囲を探します。

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

ファイアウォール構成

VPC ネットワークのファイアウォール構成では、VM から Google API とサービスによって使用される IP アドレスへのアクセスを許可する必要があります。暗黙の allow egress ルールは、この要件を満たしています。

一部のファイアウォール構成では、特定の下り(外向き)許可ルールを作成する必要があります。たとえば、すべての宛先(IPv4 の場合は 0.0.0.0、IPv6 の場合は ::/0)をブロックする下り(外向き)拒否ルールを作成したとします。この場合、Google API とサービス用に、選択したドメインが使用する各 IP アドレス範囲の下り(外向き)拒否ルールよりも優先順位が高い下り(外向き)許可のファイアウォール ルールを 1 つ作成する必要があります。

また、下り(外向き)許可のファイアウォール ルールに 34.126.0.0/182001:4860:8040::/42 を含めることもおすすめします。詳細については、構成オプションの概要をご覧ください。

ファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。各下り(外向き)許可ルールのターゲットを定義するときに、ファイアウォール ルールが適用される VM を制限できます。

デフォルト ドメインの IP アドレス

このセクションでは、Google API とサービスで使用されるデフォルト ドメインの IP 範囲のリストを作成する方法について説明します。これらの範囲は動的に割り振られ、頻繁に変更されます。このため、個々のサービスまたは API に特定の IP 範囲を定義することはできません。正確なリストを保持するには、スクリプトを毎日実行するように自動化を設定します。IP アドレス範囲のリストを維持する別の方法として、private.googleapis.com VIP または Private Service Connect の使用も検討してください。

*.googleapis.com*.gcr.io など、デフォルトのドメインで使用される IP アドレス範囲を確認するには、次の手順を行います。

  • Google では、インターネット上でユーザーが使用できる IP 範囲の完全なリストを goog.json で公開しています。

  • また、お客様の Google Cloud リソースで使用可能なグローバルとリージョンの外部 IP アドレス範囲のリストを cloud.json に公開しています。

Google API とサービスのデフォルトのドメインで使用される IP アドレスは、goog.json の範囲から cloud.json のすべての範囲を除いて計算された範囲のリスト内に収まります。このリストは頻繁に更新されます。

次の Python スクリプトを使用すると、Google API とサービスのデフォルト ドメインで使用される IP アドレス範囲のリストを作成できます。

このスクリプトの実行については、実行方法をご覧ください。

from __future__ import print_function

import json

try:
    from urllib import urlopen
except ImportError:
    from urllib.request import urlopen
    from urllib.error import HTTPError

import netaddr

IPRANGE_URLS = {
    "goog": "https://www.gstatic.com/ipranges/goog.json",
    "cloud": "https://www.gstatic.com/ipranges/cloud.json",
}


def read_url(url):
    try:
        return json.loads(urlopen(url).read())
    except (IOError, HTTPError):
        print("ERROR: Invalid HTTP response from %s" % url)
    except json.decoder.JSONDecodeError:
        print("ERROR: Could not parse HTTP response from %s" % url)


def get_data(link):
    data = read_url(link)
    if data:
        print("{} published: {}".format(link, data.get("creationTime")))
        cidrs = netaddr.IPSet()
        for e in data["prefixes"]:
            if "ipv4Prefix" in e:
                cidrs.add(e.get("ipv4Prefix"))
            if "ipv6Prefix" in e:
                cidrs.add(e.get("ipv6Prefix"))
        return cidrs


def main():
    cidrs = {group: get_data(link) for group, link in IPRANGE_URLS.items()}
    if len(cidrs) != 2:
        raise ValueError("ERROR: Could process data from Google")
    print("IP ranges for Google APIs and services default domains:")
    for ip in (cidrs["goog"] - cidrs["cloud"]).iter_cidrs():
        print(ip)


if __name__ == "__main__":
    main()

限定公開の Google アクセスの構成

限定公開の Google アクセスは、VPC ネットワーク内のネットワーク要件を満たした後で有効にできます。

限定公開の Google アクセスを有効にする

以下の手順に従って限定公開の Google アクセスを有効にします。

コンソール

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

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

  2. 限定公開の Google アクセスを有効にするサブネットが含まれるネットワークの名前をクリックします。

  3. 既存のサブネットの場合:

    1. サブネットの名前をクリックします。[サブネットの詳細] ページが表示されます。
    2. [編集] をクリックします。
    3. [限定公開の Google アクセス] セクションで、[オン] を選択します。
    4. [保存] をクリックします。
  4. 新しいサブネットの場合:

    1. [サブネットを追加] をクリックします。
    2. 名前を入力します。
    3. リージョンを選択します。
    4. [IP スタックタイプ] には、[IPv4 のみ(シングルスタック)] または [IPv4 と IPv6(デュアルスタック)] を選択します。
    5. [IPv4 範囲] を入力します。これはサブネットのプライマリ IPv4 範囲です。

      RFC 1918 アドレス以外の範囲を選択した場合は、その範囲が既存の構成と競合していないことを確認します。詳細については、IPv4 サブネットの範囲をご覧ください。

    6. デュアルスタックのサブネットを作成する場合は、[IPv6 アクセスタイプ] で [内部] または [外部] を選択します。

      アクセスタイプを [内部] に設定する必要があるが、[内部] オプションを使用できない場合は、ネットワークで内部 IPv6 の範囲が割り当てられていることを確認してください。

    7. ニーズに合わせて新しいサブネットを適切に選択します。たとえば、セカンダリ サブネットの IP 範囲の作成や、VPC フローログの有効化が必要になる場合があります。

    8. [限定公開の Google アクセス] セクションで [オン] を選択します。

    9. [追加] をクリックします。

gcloud

既存のサブネットの場合:

  1. サブネットの名前とリージョンを特定します。次のコマンドで特定のネットワークのサブネットを一覧表示します。

    gcloud compute networks subnets list --filter=NETWORK_NAME
    
  2. 次のコマンドを実行して、限定公開の Google アクセスを有効にします。

    gcloud compute networks subnets update SUBNET_NAME \
    --region=REGION \
    --enable-private-ip-google-access
    
  3. 次のコマンドで、限定公開の Google アクセスが有効になっていることを確認します。

    gcloud compute networks subnets describe SUBNET_NAME \
    --region=REGION \
    --format="get(privateIpGoogleAccess)"
    

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

  • SUBNET_NAME: サブネットの名前
  • REGION: サブネットのリージョン
  • NETWORK_NAME: サブネットを含む VPC ネットワークの名前

新しいサブネットを作成するときは、--enable-private-ip-google-access フラグを使用して限定公開の Google アクセスを有効にします。

gcloud compute networks subnets create SUBNET_NAME \
    --region=REGION \
    --network=NETWORK_NAME \
    --range=PRIMARY_IP_RANGE \
    [ --stack-type=STACK_TYPE ] \
    [ --ipv6-access-type=IPv6_ACCESS_TYPE ] \
    --enable-private-ip-google-access

次の変数を有効な値に置き換えます。

  • SUBNET_NAME: サブネットの名前
  • REGION: サブネットのリージョン
  • NETWORK_NAME: サブネットを含む VPC ネットワークの名前
  • PRIMARY_IP_RANGE: サブネットのプライマリ IP アドレス範囲
  • STACK_TYPE は、サブネットのスタックタイプ(IPV4_ONLY または IPV4_IPV6)です。
  • IPv6_ACCESS_TYPE は IPv6 アクセスタイプ(EXTERNAL または INTERNAL)です。--stack-type=IPV4_IPV6 も指定した場合にのみ、IPv6 アクセスタイプを指定します。

限定公開の Google アクセスを無効にする

以下の手順に従って、既存のサブネットの限定公開の Google アクセスを無効にします。

コンソール

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

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

  2. 限定公開の Google アクセスを無効にするサブネットが含まれているネットワークの名前をクリックします。

  3. 既存のサブネットの名前をクリックします。[サブネットの詳細] ページが表示されます。

  4. [編集] をクリックします。

  5. [限定公開の Google アクセス] セクションで、[オフ] を選択します。

  6. [保存] をクリックします。

gcloud

  1. サブネットの名前とリージョンを特定します。次のコマンドで特定のネットワークのサブネットを一覧表示します。

    gcloud compute networks subnets list \
        --filter=NETWORK_NAME
    
  2. 次のコマンドを実行して、限定公開の Google アクセスを無効にします。

    gcloud compute networks subnets update SUBNET_NAME \
        --region=REGION \
        --no-enable-private-ip-google-access
    
  3. 次のコマンドで、限定公開の Google アクセスが無効になっていることを確認します。

    gcloud compute networks subnets describe SUBNET_NAME \
        --region=REGION \
        --format="get(privateIpGoogleAccess)"
    

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

  • SUBNET_NAME: サブネットの名前
  • REGION: サブネットのリージョン
  • NETWORK_NAME: サブネットを含む VPC ネットワークの名前

次のステップ