ファイアウォール ルールの概要

Google Cloud Platform(GCP)ファイアウォール ルールを使用すると、指定した構成に基づいて、仮想マシン(VM)インスタンスとの間のトラフィックを許可または拒否できます。GCP ファイアウォール ルールは仮想ネットワーキング レベルで適用されるため、インスタンスが使用するオペレーティング システムに関係なく、効果的な保護とトラフィック制御が提供されます。

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

GCP のファイアウォール ルール

GCP ファイアウォール ルールは、VPC ネットワークに固有です。各ルールでは、その条件が満たされたときにトラフィックが許可または拒否されます。その条件によって、トラフィックの種類(ポートやプロトコルなど)とトラフィックの送信元または宛先(IP アドレス、サブネット、インスタンスなど)を指定できます。ファイアウォール ルールを定義するコンポーネントについて詳しくは、ファイアウォール ルールのコンポーネントをご覧ください。

すべてのネットワークには、送信接続を許可し、受信接続をブロックする 2 つの永続的な暗黙のファイアウォール ルールがあります。それらの適用範囲と定義したルールとの連携について詳しくは、デフォルトの暗黙のファイアウォール ルールをご覧ください。また、default ネットワークには、追加の編集可能なルールが事前設定されています。

GCP のファイアウォール ルールは、Google Cloud Platform Consolegcloud コマンドライン ツールREST API を使用して作成または変更します。ファイアウォール ルールを作成または変更するときは、ルールのターゲット コンポーネントを使用して、その適用対象となるインスタンスを指定できます。

仕様

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

  • ファイアウォール ルールは VPC ネットワーク レベルで定義され、定義されているネットワークに固有です。ルール自体をネットワーク間で共有することはできません。

  • ファイアウォール ルールでは、IPv4 トラフィックのみがサポートされます。上りルールの送信元または下りルールの宛先をアドレスで指定するときは、CIDR 表記での IPv4 アドレスまたは IPv4 ブロックのみを使用できます。

  • ファイアウォール ルールによって実行されるアクションは、allow または deny です。ルールは、アクションとして単純にログに記録することはできません。詳しくは、ファイアウォール ルールの一致したときのアクション コンポーネントをご覧ください。

  • ファイアウォール ルールのロギング メカニズムはありません。

  • 各ファイアウォール ルールは、受信(ingress)トラフィックと送信(egress)トラフィックの両方ではなく、いずれかに適用されるように定義されます。詳しくは、ファイアウォール ルールのトラフィックの方向コンポーネントをご覧ください。

  • GCP ファイアウォール ルールはステートフルです。送信元とターゲットまたはターゲットと宛先の間で接続が許可された場合、以降のトラフィックはいずれの方向でもすべて許可されます。つまり、ファイアウォール ルールでは、セッションが確立されると双方向通信が許可されます。ファイアウォール ルールでは、一方向のトラフィックを許可し、関連するリターン トラフィックを拒否することはできません。

  • GCP ファイアウォール ルールでは、断片化された TCP パケットは再構成されません。したがって、TCP プロトコルに適用されるファイアウォール ルールは、最初のフラグメントにのみ適用されます(TCP ヘッダーが含まれているため)。TCP プロトコルに適用されるファイアウォール ルールは、以降の TCP フラグメントには適用されません。

  • ファイアウォール ルール テーブルのトラッキングされる接続の最大数は、インスタンスのマシンタイプによってサポートされるステートフル接続の数によって異なります。

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

デフォルトのルールと暗黙のルール

すべての VPC ネットワークには、2 つの暗黙のファイアウォール ルールがあります。このようなルールは存在していますが、Cloud Console には表示されません。

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

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

暗黙のルールは削除できませんが、可能な限り低い優先度になっています。作成したルールの優先度が高い場合(優先度の数値が 65535 未満)、作成したルールによってこれらをオーバーライドできます。

