VPC ファイアウォール ルール

Virtual Private Cloud(VPC)ファイアウォール ルールは、特定のプロジェクトとネットワークに適用されます。組織内の複数の VPC ネットワークにファイアウォール ルールを適用する場合は、ファイアウォール ポリシーをご覧ください。このページの残りの部分では VPC ファイアウォール ルールについてのみ説明します。

VPC ファイアウォール ルールを使用すると、VPC ネットワーク内の仮想マシン(VM)インスタンスの間の接続を許可または拒否できます。有効になっている VPC ファイアウォール ルールは常に適用され、構成やオペレーティング システムに関係なくインスタンスを保護します。起動していないインスタンスも保護されます。

すべての VPC ネットワークは、分散ファイアウォールとして機能します。ファイアウォール ルールはネットワーク レベルで定義されますが、接続はインスタンスごとに許可または拒否されます。VPC ファイアウォール ルールはインスタンスと他のネットワークの間だけでなく、同じネットワーク内の個々のインスタンスの間にも存在します。

ファイアウォールの詳細については、ファイアウォール(コンピューティング)をご覧ください。

ファイアウォール ルールのベスト プラクティス

ファイアウォール ルールを設計および評価するときは、次のベスト プラクティスを考慮してください。

  • 最小権限の原則を実装する。デフォルトでは、すべてのトラフィックをブロックし、必要な特定のトラフィックのみを許可します。また、ルールを必要なプロトコルとポートのみに制限します。
  • 階層型ファイアウォール ポリシールールを使用して、組織レベルやフォルダレベルで許可するべきでないトラフィックをブロックする。
  • 「許可」ルールの場合は、VM のサービス アカウントを指定して、特定の VM に制限する。
  • IP アドレスに基づいてルールを作成する必要がある場合は、ルール数を最小限に抑えるようにする。別々のルール 16 個を追跡するよりも、16 個の VM の範囲へのトラフィックを許可するルール 1 つを追跡するほうが簡単です。
  • ファイアウォール ルールのロギングを有効にして、ファイアウォール インサイトを使用し、ファイアウォール ルールが意図したとおりに使用されていることを確認する。ファイアウォール ルール ロギングには費用が発生する可能性があるため、対象を絞って使用することを検討してください。

Google Cloud のファイアウォール ルール

VPC ファイアウォール ルールを作成する場合は、VPC ネットワークと、ルールの動作を定義する一連のコンポーネントを指定します。コンポーネントを使用することで、トラフィックのプロトコル、宛先ポート、送信元、宛先に基づいて、特定の種類のトラフィックをターゲットにできます。詳細については、ファイアウォール ルールのコンポーネントをご覧ください。

VPC ファイアウォール ルールを作成または変更するには、Google Cloud コンソールGoogle Cloud CLIREST API を使用します。ファイアウォール ルールを作成または変更するときに、ルールのターゲット パラメータを使用して、ルールを適用するインスタンスを指定できます。ファイアウォール ルールの例については、その他の構成例をご覧ください。

Google Cloud には、管理者が作成するファイアウォール ルールに加えて、受信(内向き)接続と送信(外向き)接続に影響を与える他のルールがあります。

仕様

VPC ファイアウォール ルールには、以下の特性があります。

  • ファイアウォール ルールは、双方向ではなく、受信(内向き)接続または送信(外向き)接続に適用されます。詳細については、接続の方向をご覧ください。

  • ファイアウォール ルールは IPv4 接続をサポートします。IPv6 接続は、IPv6 が有効になっている VPC ネットワークでもサポートされます。上り(内向き)ルールまたは下り(外向き)ルールの送信元または送信先をアドレスで指定する場合は、IPv4 または IPv6 アドレスまたはブロックを CIDR 表記で指定できます。

  • 各ファイアウォール ルールには IPv4 範囲または IPv6 範囲のいずれかを含めることができます。両方を含めることはできません。

  • ファイアウォール ルールの動作は allow または deny です。ルールは、適用されている限り、接続に適用されます。たとえば、トラブルシューティングの目的でルールを無効にできます。

  • ファイアウォール ルールを作成するときに、VPC ネットワークを選択する必要があります。ルールはインスタンス レベルで適用されますが、その構成は VPC ネットワークに関連付けられています。VPC ネットワーク ピアリングCloud VPN トンネルで接続されているネットワークなど、VPC ネットワーク間でファイアウォール ルールを共有することはできません。

  • VPC ファイアウォール ルールはステートフルです。

    • ファイアウォールでいずれかの方向の接続が許可されると、この接続に一致する戻りのトラフィックも許可されます。関連するレスポンス トラフィックを拒否するようにファイアウォール ルールを構成することはできません。
    • 戻りトラフィックは、承認されたリクエスト トラフィックの 5 タプル(送信元 IP、宛先 IP、送信元ポート、宛先ポート、プロトコル)と一致する必要がありますが、送信元アドレスと宛先アドレス、ポートが逆になっている必要があります。
    • Google Cloud は、接続トラッキング テーブルを使用して、インバウンド パケットとそれに対応するアウトバウンド パケットを関連付けます。IPv4 接続は、TCP、UDP、SCTP、ICMP プロトコルをサポートしています。IPv6 接続は、TCP、UDP、SCTP、ICMPv6 の各プロトコルをサポートしています。
    • プロトコルが接続をサポートしているかどうかにかかわらず、Google Cloud は接続トラッキングを実装します。接続が送信元とターゲットの間で許可されている場合(内向きルール)またはターゲットと宛先の間で許可されている場合(外向きルール)、接続トラッキング テーブルの状態がアクティブである限り、すべてのレスポンス トラフィックが許可されます。10 分ごとに 1 つ以上のパケットが送信された場合、ファイアウォール ルールのトラッキング状態はアクティブになります。
    • 断片化された接続がファイアウォールを介して許可されると、Google Cloud は接続トラッキングを使用して、戻りトラフィックの最初のフラグメントのみを許可します。後続の戻りフラグメントを許可するには、ファイアウォール ルールを追加する必要があります。
    • 許可された TCP / UDP 接続に応じて、「ICMP TYPE 3, DESTINATION UNREACHABLE」などの ICMP レスポンス トラフィックが許可されます。この動作は RFC 792 と一致しています。
  • VPC ファイアウォール ルールでは、断片化された TCP パケットは再構成されません。したがって、TCP プロトコルに適用されるファイアウォール ルールは、最初のフラグメントにのみ適用されます(TCP ヘッダーが含まれているため)。TCP プロトコルに適用されるファイアウォール ルールは、以降の TCP フラグメントには適用されません。

  • ファイアウォール ルール テーブルのトラッキングされる接続の最大数は、インスタンスのマシンタイプによってサポートされるステートフル接続の数によって異なります。トラッキングされる接続の最大数を超えると、アイドル時間が最も長い接続に対するトラッキングが停止され、新しい接続のトラッキングが可能になります。

    インスタンスのマシンタイプ ステートフル接続の最大数
    共有コア マシンタイプ 130,000
    vCPU が 1~8 個のインスタンス vCPU あたり 130,000 接続
    vCPU が 8 個を超えるインスタンス 合計 1,040,000(130,000×8)接続

