ファイアウォール ポリシー

ファイアウォール ポリシーを使用すると、複数のファイアウォール ルールをグループ化して、一度にまとめて更新できます。これらのルールは、Identity and Access Management(IAM)のロールで効率的に制御できます。Virtual Private Cloud(VPC)ファイアウォール ルールと同様に、これらのポリシーには接続を明示的に拒否または許可できるルールが含まれています。

階層型ファイアウォール ポリシー

階層型ファイアウォール ポリシーを使用すると、ルールを 1 つのポリシー オブジェクトにまとめて、1 つ以上のプロジェクトの複数の VPC ネットワークに適用できます。階層型ファイアウォール ポリシーは、組織全体または個々のフォルダに関連付けることができます。

階層型ファイアウォール ポリシーの仕様と詳細については、階層型ファイアウォール ポリシーをご覧ください。

グローバル ネットワーク ファイアウォール ポリシー

グローバル ネットワーク ファイアウォール ポリシーを使用すると、すべてのリージョン(グローバル)に適用されるポリシー オブジェクトにルールをまとめることができます。グローバル ネットワーク ファイアウォール ポリシーを VPC ネットワークに関連付けると、ポリシーのルールは VPC ネットワーク内のリソースに適用できます。

グローバル ネットワーク ファイアウォール ポリシーの仕様と詳細については、グローバル ネットワーク ファイアウォール ポリシーをご覧ください。

リージョン ネットワーク ファイアウォール ポリシー

リージョン ネットワーク ファイアウォール ポリシーを使用すると、特定のリージョンに適用されるポリシー オブジェクトにルールをまとめることができます。リージョン ネットワーク ファイアウォール ポリシーを VPC ネットワークに関連付けると、ポリシーのルールは、VPC ネットワークのそのリージョン内のリソースに適用されます。

リージョン ファイアウォール ポリシーの仕様と詳細については、リージョン ネットワーク ファイアウォール ポリシーをご覧ください。

ポリシーとルールの評価順序

階層型ファイアウォール ポリシー ルール、グローバル ネットワーク ファイアウォール ポリシー ルール、リージョン ネットワーク ファイアウォール ポリシー ルール、VPC ファイアウォール ルールは、Andromeda ネットワーク仮想化スタックの VM パケット処理の一部として実装されます。ルールは、VM のネットワーク インターフェース(NIC)ごとに評価されます。

ルールの適用範囲は、ルールのプロトコルとポート構成の特異性には依存しません。たとえば、すべてのプロトコルに対して優先度の高い許可ルールは、TCP ポート 22 に固有の優先度の低い拒否ルールよりも優先されます。

また、ルールの適用範囲は、ターゲット パラメータの特異性に依存しません。たとえば、より具体的なターゲット パラメータ(特定のサービス アカウントやタグなど)を含む優先度の低い拒否ルールが存在しても、すべての VM(すべてのターゲット)に対して優先度の高い許可ルールが優先されます。

ポリシーとルールの評価順序を決定する

ファイアウォール ポリシールールと VPC ファイアウォール ルールが評価される順序は、VM の NIC に接続されている VPC ネットワークの networkFirewallPolicyEnforcementOrder フラグによって決まります。

networkFirewallPolicyEnforcementOrder フラグには、次の 2 つの値を指定できます。

  • BEFORE_CLASSIC_FIREWALL: フラグを BEFORE_CLASSIC_FIREWALL に設定すると、グローバル ネットワーク ファイアウォール ポリシーとリージョン ネットワーク ファイアウォール ポリシーは、ルールの評価順序で VPC ファイアウォール ルールの前に評価されます。

  • AFTER_CLASSIC_FIREWALL: フラグを AFTER_CLASSIC_FIREWALL に設定すると、グローバル ネットワーク ファイアウォール ポリシーとリージョン ネットワーク ファイアウォール ポリシーは、ルールの評価順序で VPC ファイアウォール ルールの後に評価されます。AFTER_CLASSIC_FIREWALL は、networkFirewallPolicyEnforcementOrder フラグのデフォルト値です。

ルールの評価順序を変更するには、ポリシーとルールの評価順序を変更するをご覧ください。

デフォルトのポリシーとルールの評価順序