default ネットワークでの追加ルール

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

  • default-allow-internal
    ネットワーク内のインスタンス間で、すべてのプロトコルおよびポートの上り接続を許可します。このルールは 65534 の次に低い優先度を持ち、同じネットワーク内の他の VM インスタンスからの VM インスタンスへの受信接続を実質的に許可します。
  • default-allow-ssh
    任意の送信元からネットワーク内の任意のインスタンスへの TCP ポート 22 での上り接続を許可します。このルールの優先度は 65534 です。
  • default-allow-rdp
    任意の送信元からネットワーク内の任意のインスタンスへの TCP ポート 3389 での上り接続を許可します。このルールの優先度は 65534 であり、Microsoft リモート デスクトップ プロトコル(RDP)を実行しているインスタンスへの接続を有効にします。
  • default-allow-icmp
    任意の送信元からネットワーク内の任意のインスタンスへの ICMP 上りトラフィックを許可します。このルールの優先度は 65534 であり、ping などのツールを有効にします。

常にブロックされるトラフィック

ファイアウォール ルールに関係なく、GCP では次のトラフィックは常にブロックされます。ファイアウォール ルールを使用して、常にブロックされるトラフィックのブロックを解除することはできません

ブロックされるトラフィック 対象
GRE トラフィック プロトコル転送によって明示的に許可されていない限り、すべての送信元、すべての宛先(内部 IP アドレスを使用するインスタンス間を含む)
TCP、UDP、ICMP、IPIP 以外のプロトコル 以下の間のトラフィック:
• インスタンスとインターネット
• 外部 IP アドレスを使用してアドレス指定されている場合のインスタンス
• 外部 IP アドレスを持つロードバランサが関与する場合のインスタンス
TCP ポート 25(SMTP)での下りトラフィック 以下からのトラフィック:
• インスタンスからインターネットへ
• インスタンスから外部 IP アドレスを使用してアドレス指定されている他のインスタンスへ

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

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

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

  • トラフィックの方向: ingress ルールは、指定された送信元から GCP ターゲットへの受信接続に適用されます。egress ルールは、ターゲットから指定された宛先に向かうトラフィックに適用されます。

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

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

  • ingress ルールの送信元または egress ルールの宛先

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

コンポーネントの概要

優先度 方向 アクション ターゲット 送信元 宛先 プロトコルとポート
0 から 65535 までの整数。デフォルトは 1000 です。
ingress allow または deny 送信元からのトラフィックを受信するインスタンス。
次のいずれかです。
• VPC ネットワーク内の
すべてのインスタンス
• 
  サービス アカウントによるインスタンス
• ネットワーク タグによるインスタンス
次のいずれかです。
• IPv4 アドレスの範囲。
デフォルトは任意(0.0.0.0/0)です。
• 
  サービス アカウントによるインスタンス
• ネットワーク タグによるインスタンス
ingress ルールには適用されません。ターゲットが宛先です。 プロトコルまたはプロトコルとポートを指定します。
設定しないと、すべてのプロトコルにルールが適用されます。
0 から 65535 までの整数。デフォルトは 1000 です。
egress allow または deny 宛先にトラフィックを送信するインスタンス。
次のいずれかです。
• VPC ネットワーク内の
すべてのインスタンス
• 
  サービス アカウントによるインスタンス
• ネットワーク タグによるインスタンス
egress ルールには適用されません。ターゲットが送信元です。 任意のネットワークまたは IPv4 アドレスの特定の範囲。デフォルトは任意(0.0.0.0/0)です。 プロトコルまたはプロトコルとポートを指定します。
設定しないと、すべてのプロトコルにルールが適用されます。

優先度

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

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

  • ingress トラフィックに適用されるルールと egress トラフィックに適用されるルールは競合できません。

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

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

  • deny アクションのルールによって allow アクションの別のルールがオーバーライドされるのは、2 つのルールの優先度が同じ場合のみです。 相対的な優先度を使用すると、deny ルールをオーバーライドする allow ルールを作成でき、その逆も同様です。

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

  • すべてのターゲット、すべてのプロトコル、すべてのポートに適用可能な、送信元 0.0.0.0/0(任意の場所)からの ingress ルール。アクションは deny であり、優先度は 1000 です。

  • TCP 80 のトラフィックで、タグ webserver を持つ特定のターゲットに適用可能な、送信元 0.0.0.0/0(任意の場所)からの ingress ルール。アクションは allow です。

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

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

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

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

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