暗黙のルール

すべての VPC ネットワークには、暗黙の IPv4 ファイアウォール ルールが 2 つあります。また、VPC ネットワークで IPv6 が有効になっている場合、ネットワークには 2 つの暗黙の IPv6 ファイアウォール ルールがあります。これらのルールは Google Cloud コンソールには表示されません。

暗黙の IPv4 ファイアウォール ルールは、ネットワークの作成方法や自動モードまたはカスタムモードの VPC ネットワークのどちらであるかに関係なく、すべての VPC ネットワークに存在します。デフォルト ネットワークには同じ暗黙のルールがあります。

  • 暗黙の IPv4 の下り(外向き)許可ルール。アクションが allow、宛先が 0.0.0.0/0、優先度が可能な限り低い(65535)下り(外向き)ルールでは、Google Cloud によってブロックされたトラフィックを除き、すべてのインスタンスが任意の宛先にトラフィックを送信できます。優先度の高いファイアウォール ルールにより、送信アクセスが制限される場合があります。他のファイアウォール ルールによってアウトバウンド トラフィックが拒否されない場合、またインスタンスが外部 IP アドレスを持っているか、NAT インスタンスを使用している場合、インターネット アクセスが許可されます。詳細については、インターネット アクセスの要件をご覧ください。

    ルーティングの要件については、インターネット アクセスの要件をご覧ください。

  • 暗黙の IPv4 上り(内向き)拒否ルール。アクションが deny、送信元が 0.0.0.0/0、優先度が可能な限り低い(65535)上り(内向き)ルールでは、受信接続をブロックすることによって、すべてのインスタンスが保護されます。優先度の高いルールにより、受信アクセスが許可される場合があります。デフォルト ネットワークには、このルールをオーバーライドする追加ルールがいくつか含まれており、特定のタイプの受信接続が許可されます。

IPv6 が有効になっている場合、VPC ネットワークには次の 2 つの暗黙ルールがあります。

  • 暗黙の IPv6 の下り(外向き)許可ルール。アクションが allow、宛先が ::/0、優先度が可能な限り低い(65535)下り(外向き)ルールでは、Google Cloud によってブロックされたトラフィックを除き、すべてのインスタンスが任意の宛先にトラフィックを送信できます。優先度の高いファイアウォール ルールにより、アウトバウンド アクセスが制限される場合があります。ルーティングの要件については、インターネット アクセスの要件をご覧ください。

  • 暗黙の IPv6 拒否上り(内向き)ルール。アクションが deny、送信元が ::/0、優先度が可能な限り低い(65535)上り(内向き)ルールでは、受信接続をブロックすることによって、すべてのインスタンスが保護されます。優先度の高いルールにより、受信アクセスが許可される場合があります。

暗黙のルールは削除できませんが、優先度は可能な限り低くなっています。作成したルールの優先度が高い場合(優先度の数値が 65535 未満)、作成したルールによってこれらをオーバーライドできます。deny ルールは同じ優先度の allow ルールより常に優先されるため、優先度 65535 の上り(内向き)allow ルールが有効になることはありません。

デフォルト ネットワークの事前設定ルール

デフォルト ネットワークには、インスタンスへの受信接続を許可するファイアウォール ルールが事前に設定されています。これらのルールは、必要に応じて削除または変更できます。

ルール名 方向 優先度 ソース範囲 アクション プロトコルとポート 説明
default-allow-internal ingress 65534 10.128.0.0/9 allow tcp:0-65535
udp:0-65535
icmp
同じ VPC ネットワーク内の他のインスタンスから VM インスタンスへの受信接続を許可します。
default-allow-ssh ingress 65534 0.0.0.0/0 allow tcp:22 sshscpsftp などのツールを使用してインスタンスに接続することを許可します。
default-allow-rdp ingress 65534 0.0.0.0/0 allow tcp:3389 Microsoft リモート デスクトップ プロトコル(RDP)を使用してインスタンスに接続することを許可します。
default-allow-icmp ingress 65534 0.0.0.0/0 allow icmp ping などのツールの使用を許可します。

デフォルト以外のネットワークにも、同様のファイアウォール ルールを作成できます。詳細については、一般的なユースケースのファイアウォール ルールを構成するをご覧ください。

ブロックされたトラフィックと制限されたトラフィック

VPC ファイアウォール ルールと階層型ファイアウォール ポリシーとは別に、Google Cloud では、次の表に示す特定のトラフィックをブロックまたは制限します。

トラフィックの種類 詳細
パケットレートと帯域幅

対象

  • すべての下り(外向き)パケット
  • すべての上り(内向き)パケット
Google Cloud では、各ネットワーク インターフェース(NIC)や IP アドレスに対する VM インスタンスごとの帯域幅を考慮します。VM のマシンタイプにより、許容される最大下り(外向き)レートが定義されます。ただし、特定の状況でのみ下り(外向き)の最大レートを達成できます。

詳細については、Compute Engine ドキュメントのネットワーク帯域幅をご覧ください。
DHCP オファーと確認応答

対象

  • UDP ポート 68(DHCPv4)への上り(内向き)パケット
  • UDP ポート 546(DHCPv6)への上り(内向き)パケット
Google Cloud は、メタデータ サーバーから送信される DHCP パケットを除き、すべての送信元からの受信 DHCP オファーと確認応答をブロックします。
Google Cloud の外部 IP アドレスでサポートされるプロトコル

対象

  • 外部 IP アドレスへの上り(内向き)パケット

外部 IPv4 アドレスと IPv6 アドレスは、TCP、UDP、ICMP、IPIP、AH、ESP、SCTP、GRE パケットのみを受け入れます。外部 IP アドレスを使用するリソースには、次のような追加のプロトコル制限があります。

SMTP(ポート 25)トラフィック

対象

  • TCP ポート 25 の外部 IP アドレスへの下り(外向き)パケット

Google Cloud はデフォルトで、外部 IP アドレス(別の Google Cloud リソースの外部 IP アドレスを含む)の TCP 宛先ポート 25 に送信される下り(外向き)パケットをブロックします。ただし、特定の Google Cloud のお客様が所有するプロジェクトでこのトラフィックはブロックされません。Google Cloud コンソールの [VPC ネットワーク] ページ[ファイアウォール ポリシー] ページの両方に、プロジェクトで SMTP ポート 25 が許可されているかどうかを示すメッセージが表示されます。

このブロックは、VPC ネットワークまたはオンプレミス ネットワークでプライベートに使用されるパブリック IP アドレスなど、内部 IP アドレスの TCP 宛先ポート 25 に送信される下り(外向き)パケットには適用されません。

