上り(内向き)設定

リージョン ID

REGION_ID は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。

詳しくは、リージョン ID をご覧ください。

このセクションでは、上り(内向き)設定を使用して、App Engine アプリへのネットワーク アクセスを制限する方法について説明します。ネットワーク レベルのデフォルトでは、インターネット上のリソースは appspot URL または App Engine で設定されたカスタム ドメインの App Engine アプリにアクセスできます。たとえば、appspot.com の URL の形式は SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com です。

このデフォルトを変更するには、上り(内向き)に別の設定を指定します。デフォルトの appspot.com URL を含むすべての上り(内向き)パスは、上り(内向き)設定の対象となります。上り(内向き)はサービスレベルで設定されます。

使用可能な上り(内向き)設定

次の設定を使用できます。

設定 説明
内部 最も厳しい。プロジェクトの VPC ネットワークに接続されている次のようなリソースからのリクエストを許可します。
これらのソースからのリクエストは、appspot.com URL でサービスにアクセスする場合でも、Google ネットワーク内にとどまります。インターネットを含む他のソースからのリクエストは、appspot.com URL またはカスタム ドメインのサービスに到達できません。マルチテナンシー(同じプロジェクト内の複数の信頼ドメイン)はサポートされていません。
内部と Cloud Load Balancing 次のリソースからのリクエストを許可します。
  • より厳しい内部設定によって許可されるリソース
  • 外部アプリケーション ロードバランサ
内部と Cloud Load Balancing の設定を使用して、インターネットから直接ではなく、外部アプリケーション ロードバランサ経由でリクエストを受け入れます。appspot.com URL へのリクエストは外部アプリケーション ロードバランサをバイパスします。この設定により、外部リクエストは appspot.com URL に到達しません。
すべて 最も寛容。インターネットから appspot.com の URL に直接送信されるリクエストを含むすべてのリクエストを許可します。

内部サービスへのアクセス

次のことに注意してください。

  • 共有 VPC からのリクエストの場合、App Engine アプリが共有 VPC ホスト プロジェクトにデプロイされている場合にのみ、トラフィックは内部とみなされます。App Engine アプリが共有 VPC サービス プロジェクトにデプロイされている場合は、アプリ自身のプロジェクトが所有するネットワークからのトラフィックのみが内部とみなされます。他のすべてのトラフィック(他の共有 VPC からのトラフィックを含む)は外部となります。

  • 内部サービスにアクセスする場合は、公開 URL(デフォルトの appspot.com URL または App Engine で設定されたカスタム ドメイン)を使用して、通常どおりに呼び出します。

  • Compute Engine VM インスタンスからのリクエストの場合、または同じプロジェクトの VPC ネットワーク内で実行されている他のリソースからのリクエストの場合、さらなる設定は必要ありません。

  • 同じプロジェクトの VPC ネットワーク内のリソースからのリクエストは、送信元のリソースがパブリック IP アドレスを持っていても、内部に分類されます。

  • Cloud VPN 経由で VPC ネットワークに接続されているオンプレミス リソースからのリクエストは、internal とみなされます。

  • 他の App Engine サービスからのリクエストの場合や、同じプロジェクトの Cloud Run または Cloud Run functions からのリクエストの場合は、共有 VPC ネットワークへの接続の説明にあるように、サービスまたは関数を VPC ネットワークに接続して、すべての下り(外向き)をコネクタ経由でルーティングします。

上り(内向き)設定を表示する

Console

  1. App Engine の [サービス] ページに移動します。

    [サービス] ページに移動

  2. [上り(内向き)] 列を見つけます。サービスごとに、この列の値に上り(内向き)設定が [すべて](デフォルト)、[内部 + ロード バランシング]、[内部] のいずれかとして表示されます。

gcloud

gcloud CLI を使用してサービスの上り(内向き)設定を表示するには:

gcloud app services describe SERVICE

SERVICE は、実際のサービス名に置き換えます。

たとえば、デフォルト サービスの上り(内向き)設定とその他の情報を表示するには、次のコマンドを実行します。

gcloud app services describe default

上り(内向き)設定を編集する

Console

  1. App Engine の [サービス] ページに移動します。

    [サービス] ページに移動

  2. 編集するサービスを選択します。

  3. [上り(内向き)設定を編集] をクリックします。

  4. メニューから必要な上り(内向き)設定を選択し、[保存] をクリックします。

gcloud

gcloud CLI を使用してサービスの上り(内向き)設定を更新するには:

gcloud app services update SERVICE --ingress=INGRESS

次のように置き換えます。

  • SERVICE: サービスの名前。
  • INGRESS: 適用する上り(内向き)の制御。allinternal-onlyinternal-and-cloud-load-balancing のいずれかです。

次に例を示します。

  • 同じプロジェクト内の Cloud Load Balancing と VPC ネットワークからのトラフィックのみを受け入れるように、App Engine アプリのデフォルト サービスを更新するには、次のコマンドを実行します。

    gcloud app services update default --ingress=internal-and-cloud-load-balancing
  • 同じプロジェクト内の VPC ネットワークからのトラフィックのみを受け入れるように、「internal-requests」という名前のサービスを更新するには、次のコマンドを実行します。

    gcloud app services update internal-requests --ingress=internal-only

下り(外向き)設定

サーバーレス VPC アクセスを使用している場合は、App Engine サービスの下り(外向き)設定を指定できます。

デフォルトでは、内部 IP アドレスと内部 DNS 名へのリクエストのみが、サーバーレス VPC アクセス コネクタ経由で転送されます。app.yaml ファイルで、サービスの下り(外向き)設定を指定できます。

下り(外向き)設定には URL 取得サービスとの互換性がありません。urlfetch ライブラリを使用すると、下り(外向き)設定は無視され、リクエストはサーバーレス VPC アクセス コネクタ経由でルーティングされません。

App Engine サービスの下り(外向き)動作を構成するには:

  1. サービスの app.yaml ファイルの vpc_access_connector フィールドに egress_setting 属性を追加します。

    vpc_access_connector:
      name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
      egress_setting: EGRESS_SETTING

    次のように置き換えます。

    • PROJECT_ID は、Google Cloud プロジェクト ID に置き換えます。
    • REGION は、コネクタが存在するリージョンに置き換えます。
    • CONNECTOR_NAME は、コネクタの名前に置き換えます。
    • EGRESS_SETTING は、次のいずれかに置き換えます。
      • private-ranges-only: デフォルト。IP アドレス範囲(RFC 1918RFC 6598)または内部 DNS 名へのリクエストのみが VPC ネットワークに転送されます。その他のリクエストはすべて直接インターネットに転送します。
      • all-traffic: サービスからの送信リクエストをすべて VPC ネットワークに転送します。その後、リクエストは VPC ネットワークのファイアウォール、DNS、ルーティングの各ルールに従って処理されます。すべての送信リクエストを VPC ネットワークに転送すると、サーバーレス VPC アクセス コネクタによって処理される下り(外向き)の量が増加し、料金が発生する可能性があります。
  2. サービスをデプロイします。

    gcloud app deploy