トラフィックの方向

ファイアウォール ルールの方向コンポーネントでは、ファイアウォール ルールが受信トラフィックに適用されるか送信トラフィックに適用されるかが、ターゲットの観点から決定されます。上りルールと下りルールによって、関連するアクションに応じてトラフィックを許可または拒否できます。

  • ingress 方向は、送信元からターゲットへの新しい受信接続に適用されます。デフォルトの送信元は任意のアドレス(0.0.0.0/0)ですが、CIDR 形式の IP アドレスの範囲を使用するか、ネットワーク内の他のインスタンスをサービス アカウントまたはネットワーク タグで識別することによって特定できます。

  • egress 方向は、ターゲットから、指定された宛先へのトラフィックに適用されます。デフォルトの宛先は任意のアドレス(0.0.0.0/0)ですが、CIDR 形式の IP アドレス範囲を使用して限定できます。

インスタンス間のトラフィックを制御するためのファイアウォール ルールを作成する場合、ルールのターゲットを定義することが重要です。方向とターゲットの関係は、次のように要約できます。

  • 方向が ingress の場合、ターゲットは指定された送信元からの受信トラフィックの宛先です。

  • 方向が egress の場合、ターゲットは指定された宛先への送信トラフィックの送信元です。

次の例について考えてみましょう。VM1 という名前のインスタンスから同じネットワーク内の VM2 という別のインスタンスへの接続は、次のいずれかのファイアウォール ルールを使用して制御できます。

  • ターゲットが(タグまたはサービス アカウントによって)VM2 として定義され、送信元が(IP アドレスまたはサービス アカウントによって)VM1 として定義された ingress ルール。

  • ターゲットが(タグまたはサービス アカウントによって)VM1 として定義され、宛先が IP アドレスによって VM2 として定義された egress ルール。

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

ファイアウォール ルールのアクション コンポーネントでは、トラフィックがルールの他のコンポーネントと一致した場合に、トラフィックがファイアウォール ルールによって許可されるかブロックされるかが決定されます。アクションおよび方向コンポーネントは、受信接続または送信接続を許可または拒否するルールを設定するために一緒に使用されます。

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

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

ターゲット

ファイアウォール ルールのターゲット コンポーネントでは、ファイアウォール ルールの適用対象のインスタンス(Kubernetes Engine クラスタや App Engine フレキシブル環境インスタンスなど)が定義されます。ターゲットの選択肢は次のとおりです。

  • ネットワーク内のすべてのインスタンス: ファイアウォール ルールは、ネットワーク内のすべてのインスタンスに適用されます。

  • ターゲットタグによる特定のインスタンス: ファイアウォール ルールは、一致するネットワーク タグを持つインスタンスのみに適用されます。

  • サービス アカウントによる特定のインスタンス: ファイアウォール ルールは、サービス アカウントを使用するインスタンスのみに適用されます。

ファイアウォール ルールを階層化すると、特定のインスタンスに対する例外を作成できます。

たとえば、インターネット(任意の IP、送信元 0.0.0.0/0)からのインスタンスへの受信アクセス(ingress 方向)をブロックする(deny アクション)ための、優先度が 1000 のファイアウォール ルールがあるとします。受信インターネット接続に応答する必要がある特定のインスタンスがあります。必要なプロトコルとポートに対して受信接続を許可する、高い優先度900 など)を持つ 2 番目のファイアウォール ルールを作成できます。この 2 番目のファイアウォール ルールは、優先度が高いため、受信インターネット接続を必要とするインスタンスのみにスコープを設定する必要もあります。2 番目のルールにスコープを設定するには、サービス アカウントまたはネットワーク タグを使用してターゲットを指定します。ターゲットを指定するためのいずれの方法も、適用対象のインスタンスを識別する有効な方法です。ただし、これらの 2 つの方法は、異なるユースケース用に設計されています。それぞれの利点と制限について詳しくは、サービス アカウントによるフィルタリングとネットワーク タグによるフィルタリングをご覧ください。