ポート 25 での外部 SMTP 下り(外向き)がプロジェクトで許可されており、この種類のトラフィックを送信するには、次の追加条件を満たす必要があります。

  • VPC ネットワークの下り(外向き)ファイアウォール ルールと、VPC ネットワークに適用される階層型ファイアウォール ポリシーでは、TCP ポート 25 の外部 IP アドレスへの下り(外向き)を許可する必要があります。暗黙の下り(外向き)許可ルールは、任意の IP アドレスへの下り(外向き)(および任意の IP アドレスからの確立された受信レスポンス)が許可されるため、この要件を満たします。
  • 宛先に該当するルートでは、デフォルトのインターネット ゲートウェイのネクストホップを使用する必要があります。システム生成のデフォルト ルートはこの要件を満たしています。
  • パケットを外部 IP アドレスに送信するインスタンスは、インターネット アクセス要件を満たしている必要があります。

下り(外向き)拒否 VPC ファイアウォール ルールまたは階層型ファイアウォール ポリシーを作成すると、外部 SMTP 下り(外向き)トラフィックを防止できます。

常に許可されるトラフィック

VM インスタンスの場合、VPC ファイアウォール ルールと階層型ファイアウォール ポリシーは以下のものに適用されません。

  • Google Cloud メタデータ サーバーから送受信されるパケット
  • インスタンス独自のネットワーク インターフェース(NIC)のいずれかに割り振られた IP アドレスへのパケット。パケットは VM 内に残ります。インスタンスの NIC に割り振られる IP アドレスは次のとおりです。

    • NIC のプライマリ内部 IPv4 アドレス
    • NIC のエイリアス IP 範囲からの内部 IPv4 アドレス
    • IPv6 がサブネットで構成されている場合、NIC に割り振られた IPv6 アドレス
    • インスタンスがロードバランサのバックエンドまたはプロトコル転送のターゲット インスタンスである場合、ロード バランシングまたはプロトコル転送用の転送ルールに関連付けられた内部または外部 IPv4 アドレス
    • ループバック アドレス
    • インスタンス内で実行するネットワーキング オーバーレイ ソフトウェアの一部として構成されたアドレス

Google Cloud メタデータ サーバー

Google Cloud では、各インスタンスと一緒に 169.254.169.254 でローカル メタデータ サーバーを実行しています。このサーバーはインスタンスのオペレーションに不可欠で、構成したファイアウォール ルールに関係なく、インスタンスはこのサーバーにアクセスできます。メタデータ サーバーは、次の基本サービスをインスタンスに提供します。

プロダクトの相互作用

以降のセクションでは、ファイアウォール ルールと階層型ファイアウォール ポリシーが他の Google Cloud プロダクトとどのように連携するかを説明します。

ファイアウォール ルールとパススルー ロードバランサ

VPC ファイアウォール ルールと階層型ファイアウォール ポリシーは、パススルー ロードバランサのバックエンドへのアクセスを許可する転送ルールでサポートされているプロトコルとポートを制御します。詳細については、次をご覧ください。

ファイアウォール ルールとプロキシ ロードバランサ

外部アプリケーション ロードバランサ、内部アプリケーション ロードバランサ、内部プロキシ ネットワーク ロードバランサ、外部プロキシ ネットワーク ロードバランサの場合、VPC ファイアウォール ルールと階層型ファイアウォール ポリシーは、プロキシ ロードバランサの転送ルールの IP アドレスで受け入れられるプロトコルとポートをコントロールしません。転送ルールのみが、プロキシ ロードバランサで受け入れられるプロトコルとポートを決定します。

VPC ファイアウォール ルールと階層型ファイアウォール ポリシーは、プロキシ ロードバランサとバックエンドの通信方法を制御します。詳細については、次をご覧ください。

ファイアウォール ルールと Cloud VPN

ファイアウォール ルールと階層型ファイアウォール ポリシーは、Cloud VPN ゲートウェイが受け入れるプロトコルとポートを制御しません。

Cloud VPN ゲートウェイは、Cloud VPN の仕様で説明されているプロトコルとポートのパケットのみを受け入れます。

ファイアウォール ルールと GKE

Google Kubernetes Engine は、クラスタ内に Service や Ingress などのリソースまたはリソース(Service や Ingress を含む)を作成するときに、自動的にファイアウォール ルールを作成して管理します。詳細については、Google Kubernetes Engine のドキュメントの自動的に作成されたファイアウォール ルールをご覧ください。

ファイアウォール ルールのコンポーネント

各ファイアウォール ルールは、次の構成コンポーネントで構成されています。

  • ターゲットの視点観からの方向。方向は上り(内向き)と下り(外向き)のいずれかです。

  • 数値での優先度。ルールが適用されるかどうかの決定に使用されます。他のコンポーネントがトラフィックと一致する、優先度が最も高い(優先度の数値が最小)ルールのみが適用されます。優先度の低い、競合するルールは無視されます。

  • 一致したときのアクションallow または deny)。ルールによって接続が許可されるかブロックされるかを決定します。

  • ファイアウォール ルールの適用ステータス。ファイアウォール ルールを削除せずに有効または無効にできます。

  • ターゲット。ルールを適用するインスタンス(GKE クラスタ、App Engine フレキシブル環境インスタンスなど)を定義します。

  • パケット特性の送信元フィルタまたは送信先フィルタ。

  • プロトコル(TCP、UDP、ICMP など)と送信先ポート。

  • ブール値ログオプション。ルールに一致する接続を Cloud Logging に記録します。

コンポーネントの概要

上り(内向き)ルール
優先度 アクション 適用 target パラメータ 送信元フィルタと送信先フィルタ プロトコルとポート
065535 までの整数。デフォルトは 1000 allow または deny enabled(デフォルト)または disabled パケットを受信するインスタンスを指定します。

上り(内向き)ルールの送信元

上り(内向き)ルールの送信先

プロトコルを指定するか、プロトコルとポートを指定します。

設定しないと、ルールはすべてのプロトコルと送信先ポートに適用されます。詳細については、プロトコルとポートをご覧ください。

下り(外向き)ルール
優先度 アクション 適用 target パラメータ 送信元フィルタと送信先フィルタ プロトコルとポート
065535 までの整数。デフォルトは 1000 allow または deny enabled(デフォルト)または disabled パケットを送信するインスタンスを指定します。

下り(外向き)ルールの送信元

下り(外向き)ルールの送信先

プロトコルを指定するか、プロトコルとポートを指定します。

設定しないと、ルールはすべてのプロトコルと送信先ポートに適用されます。詳細については、プロトコルとポートをご覧ください。

トラフィックの方向