デフォルトでは、VM の NIC に接続されている VPC ネットワークの networkFirewallPolicyEnforcementOrderAFTER_CLASSIC_FIREWALL の場合、Google Cloud は VM の NIC に適用されるルールを次の順序で評価します。

  1. VM のプロジェクトを含む組織に階層型ファイアウォール ポリシーが関連付けられている場合、Google Cloud は階層型ファイアウォール ポリシーで該当するルールをすべて評価します。階層型ファイアウォール ポリシー ルールは一意である必要があるため、トラフィックの方向とレイヤ 4 の特性に一致する最も優先度の高いルールによってトラフィックの処理方法が決まります。

    • ルールでトラフィックを許可し、評価プロセスを停止する。

    • ルールでトラフィックを拒否し、評価プロセスを停止する。

    • このルールにより、レイヤ 7 検査(apply_security_profile_group)のためにトラフィックをファイアウォール エンドポイントに送信できます。パケットを許可するかどうかは、ファイアウォール エンドポイントと構成済みのセキュリティ プロファイルによって異なります。どちらの場合も、ルール評価プロセスが停止します。

    • 次のいずれかに該当する場合、定義済みのルール(次の手順を参照)の処理を許可する。

      • goto_next アクションを含むルールがトラフィックに一致する。
      • トラフィックに一致するルールがない。この場合、暗黙の goto_next ルールが適用されます。
  2. VM のプロジェクトの最も遠いフォルダ(祖先)に階層型ファイアウォール ポリシーが関連付けられている場合、Google Cloud はそのフォルダの階層型ファイアウォール ポリシーで該当するルールをすべて評価します。階層型ファイアウォール ポリシー ルールは一意である必要があるため、トラフィックの方向とレイヤ 4 の特性に一致する最も優先度の高いルールによって、トラフィックの処理方法(allowdeny、、apply_security_profile_group、 、goto_next)が決まります(最初の手順の説明を参照)。

  3. リソース階層内で VM のプロジェクトに近い次のフォルダに関連付けられた階層型ファイアウォール ポリシーに対して、Google Cloud は前の手順の処理を繰り返します。Google Cloud はまず、最も遠い祖先フォルダ(組織ノードに最も近いフォルダ)に関連付けられた階層型ファイアウォール ポリシーのルールを評価してから、VM のプロジェクトに近い次の子フォルダに関連付けられた階層型ファイアウォール ポリシーのルールを評価します。

  4. VM の NIC で使用される VPC ネットワークに VPC ファイアウォール ルールが存在する場合、Google Cloud は該当するすべての VPC ファイアウォール ルールを評価します。

    次の点はファイアウォール ポリシーのルールと異なります。

    • VPC ファイアウォール ルールに goto_nextapply_security_profile_group アクションはありません。VPC ファイアウォール ルールは、トラフィックを許可または拒否するように構成できます。

    • VPC ネットワーク内の 2 つ以上の VPC ファイアウォール ルールで同じ優先度を共有できます。その場合は、許可ルールよりも拒否ルールが優先されます。VPC ファイアウォール ルールの優先度の詳細については、VPC ファイアウォール ルールのドキュメントで優先度の説明をご覧ください。

    トラフィックに VPC ファイアウォール ルールが適用されていない場合、Google Cloud は次のステップ(goto_next)に進みます。

  5. グローバル ネットワーク ファイアウォール ポリシーが VM の NIC の VPC ネットワークに関連付けられている場合、Google Cloud はファイアウォール ポリシーで該当するルールをすべて評価します。ファイアウォール ポリシー ルールは一意である必要があるため、トラフィックの方向とレイヤ 4 の特性に一致する最も優先度の高いルールによって、トラフィックの処理方法(allowdeny、、apply_security_profile_group、 、goto_next)が決まります(最初の手順の説明を参照)。

  6. リージョン ネットワーク ファイアウォール ポリシーが VM の NIC の VPC ネットワークと VM のリージョンに関連付けられている場合、Google Cloud はファイアウォール ポリシーで該当するルールをすべて評価します。ファイアウォール ポリシー ルールは一意である必要があるため、トラフィックの方向とレイヤ 4 の特性に一致する最も優先度の高いルールによって、トラフィックの処理方法(allowdenygoto_next)が決まります(最初の手順の説明を参照)。

  7. 評価の最後のステップとして、Google Cloud は暗黙の下り(外向き)許可と暗黙の上り(内向き)拒否の VPC ファイアウォール ルールを適用します。

次の図は、ファイアウォール ルールの解決フローを示しています。

ファイアウォール ルールの解決フロー。
図 1. ファイアウォール ルールの解決フロー(クリックして拡大)。

ポリシーとルールの評価の順序を変更する

Google Cloud では、VPC ファイアウォール ルールとネットワーク ファイアウォール ポリシー(グローバルとリージョンの両方)の順序を入れ替えて、デフォルトのルール評価プロセスを変更できます。この入れ替えを行うと、ルールの評価順序が変わり、VPC ファイアウォール ルール(ステップ 4)の前にグローバル ネットワーク ファイアウォール ポリシー(ステップ 5)とリージョン ネットワーク ファイアウォール ポリシー(ステップ 6)が評価されます。

ルールの評価順序を変更するには、次のコマンドを実行して、VPC ネットワークの networkFirewallPolicyEnforcementOrder 属性を BEFORE_CLASSIC_FIREWALL に設定します。