上記の例では、2 つのファイアウォール ルールが連携して、サービス アカウントまたはタグで識別されるインスタンスへの特定のトラフィックを除き、すべてのインスタンスへの受信トラフィックをブロックしています。

送信元と宛先

すべてのファイアウォール ルールには、方向に応じて、送信元コンポーネントまたは宛先コンポーネントのいずれかがあります。

  • ingress ルールには、関連付けられた送信元が必要です。デフォルトの送信元は、すべての受信トラフィック(0.0.0.0/0)です。送信元を絞り込むには、送信元フィルタを使用します。これは、IP アドレスの範囲(GCP の内部または外部)、またはサービス アカウントまたはネットワーク タグによって識別されるインスタンスです。それぞれのタイプの識別方法の利点、制限、使用例について詳しくは、サービス アカウントによるフィルタリングとネットワーク タグによるフィルタリングをご覧ください。

  • egress ルールには、関連付けられた宛先が必要です。デフォルトの宛先は、任意の IP アドレス(0.0.0.0/0)です。宛先を絞り込むには、宛先フィルタを使用して IP アドレスの範囲(GCP の内部または外部)を指定できます。

プロトコルとポート

各ファイアウォール ルールのコンポーネントでプロトコルとポートを指定して、対象とする適用範囲を絞り込むことができます。プロトコル、プロトコルとポートまたはポートの範囲、プロトコルとポートの組み合わせを指定するか、または何も指定しないことが可能です。

  • プロトコルもポートも指定しない場合、ファイアウォール ルールはすべてのトラフィック(つまり、あらゆるプロトコルとポート)に適用されます。

  • プロトコルは、その名前(tcpudpicmpespahsctpipip)または 10 進数のプロトコル番号を使用して指定できます。ポートを指定せずにプロトコル(たとえば、tcp)を指定すると、ファイアウォール ルールはそのプロトコルに関連付けられたすべてのポートに適用されます。

  • プロトコルでポートがサポートされている場合、関連するプロトコルとともにポートまたはポートの範囲を指定できます。

    • 個別のプロトコルとポートを指定するには、プロトコルとポートをコロンで区切ります(たとえば、tcp:80)。

    • プロトコルと連続した範囲のポートを指定するには、ダッシュを使用して範囲を定義します(たとえば、tcp:20-22)。

    • プロトコルと連続しない範囲のポートを指定するには、プロトコル / ポートの組み合わせを複数作成します。セミコロン(Cloud Console を使用してルールを作成する場合)またはカンマ(gcloud を使用する場合)で区切ります。たとえば、tcp:80;tcp:443(Console)または tcp:80,tcp:443gcloud)です。

  • 各タイプのプロトコルまたは連続しないポート範囲をセミコロン(Cloud Console)またはカンマ(gcloud)で区切って、複数のプロトコルとポートの組み合わせを指定できます。たとえば、icmp;tcp:80;tcp:443;udp:67-69(Console)または icmp,tcp:80,tcp:443,udp:67-69gcloud)です。

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

IAM サービス アカウントを使用して、ターゲットと送信元(上りルールのみ)を GCP リソースに制限できます。この方法でスコープが設定されたルールは、作成されてサービス アカウントに関連付けられた新しいインスタンスと、既存のインスタンス(サービス アカウントの関連付けを変更した場合)に適用されます。

ターゲットまたは送信元の識別にサービス アカウントを使用するファイアウォール ルールを作成する前に、サービス アカウントを作成する必要があります。サービス アカウントは、ファイアウォールが作成されたプロジェクトと同じプロジェクトで定義できます。または、ファイアウォール ルールが作成されたプロジェクトが共有 VPC を使用してホスト プロジェクトに接続されている場合は、ホスト プロジェクトから取得できます。