上り(内向き)トラフィックまたは下り(外向き)トラフィックに適用されるファイアウォール ルールを作成できます。1 つのルールを上り(内向き)トラフィックと下り(外向き)トラフィックの両方に適用することはできません。ただし、ファイアウォールを介して許可または拒否する上り(内向き)トラフィックと下り(外向き)トラフィックを定義するルールは複数作成できます。

  • 上り(受信)は、ターゲットのネットワーク インターフェースに入るパケットを表します。

  • 下り(送信)は、ターゲットのネットワーク インターフェースから出るパケットを表します。

  • 方向を指定しない場合、Google Cloud は上り(内向き)を使用します。

優先度

ファイアウォール ルールの優先度は、0 から 65535 までの整数です。小さい整数が高い優先度を示します。ルールの作成時に優先度を指定しない場合、優先度 1000 が割り当てられます。

ファイアウォール ルールの相対的な優先度によって、他のルールに対して評価されたときに、適用されるかどうかが決まります。評価ロジックは次のように機能します。

  • 特定のタイプのトラフィックで、ターゲットに適用可能な優先度が最も高いルールが優先されます。ターゲットの特性は関係ありません。たとえば、すべてのターゲット向けの、特定の宛先ポートとプロトコルで優先度の高い上り(内向き)ルールにより、特定のターゲット向けに同様に定義された、同じ宛先ポートとプロトコルの優先度の低いルールがオーバーライドされます。

  • プロトコルと宛先ポートの定義がより一般的であっても、特定のプロトコルと宛先ポートの定義に適用可能な、優先度が最も高いルールが優先されます。たとえば、特定のターゲット向けの、すべてのプロトコルと宛先ポートでトラフィックを許可する優先度の高い上り(内向き)ルールにより、同じターゲット向けの、TCP 22 を拒否する優先度の低い上り(内向き)ルールはオーバーライドされます。

  • deny アクションのルールが別の allow アクションのルールをオーバーライドするのは、2 つのルールの優先度が同じ場合に限られます。相対的な優先度を使用すると、deny ルールをオーバーライドする allow ルールや、allow ルールをオーバーライドする deny ルールを作成できます。

  • 同じ優先順位と同じアクションを持つルールは同じ結果になります。ただし、評価中に使用されるルールは不確定です。通常、ファイアウォール ルールのロギングを有効にしている場合を除き、どのルールが使用されても問題はありません。一定の明確な順序でファイアウォール ルールが評価されていることをログで確認できるようにするには、これらのルールに一意の優先順位を割り当てます。

2 つのファイアウォール ルールが存在する次の例について考えてみましょう。

  • すべてのターゲット、すべてのプロトコル、すべての送信先ポートに適用可能で、送信元が 0.0.0.0/0(任意の IPv4 アドレス)の上り(内向き)ルール。アクションは deny で、優先度は 1000 です。

  • TCP 80 のトラフィックで、ネットワーク タグ webserver を持つ特定のターゲットに適用可能な、送信元が 0.0.0.0/0(任意の IPv4 アドレス)の上り(内向き)ルール。アクションは allow です。

2 番目のルールの優先度によって、ポート 80 への TCP トラフィックが webserver ターゲットに対して許可されるかどうかが決まります。

  • 2 番目のルールの優先度が 1000 よりも大きい数値に設定された場合、優先度が低いため、すべてのトラフィックを拒否する最初のルールが適用されます。

  • 2 番目のルールの優先度が 1000 に設定されている場合、2 つのルールは同じ優先度になるため、すべてのトラフィックを拒否する最初のルールが適用されます。

  • 2 番目のルールの優先度が 1000 よりも小さい数値に設定された場合、優先度が高いため、webserver ターゲットに対する TCP 80 でのトラフィックが許可されます。他のルールがない場合、最初のルールによって webserver ターゲットへの他のタイプのトラフィックは引き続き拒否され、TCP 80 を含め、webserver ネットワーク タグがないインスタンスへのトラフィックもすべて拒否されます。

上記の例は、優先度を使用して個別の allow ルールとグローバルな deny ルールを作成し、最小権限のセキュリティに関するベスト プラクティスの実装方法を示しています。

一致したときのアクション

ファイアウォール ルールのアクション コンポーネントでは、ルールの他のコンポーネントに従って、トラフィックを許可するかブロックするかが決定されます。

  • allow アクションは、他の指定されたコンポーネントと一致する接続を許可します。

  • deny アクションは、他の指定されたコンポーネントと一致する接続をブロックします。

適用

ルールの状態を enabled または disabled に設定することで、ファイアウォール ルールを適用するかどうかを選択できます。ルールの作成時またはルールの更新時に適用状態を設定します。

新しいファイアウォール ルールを作成するときに適用状態を設定しない場合、ファイアウォール ルールは自動的に enabled になります。

ユースケース

無効化と有効化は、トラブルシューティングとメンテナンスの実行に役立ちます。次のような状況では、ファイアウォール ルールの適用を変更することを検討してください。

  • トラブルシューティングの場合: ファイアウォール ルール ロギングと組み合わせて使用するファイアウォール ルールを一時的に無効にすると、そのルールによってトラフィックがブロックまたは許可されるかどうかを判断できます。これは、複数のファイアウォール ルールが同じトラフィックに適用される場合に役立ちます。ルールの他のコンポーネントが失われていないため、ルールを削除して再作成するよりも、ルールを無効にして有効にするほうが便利です。

  • メンテナンスの場合: ファイアウォール ルールを無効にすると、定期的なメンテナンスが簡単になります。たとえば、SSH を使用してメンテナンスを実行する必要がある場合にのみ、SSH アクセスを許可する上り(内向き)ファイアウォール ルールを有効にします。メンテナンスを実施していないときは、ルールを無効にします。

既存のトラフィックへの影響

ファイアウォール ルールの適用状態を変更した場合、または enforced という新しいルールを作成した場合、その変更は新しい接続にのみ適用されます。既存の接続は変更の影響を受けません。

プロトコルとポート

プロトコル、またはプロトコルと宛先ポートを指定すると、ファイアウォール ルールの範囲を狭めることができます。プロトコル、またはプロトコルと宛先ポートの組み合わせを指定できます。プロトコルとポートの両方を省略した場合、ファイアウォール ルールは、任意のプロトコルと任意の送信先ポートの、すべてのトラフィックに適用されます。送信元ポートに基づくルールはサポートされていません。

すべてのプロトコルでポートがサポートされているわけではありません。たとえば、ポートは TCP と UDP には存在しますが、ICMP には存在しません(ICMP にはさまざまな ICMP タイプがありますが、ポートではなく、ファイアウォール ルールで指定することはできません)。

ファイアウォール ルールでは、プロトコル名として tcpudpicmp(IPv4 ICMP の場合)、espahsctpipip を使用できます。他のすべてのプロトコルには、IANA プロトコル番号を使用する必要があります。

多くのプロトコルでは IPv4 と IPv6 の両方で同じ名前と番号が使用されますが、ICMP などの一部のプロトコルでは使用されません。