gcloud compute networks update VPC-NETWORK-NAME \
    --network-firewall-policy-enforcement-order BEFORE_CLASSIC_FIREWALL

詳細については、networks.patch メソッドをご覧ください。

有効になっているファイアウォール ルール

階層型ファイアウォール ポリシー ルール、VPC ファイアウォール ルール、グローバルおよびリージョン ネットワーク ファイアウォール ポリシールールによって接続が制御されます。個々のネットワークまたは VM インターフェースに影響するすべてのファイアウォール ルールを確認すると役に立つ場合があります。

ネットワークで有効なファイアウォール ルール

VPC ネットワークに適用されているすべてのファイアウォール ルールを表示できます。このリストには、次のすべてのルールが含まれます。

  • 階層型ファイアウォール ポリシーから継承されたルール
  • VPC ファイアウォール ルール
  • グローバルおよびリージョン ネットワーク ファイアウォール ポリシーから適用されるルール

インスタンスで有効になっているファイアウォール ルール

VM のネットワーク インターフェースに適用されているすべてのファイアウォール ルールを表示できます。このリストには、次のすべてのルールが含まれます。

  • 階層型ファイアウォール ポリシーから継承されたルール
  • インターフェースの VPC ファイアウォールから適用されるルール
  • グローバルおよびリージョン ネットワーク ファイアウォール ポリシーから適用されるルール

ルールは、組織レベルから VPC ネットワークの順に並べられます。ここでは、VM インターフェースに適用されるルールのみが表示され、他のポリシーのルールは表示されません。

リージョン内で有効なファイアウォール ポリシーのルールを確認するには、ネットワークで有効なファイアウォール ポリシーを取得するをご覧ください。

事前定義ルール

階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、またはリージョン ネットワーク ファイアウォール ポリシーを作成すると、Cloud NGFW は事前定義されたルールをポリシーに追加します。Cloud NGFW がポリシーに追加する事前定義ルールは、ポリシーの作成方法によって異なります。

Google Cloud コンソールを使用してファイアウォール ポリシーを作成すると、Cloud NGFW は新しいポリシーに次のルールを追加します。

  1. プライベート IPv4 範囲の goto-next ルール
  2. 事前定義された Google Threat Intelligence の拒否ルール
  3. 事前定義された位置情報拒否ルール
  4. 優先度が最も低い goto-next ルール

Google Cloud CLI または API を使用してファイアウォール ポリシーを作成した場合、Cloud NGFW は優先度が最も低い goto-next ルールのみをポリシーに追加します。

新しいファイアウォール ポリシーの事前定義ルールはすべて、意図的に低い優先度(大きな優先度の数値)を使用するため、優先度の高いルールを作成することで、それらをオーバーライドできます。優先度が最も低い goto-next ルールを除き、事前定義ルールをカスタマイズすることもできます。

プライベート IPv4 範囲の goto-next ルール

  • 宛先 IPv4 範囲が 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16、優先度が 1000、アクションが goto_next の下り(外向き)ルール。

  • 送信元 IPv4 範囲が 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16、優先度が 1001、アクションが goto_next の上り(内向き)ルール。

Google Threat Intelligence の事前定義された拒否ルール

  • 送信元の Google 脅威インテリジェンス リストが iplist-tor-exit-nodes、優先度が 1002、アクションが deny の上り(内向き)ルール。

  • 送信元の Google 脅威インテリジェンス リストが iplist-known-malicious-ips、優先度が 1003、アクションが deny の上り(内向き)ルール。

  • 宛先の Google 脅威インテリジェンス リストが iplist-known-malicious-ips、優先度が 1004、アクションが deny の下り(外向き)ルール。

Google 脅威インテリジェンスの詳細については、ファイアウォール ポリシールールの Google 脅威インテリジェンスをご覧ください。

事前定義された位置情報拒否ルール

  • 送信元の位置情報が CUIRKPSYXCXD、優先度が 1005、アクションが deny の上り(内向き)ツール。

位置情報について詳しくは、位置情報オブジェクトをご覧ください。

優先度が最も低い goto-next ルール

次のルールは変更または削除できません。

  • 宛先 IPv6 範囲が ::/0、優先度が 2147483644、アクションが goto_next の下り(外向き)ルール。

  • 送信元 IPv6 範囲が ::/0、優先度が 2147483645、アクションが goto_next の上り(内向き)ルール。

  • 宛先 IPv4 範囲が 0.0.0.0/0、優先度が 2147483646、アクションが goto_next の下り(外向き)ルール。

  • 送信元 IPv4 範囲が 0.0.0.0/0、優先度が 2147483647、アクションが goto_next の上り(内向き)ルール。

次のステップ