VPC ネットワーク ピアリングを使用して他のプロジェクト内のネットワークに接続している場合、それらの他のプロジェクトのサービス アカウントは使用できません。

サービス アカウントは、手動で作成されたインスタンスと、自動スケーリングを使用するマネージド インスタンス グループなどから自動的に作成されたインスタンスに関連付けることができます。

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

このセクションでは、サービス アカウントまたはネットワーク タグを使用してファイアウォール ルールのターゲットまたは送信元(上りルールのみ)を制限する必要があるかどうかを判断する際に、考慮すべき重要なポイントを示します。

  • サービス アカウントは、インスタンスに関連付けられた ID を表します。インスタンスに関連付けることができるサービス アカウントは 1 つのみです。

  • サービス アカウントをインスタンスに関連付けるには、そのサービス アカウントの Compute Engine サービス アカウント ユーザーの役割がユーザーに明示的に付与されており、関連付けられるインスタンスを編集する権限がある(たとえば、Compute Engine インスタンス管理者の役割も持つ)必要があります。

  • タグは、インスタンスに割り当てられた任意の属性です。インスタンスを編集する権限を持つ(たとえば、Compute Engine インスタンス管理者の役割を持つ)ユーザーが、1 つまたは複数のタグをインスタンスに関連付けることができます。

  • インスタンスのサービス アカウントを変更するには、そのインスタンスをいったん停止してから再起動する必要があります。タグは単なるメタデータ属性なので、インスタンスのタグの追加または削除はインスタンスを中断せずに行うことができます。

  • 1 つのサービス アカウントのみを、ファイアウォール ルールのターゲット コンポーネントまたは送信元コンポーネントに対して指定できます。

  • 1 つまたは複数のネットワーク タグを、ファイアウォール ルールのターゲット コンポーネントまたは送信元コンポーネントに対して指定できます。

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

ファイアウォール ルールの適用を厳密に制御する必要がある場合は、ネットワーク タグではなく、サービス アカウントを使用してターゲットまたは送信元への適用範囲を制限します。インスタンス管理者の役割を持つユーザーは、インスタンスの実行後であっても、任意のタグをインスタンスに適用できます。ネットワーク タグによってファイアウォール ルールにスコープが設定されている場合、インスタンス管理者はインスタンスに適用されるファイアウォール ルールを変更でき、組織のセキュリティ ポリシーを回避する可能性があります。サービス アカウントにスコープが設定されたファイアウォール ルールでは、インスタンス管理者にはインスタンスに関連付けるサービス アカウントに対する Compute Engine サービス アカウント ユーザーの役割も付与されている必要があるため、認証されたメカニズムが提供されます。

GCP ファイアウォールの使用例

下りの場合

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

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

下りの例

次の図は、ファイアウォール ルールによって制御できる下り接続の例を示しています。

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

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

  • 優先度 1000 の下りルールが VM 3 に適用されます。このルールでは、192.168.1.0/24 という IP 範囲内の任意の宛先への送信 TCP トラフィックがブロックされます。VM 4 の上りルールではすべての受信トラフィックが許可されますが、VM 3 は TCP トラフィックを VM 4 に送信できません。ただし、この下りルールは TCP プロトコルにのみ適用されるため、VM 3VM 4 に UDP トラフィックを自由に送信できます。さらに、VM 3 は、VPC ネットワーク内の 192.168.1.0/24 という IP 範囲外の他のインスタンスにトラフィックを許可する上りルールがある限り、それらの他のインスタンスにそのようなトラフィックを送信できます。外部 IP アドレスがないため、VPC ネットワークの外部にトラフィックを送信するパスはありません。

上りの場合

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

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

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

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

上りの例

次の図は、ファイアウォール ルールによって制御できる上り接続の例を示しています。

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

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

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。