IPv6 ホップバイホップ プロトコルはファイアウォール ルールでサポートされていません。

次の表は、Google Cloud ファイアウォール ルールに対するプロトコルと送信先ポートの指定の、有効な組み合わせをまとめたものです。

仕様 説明
プロトコルもポートもなし - プロトコルを指定しない場合、ファイアウォール ルールは、すべてのプロトコルと適用可能な宛先ポートに適用されます。
プロトコル tcp ポート情報を指定せずにプロトコルを指定した場合、ファイアウォール ルールは、そのプロトコルと適用可能なすべてのポートに適用されます。
プロトコルと単一のポート tcp:80 プロトコルと単一の宛先ポートを指定した場合、ファイアウォール ルールは、そのプロトコルのその宛先ポートに適用されます。
プロトコルとポート範囲 tcp:20-22 プロトコルとポート範囲を指定した場合、ファイアウォール ルールは、そのプロトコルの宛先ポート範囲に適用されます。
組み合わせ icmp,tcp:80
tcp:443
udp:67-69
ファイアウォール ルールには、プロトコルと宛先ポートのさまざまな組み合わせを指定できます。詳細については、ファイアウォール ルールを作成するをご覧ください。

ターゲット、ソース、宛先

ターゲットは、ファイアウォール ルールが適用されるインスタンスのネットワーク インターフェースを識別します。

上り(内向き)と下り(外向き)の両方のファイアウォール ルールに、パケットの送信元または送信先に適用される送信元パラメータと送信先パラメータの両方を指定できます。ファイアウォール ルールの方向によって、送信元パラメータと送信先パラメータに指定できる値が決まります。

target パラメータ

target パラメータは、GKE ノードと App Engine フレキシブル環境インスタンスを含む Compute Engine インスタンスのネットワーク インターフェースを識別します。

上り(内向き)ルールまたは下り(外向き)ルールの両方に、次のターゲットを定義できます。target、source、destination パラメータは、送信元、送信先、ターゲットで説明されているように連携して動作します。

  • デフォルトのターゲット - VPC ネットワーク内のすべてのインスタンスターゲットの指定を省略すると、ファイアウォール ルールは VPC ネットワーク内のすべてのインスタンスに適用されます。

  • ターゲット ネットワーク タグを持つインスタンス。ファイアウォール ルールは、ファイアウォール ルールのターゲット ネットワーク タグの少なくとも 1 つと一致するネットワーク タグを持つインスタンスがある場合、ファイアウォール ルールの VPC ネットワークにネットワーク インターフェースを持つインスタンスにのみ適用されます。ファイアウォール ルールごとに指定できるターゲット ネットワーク タグの最大数については、ファイアウォール ルールごとの上限をご覧ください。

  • ターゲット サービス アカウントを使用するインスタンス。ファイアウォール ルールは、ファイアウォール ルールのターゲット サービス アカウントの少なくとも 1 つと一致するサービス アカウントを使用するインスタンスの場合、ファイアウォール ルールの VPC ネットワークにネットワーク インターフェースを持つインスタンスにのみ適用されます。ファイアウォール ルールごとに指定できるターゲット サービス アカウントの最大数については、ファイアウォール ルールごとの上限をご覧ください。

ターゲット ネットワーク タグとターゲット サービス アカウントの利点と制限については、サービス アカウントとネットワーク タグによるフィルタリングをご覧ください。

上り(内向き)ルールのターゲットと IP アドレス

ターゲット VM のネットワーク インターフェースにルーティングされるパケットは、次の条件に基づいて処理されます。

  • 上り(内向き)ファイアウォール ルールに送信先 IP アドレス範囲が含まれている場合、パケットの送信先は、明示的に定義された送信先 IP アドレス範囲のいずれかに一致する必要があります。

  • 上り(内向き)ファイアウォール ルールに送信先 IP アドレス範囲が含まれていない場合、パケットの送信先は、次のいずれかの IP アドレスと一致する必要があります。

    • インスタンスの NIC に割り振られているプライマリ内部 IPv4 アドレス。

    • インスタンスの NIC に構成されているエイリアス IP 範囲

    • インスタンスの NIC に関連付けられている外部 IPv4 アドレス。

    • IPv6 がサブネットで構成されている場合、NIC に割り振られた IPv6 アドレス。

    • パススルー ロード バランシングに使用される転送ルールに関連付けられた内部または外部 IP アドレス。インスタンスは、内部パススルー ネットワーク ロードバランサまたは外部パススルー ネットワーク ロードバランサのバックエンドです。

    • プロトコル転送に使用される転送ルールに関連付けられた内部または外部 IP アドレス。インスタンスはターゲット インスタンスによって参照されます。

    • インスタンスをネクストホップ VM (next-hop-instance または next-hop-address)として使用するカスタム静的ルートの送信先範囲内の IP アドレス。

    • VM が内部パススルー ネットワーク ロードバランサのバックエンドの場合、そのロードバランサ(next-hop-ilb)のネクストホップを使用する、カスタム静的ルートの送信先範囲内の IP アドレス。

下り(外向き)ルールのターゲットと IP アドレス

ターゲットのネットワーク インターフェースから送信されたパケットの処理は、ターゲット VM での IP 転送の構成によって異なります。IP 転送はデフォルトで無効になっています。

  • ターゲット VM で IP 転送を無効にすると、VM は次の送信元を含むパケットを送信できます。

    • インスタンスの NIC のプライマリ内部 IPv4 アドレス。

    • インスタンスの NIC に構成されたエイリアス IP 範囲。

    • IPv6 がサブネットで構成されている場合、NIC に割り振られた IPv6 アドレス。

    • インスタンスが内部パススルー ネットワーク ロードバランサのバックエンドか、外部パススルー ネットワーク ロードバランサか、あるいはターゲット インスタンスから参照されている場合は、パススルー ロード バランシングまたはプロトコル転送用の転送ルールに関連付けられた内部または外部 IP アドレス。

    下り(外向き)ファイアウォール ルールに送信元 IP アドレス範囲が含まれている場合でも、ターゲット VM は前述の送信元 IP アドレスに制限されますが、source パラメータを使用してそのセットを絞り込むことができます。IP 転送を有効にせずに送信元パラメータを使用しても、パケットの送信元アドレスのセットは展開されません。

    下り(外向き)ファイアウォール ルールに送信元 IP アドレス範囲が含まれていない場合、前述のすべての送信元 IP アドレスが許可されます。

  • ターゲット VM で IP 転送が有効になっている場合、VM は任意の送信元アドレスを持つパケットを送信できます。source パラメータを使用すると、許可されるパケットの送信元のセットをより正確に定義できます。

source パラメータ

source パラメータ値は、ファイアウォール ルールの方向によって異なります。

上り(内向き)ルールの送信元

上り(内向き)ファイアウォール ルールには、次のソースを使用できます。

  • デフォルトの送信元範囲: 上り(内向き)ルールの送信元の指定を省略すると、Google Cloud はデフォルトの送信元 IPv4 アドレス範囲 0.0.0.0/0(任意の IPv4 アドレス)を使用します。デフォルト値に IPv6 の送信元は含まれません。

  • 送信元 IPv4 範囲: CIDR 形式の IPv4 アドレスのリスト。

  • 送信元 IPv6 範囲: CIDR 形式の IPv6 アドレスのリスト。

  • ソース ネットワーク タグ: 1 つ以上のネットワーク タグ。ファイアウォール ルールと同じ VPC ネットワーク内の VM インスタンスのネットワーク インターフェースを識別します。ファイアウォール ルールあたりのソース ネットワーク タグの最大数については、ファイアウォール ルールごとの上限をご覧ください。この暗黙のソース仕様を使用する場合のパケットの送信元アドレスの照合方法の詳細については、ソース ネットワーク タグとソース サービス アカウントがパケットの送信元を暗黙的に指定する方法をご覧ください。

  • ソース サービス アカウント: 1 つ以上のサービス アカウント。ファイアウォール ルールと同じ VPC ネットワーク内の VM インスタンスのネットワーク インターフェースを識別します。ファイアウォール ルールあたりのソース サービス アカウントの最大数については、ファイアウォール ルールごとの上限をご覧ください。この暗黙のソース仕様を使用する場合のパケットの送信元アドレスの照合方法の詳細については、ソース ネットワーク タグとソース サービス アカウントがパケットの送信元を暗黙的に指定する方法をご覧ください。

  • 有効なソースの組み合わせ: 次の組み合わせの場合、明示的に指定された IPv4 または IPv6 アドレスと、ソース ネットワーク タグまたはソース サービス アカウントによって暗黙的に指定された IP アドレス範囲の組み合わせが有効なソースセットになります。

    • 送信元 IPv4 範囲とソース ネットワーク タグの組み合わせ。
    • 送信元 IPv6 範囲とソース ネットワーク タグの組み合わせ。
    • 送信元 IPv4 範囲とソース サービス アカウントの組み合わせ。
    • ソース IPv6 範囲とソース サービス アカウントの組み合わせ。

ソース ネットワーク タグとソース サービス アカウントがパケットの送信元を暗黙的に指定する方法

上り(内向き)ファイアウォール ルールでソース ネットワーク タグを使用する場合、次の条件を満たすネットワーク インターフェースからパケットを送信する必要があります。

  • ネットワーク インターフェースは、ファイアウォール ルールが定義されている VPC ネットワークに存在する必要があり、
  • ネットワーク インターフェースは、ファイアウォール ルールのソース ネットワーク タグの少なくとも 1 つと一致するネットワーク タグを持つ VM に関連付ける必要があります。

上り(内向き)ファイアウォール ルールがソース サービス アカウントを使用する場合、パケットは、次の条件を満たすネットワーク インターフェースから送信される必要があります。

  • ネットワーク インターフェースは、ファイアウォール ルールが定義されている VPC ネットワークに存在する必要があり、
  • ネットワーク インターフェースは、ファイアウォール ルールのソース サービス アカウントのいずれかと一致するサービス アカウントを持つ VM に関連付ける必要があります。

ネットワーク インターフェースを指定するだけでなく、上り(内向き)ファイアウォール ルールでソース ネットワーク タグまたはソース サービス アカウントのいずれかを使用する場合、VM のネットワーク インターフェースから送信されるパケットには、次のいずれかの有効な送信元 IP アドレスを使用する必要があります。

  • そのネットワーク インターフェースのプライマリ内部 IPv4 アドレス。
  • そのネットワーク インターフェースに割り当てられた任意の IPv6 アドレス。

上り(内向き)ファイアウォール ルールに宛先 IP アドレス範囲も含まれている場合、ネットワーク タグにバインドされたネットワーク インターフェースは、宛先 IP 範囲と同じ IP バージョンに解決されます。

ソース ネットワーク タグまたはソース サービス アカウントを使用する場合、他のパケットのソース IP アドレスが暗黙的に指定されることはありません。たとえば、ネットワーク インターフェースに関連付けられたエイリアス IP 範囲と外部 IPv4 アドレスは除外されます。送信元にエイリアス IP アドレス範囲または外部 IPv4 アドレスを含む上り(内向き)ファイアウォール ルールを作成する必要がある場合は、送信元 IPv4 範囲を使用します。

下り(外向き)ルールの送信元

下り(外向き)ファイアウォール ルールには次の送信元を使用できます。

  • デフォルト - ターゲットにより暗黙的に指定。下り(外向き)ルールの source パラメータを省略すると、下り(外向き)ルールのターゲットと IP アドレスの説明に従ってパケットのソースが暗黙的に定義されます。

  • 送信元 IPv4 範囲。IPv4 アドレスの CIDR 形式のリスト。

  • 送信元 IPv6 範囲。CIDR 形式の IPv6 アドレスのリスト。

下り(外向き)ルールの送信元 IP アドレス範囲を追加するには、次のガイドラインに従ってください。

  • VM インターフェースに内部 IPv4 アドレスと外部 IPv4 アドレスの両方が割り当てられている場合、ルール評価では内部 IPv4 アドレスのみが使用されます。

  • 下り(外向き)ルールで送信元パラメータと送信先パラメータの両方を指定する場合は、両方のパラメータに同じ IP バージョンを使用します。IPv4 アドレス範囲または IPv6 アドレス範囲のいずれかを使用できます。詳細については、下り(外向き)ルールの送信先をご覧ください。

destination パラメータ

送信先は IP アドレス範囲を使用して指定できます。これは、上り(内向き)ルールと下り(外向き)ルールの両方でサポートされています。デフォルトの送信先の動作は、ルールの方向によって異なります。

上り(内向き)ルールの送信先

上り(内向き)ファイアウォール ルールには、次の送信先を使用できます。

  • デフォルト - ターゲットにより暗黙的に指定。上り(内向き)ルールの destination パラメータを省略すると、上り(内向き)ルールのターゲットと IP アドレスの説明に従ってパケットの送信先が暗黙的に定義されます。

  • 送信先 IPv4 範囲。IPv4 アドレスの CIDR 形式のリスト。

  • 送信先 IPv6 範囲。CIDR 形式の IPv6 アドレスのリスト。

上り(内向き)ルールの宛先 IP アドレス範囲を追加するには、次のガイドラインに従ってください。

  • VM インターフェースに内部 IPv4 アドレスと外部 IPv4 アドレスの両方が割り当てられている場合、ルール評価では内部 IPv4 アドレスのみが使用されます。

  • 上り(内向き)ルールで送信元パラメータと送信先パラメータの両方を指定した場合、送信元パラメータは宛先 IP アドレス範囲と同じ IP バージョンに解決されます。上り(内向き)ルールの送信元を定義する方法については、上り(内向き)ルールの送信元をご覧ください。

下り(外向き)ルールの送信先

下り(外向き)ファイアウォール ルールには、次の送信先を使用できます。

  • デフォルトの送信先の範囲。下り(外向き)ルールで送信先の指定を省略すると、Google Cloud はデフォルトの送信先 IPv4 アドレス範囲 0.0.0.0/0(任意の IPv4 アドレス)を使用します。デフォルト値に IPv6 の送信先は含まれません。

  • 送信先 IPv4 範囲。IPv4 アドレスの CIDR 形式のリスト。

  • 送信先 IPv6 範囲。CIDR 形式の IPv6 アドレスのリスト。

サービス アカウントによる送信元とターゲットのフィルタリング

サービス アカウントを使用すると、より具体的なファイアウォール ルールを作成できます。

  • 上り(内向き)ルールと下り(外向き)ルールの両方で、サービス アカウントを使用してターゲットを指定できます。

  • 上り(内向き)ルールでは、VM が特定のサービス アカウントを使用しているネットワーク内の、任意の VM のプライマリ内部 IP アドレスとして、受信パケットの送信元を指定できます。

サービス アカウントに依存するファイアウォール ルールを作成する前に、ファイアウォール ルールと同じプロジェクトにサービス アカウントを作成する必要があります。別のプロジェクトのサービス アカウントを使用するルールを作成することもできますが、ファイアウォール ルールのプロジェクトにサービス アカウントが存在しないと、そのルールは適用されません。

インスタンスの識別にサービス アカウントを使用するファイアウォール ルールは、作成されてサービス アカウントに関連付けられた新しいインスタンスと、既存のインスタンス(サービス アカウントを変更した場合)の両方に適用されます。インスタンスに関連付けられたサービス アカウントを変更するには、インスタンスを停止して再起動する必要があります。サービス アカウントは、個々のインスタンスと、マネージド インスタンス グループで使用されるインスタンス テンプレートに関連付けることができます。

サービス アカウントによるフィルタリングとネットワーク タグによるフィルタリング

このセクションでは、ターゲットと送信元を定義するためにサービス アカウントとネットワーク タグのどちらを使用する必要があるかを判断する際に考慮すべき、重要なポイントを示します(上り(内向き)ルール用)。

ファイアウォール ルールを VM に適用する方法を厳密に制御する必要がある場合、ターゲット ネットワーク タグとソース ネットワーク タグではなく、ターゲット サービス アカウントとソースサービス アカウントを使用します。

  • ネットワーク タグは任意の属性です。編集権限のある Identity and Access Management(IAM)プリンシパルは、インスタンスを 1 つ以上のネットワーク タグを関連付けることができます。プロジェクトに対して Compute Engine インスタンス管理者のロールを持つ IAM プリンシパルが、この権限を持っています。インスタンスを編集できる IAM プリンシパルは、そのネットワーク タグを変更できます。これにより、そのインスタンスに適用可能な一連のファイアウォール ルールが変更される可能性があります。

  • サービス アカウントは、インスタンスに関連付けられた ID を表します。インスタンスに関連付けることができるサービス アカウントは 1 つのみです。他の IAM プリンシパルに対するサービス アカウント ユーザーのロールの付与を制御することで、サービス アカウントへのアクセスを制御します。IAM プリンシパルがサービス アカウントを使用してインスタンスを開始する場合、少なくともそのサービス アカウントを使用できるサービス アカウント ユーザーのロールに加え、インスタンスを作成できる適切な権限が必要です(たとえば、Compute Engine インスタンス管理者のロールなど)。

ファイアウォール ルールでは、サービス アカウントとネットワーク タグを混在させて一致させることはできません。

  • ターゲット サービス アカウントとターゲット ネットワーク タグは、上り(内向き)または下り(外向き)ファイアウォール ルールで一緒に使用できません。

  • ターゲット ネットワーク タグまたはターゲット サービス アカウントでターゲットを指定する場合、上り(内向き)ファイアウォール ルールのソースとして次のものは無効になります。

    ターゲット 無効な送信元
    ターゲット ネットワーク タグ ソースサービス アカウント

    ソース IP 範囲とソースサービス アカウントの組み合わせ
    ターゲット サービス アカウント ソース ネットワーク タグ

    ソース IP 範囲とソース ネットワーク タグの組み合わせ

サービス アカウントとネットワーク タグを使用する場合は、次のことに注意してください。

  • インスタンスのサービス アカウントを変更するには、そのインスタンスを停止して再起動する必要があります。ネットワーク タグの追加や削除は、インスタンスの実行中に行えます。

  • ファイアウォール ルールに指定できるターゲット サービス アカウント、ソースサービス アカウント、ターゲット ネットワーク タグ、ソース ネットワーク タグの数には上限があります。詳細については、ファイアウォール ルールごとの上限をご覧ください。

  • ネットワーク タグでインスタンスを識別する場合、ファイアウォール ルールはインスタンスのプライマリ内部 IP アドレスに適用されます。

  • サービス アカウントのファイアウォール ルールは GKE ノードに適用されます。GKE Pod には適用されません。

ロールと権限

次の表に、VPC ファイアウォール ルールの操作に必要な Identity and Access Management(IAM)権限を示します。

タスク 必要な権限 ロールの例
ファイアウォール ルールの作成 compute.firewalls.create Compute セキュリティ管理者
roles/compute.securityAdmin
ファイアウォール ルールの削除 compute.firewalls.delete Compute セキュリティ管理者
roles/compute.securityAdmin
ファイアウォール ルールに変更を加える compute.firewalls.update Compute セキュリティ管理者
roles/compute.securityAdmin
ファイアウォール ルールの詳細を表示する compute.firewalls.get Compute ネットワーク閲覧者
roles/compute.networkViewer
ファイアウォール ルールのリストを表示する compute.firewalls.list Compute ネットワーク閲覧者
roles/compute.networkViewer

ユースケース

以下のユースケースでは、ファイアウォール ルールが機能する仕組みを示しています。これらの例では、すべてのファイアウォール ルールが有効になっています。

上り(内向き)の場合

上り(内向き)ファイアウォール ルールは、VPC ネットワーク内の送信元からターゲット インスタンスへの受信接続を制御します。上り(内向き)ルールの送信元は、次のいずれかとして定義できます。

  • IPv4 または IPv6 アドレスの範囲。デフォルトは任意の IPv4 アドレス(0.0.0.0/0)です。
  • ネットワーク タグで識別される VPC ネットワーク内の他のインスタンス
  • サービス アカウントで識別される VPC ネットワーク内の他のインスタンス
  • IPv4 または IPv6 アドレスの範囲と、ネットワーク タグで識別される VPC ネットワーク内の他のインスタンス
  • IPv4 または IPv6 アドレスの範囲と、サービス アカウントによって識別される VPC ネットワーク内の他のインスタンス

デフォルトの送信元は任意の IPv4 アドレス(0.0.0.0/0)です。インターネット上の他の送信元など、VPC ネットワーク外の送信元からの受信接続を制御する場合は、CIDR 形式の IP アドレス範囲を使用します。

allow アクションを含む上り(内向き)ルールでは、ルールの他のコンポーネントに基づいて、受信トラフィックを許可します。ルールの送信元とターゲットを指定するだけでなく、特定のプロトコルと宛先ポートに適用されるようにルールを制限できます。同様に、deny アクションを含む上り(内向き)ルールを使用すると、ファイアウォール ルールのコンポーネントに基づいて受信トラフィックをブロックすることで、インスタンスを保護できます。

上り(内向き)の例

図 1 は、ファイアウォール ルールで上り(内向き)接続を制御する例を示しています。この例では、ルールの割り当てで target パラメータを使用して、特定のインスタンスにルールを適用しています。

この VPC ネットワークの例では、一部の VM の上り(内向き)許可ルールが、暗黙の上り(内向き)拒否ルールをオーバーライドします。
図 1. この VPC ネットワークの例では、一部の VM の上り(内向き)許可ルールが、暗黙の上り(内向き)拒否ルールをオーバーライドします(クリックして拡大)。
  • 優先度 1000 の上り(内向き)ルールが VM 1 に適用されます。このルールは、任意の IPv4 送信元(0.0.0.0/0)からの受信 TCP トラフィックを許可します。VPC ネットワーク内の他のインスタンスからの TCP トラフィックは、そのインスタンスに適用される下り(外向き)ルールに応じて許可されます。VM 4 は、VM 1 と TCP で通信できます。これは VM 4 にはそのような通信をブロックする下り(外向き)ルールがないためです(暗黙の下り許可ルールのみが適用されます)。VM 1 には外部 IP があるため、このルールはインターネット上の外部ホストからの受信 TCP トラフィックと、外部 IP アドレス経由での VM 2 からの受信 TCP トラフィックを許可します。

  • VM 2 には上り(内向き)ファイアウォール ルールが指定されていないため、暗黙の上り(内向き)拒否ルールによってすべての受信トラフィックがブロックされます。ネットワーク内の他のインスタンスからの接続は、他のインスタンスの下り(外向き)ルールに関係なく、ブロックされます。VM 2 には外部 IP があるため、インターネット上の外部ホストから VM 2 へのパスが存在しますが、暗黙の上り(内向き)拒否ルールによって外部からの受信トラフィックもブロックされます。

  • 優先度 1000 の上り(内向き)ルールが VM 3 に適用されます。このルールでは、ネットワーク タグ client を持つネットワーク内のインスタンス(VM 4 など)からの TCP トラフィックが許可されます。VM 4 から VM 3 への TCP トラフィックは許可されます。VM 4 にはそのような通信をブロックする下り(外向き)ルールがないためです。暗黙の下り(外向き)許可ルールのみが適用されます。VM 3 には外部 IP がないため、インターネット上の外部ホストからのパスはありません。

下り(外向き)の場合

下り(外向き)ファイアウォール ルールは、VPC ネットワーク内のターゲット インスタンスからの送信接続を制御します。allow アクションを含む下り(外向き)ルールは、ルールの他のコンポーネントに基づいて、インスタンスからのトラフィックを許可します。たとえば、指定したプロトコルと宛先ポートでの特定の宛先(IPv4 アドレスの範囲など)への送信トラフィックを許可できます。同様に、deny アクションを含む下り(外向き)ルールでは、ルールの他のコンポーネントに基づいてトラフィックをブロックします。

すべての下り(外向き)ルールに宛先が必要です。デフォルトの宛先は任意の IPv4 アドレス(0.0.0.0/0)ですが、CIDR 形式の IPv4 または IPv6 アドレスの範囲を使用して、特定の宛先を作成できます。IP アドレスの範囲を指定すると、ネットワーク内のインスタンスや、インターネット上の宛先を含むネットワーク外の宛先へのトラフィックを制御できます。

下り(外向き)の例

図 2 に、下り(外向き)接続をファイアウォール ルールで制御する例を示します。この例では、ルールの割り当てで target パラメータを使用して、特定のインスタンスにルールを適用しています。

この VPC ネットワークの例では、一部の VM の下り(外向き)拒否ファイアウォール ルールが、暗黙の下り(外向き)許可ルールをオーバーライドします。
図 2. この VPC ネットワークの例では、一部の VM の暗黙の下り(外向き)許可ルールが、下り(外向き)拒否ファイアウォール ルールをオーバーライドします(クリックして拡大)。
  • VM 1 には指定された下り(外向き)ファイアウォール ルールがないため、暗黙の下り(外向き)許可ルールによって、任意の宛先にトラフィックを送信できます。VPC ネットワーク内の他のインスタンスへの接続は、そのインスタンスに適用される上り(内向き)ルールに応じて許可されます。VM 4 には任意の IP アドレス範囲からの受信トラフィックを許可する上り(内向き)ルールがあるため、VM 1VM 4 にトラフィックを送信できます。VM 1 には外部 IP アドレスがあるため、インターネット上の外部ホストにトラフィックを送信できます。ファイアウォール ルールはステートフルであるため、VM 1 によって送信されたトラフィックへの受信レスポンスは許可されます。

  • 優先度 1000 の下り(外向き)ルールが VM 2 に適用されます。このルールは、すべての IPv4 宛先(0.0.0.0/0)へのすべての送信トラフィックを拒否します。VPC ネットワーク内の他のインスタンスへの送信トラフィックは、そのインスタンスに適用される上り(内向き)ルールに関係なく、ブロックされます。VM 2 には外部 IP アドレスがありますが、このファイアウォール ルールは、インターネット上の外部ホストへの送信トラフィックをブロックします。

  • 優先度 1000 の下り(外向き)ルールが VM 3 に適用されます。このルールは、IP 範囲 192.168.1.0/24 内の任意の宛先への送信 TCP トラフィックをブロックします。VM 4 の上り(内向き)ルールはすべての受信トラフィックを許可しますが、VM 3 は TCP トラフィックを VM 4 に送信できません。ただし、この下り(外向き)ルールは TCP プロトコルにのみ適用されるため、VM 3VM 4 に UDP トラフィックを自由に送信できます。

    さらに VM 3 は、VPC ネットワーク内の IP 範囲 192.168.1.0/24 外の他のインスタンスにトラフィックを許可する上り(内向き)ルールがある限り、それらのインスタンスにそのようなトラフィックを送信できます。外部 IP アドレスがないため、VPC ネットワークの外部にトラフィックを送信するパスはありません。

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成し、実際のシナリオで Cloud NGFW のパフォーマンスを評価してみてください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Cloud NGFW の無料トライアル