Cloud Firewall Standardの通信制御オブジェクトを解説!

記事タイトルとURLをコピーする

G-gen の杉村です。Google Cloud (旧称 GCP) の VPC では、備え付きのファイアウォール機能である Cloud Firewall が利用できます。そのうち ファイアウォールポリシー (Firewall policy) で利用可能な Cloud Firewall Standard の通信制御機能について解説します。

概要

Cloud Firewall Standard とは

Cloud Firewall Standard とは、Google Cloud の VPC で利用可能な Cloud Firewall の有償機能です。

Cloud Firewall には無償の Essentials と有償の Standard の2ティアが存在し、前者は IP アドレスやプロトコルとポート番号などの L3/L4 レベルの制御のみを提供し、後者は FQDN ベースの制御や地理情報に基づいた制御など、高度なルールが利用可能です。

Cloud Firewall Standard や Essentials を含めた全体の体系については、以下の記事をご参照ください。

blog.g-gen.co.jp

利用可能な制御機能

Cloud Firewall Standard では、以下の制御オブジェクトを利用可能です。

No 名称 概要
1 FQDN objects FQDN (fully qualified domain name) を基にフィルタリング
2 Geo-location objects 接続元 / 先の地理的情報をもとにフィルタリング
3 Threat Intelligence Google Cloud の持つ脅威情報をもとにフィルタリング

料金

Cloud Firewall Standard ルールを使用したファイアウォールポリシーがインターネットと VM 間で発生したトラフィックを評価すると、$0.018/GB(= $0.0193/GiB)の料金が発生します(2023年11月現在の単価)。課金対象は以下のトラフィックです。

  • インターネットから VM への通信
  • VM からインターネットへの通信

反対に、以下のトラフィックは課金対象になりません。

  • インターネットと VM 間の通信のうち、プロキシ型の Cloud Load Balancing で中継される通信
  • Google Cloud 内に閉じる通信

参考 : Cloud Firewall pricing

Cloud Firewall Standard の利用方法

Cloud Firewall Standard は、ファイアウォールポリシー でのみ、ルールとして利用可能です。

ファイアウォールポリシーは通信制御ルールをまとめるためのグルーピング機能であり、複数プロジェクト・複数 VPC に適用可能です。ファイアウォールポリシーには「階層型ファイアウォールポリシー」「グローバルネットワークファイアウォールポリシー」「リージョンネットワークファイアウォールポリシー」の3種類があります。

Google Cloud の VPC においては、ファイアウォールポリシーの他に、単一 VPC でのみ利用可能なVPC ファイアウォールルールも存在していますが、こちらでは Cloud Firewall Standard の機能は利用できず、無償で L3/L4 レイヤの制御のみを提供する Cloud Firewall Essentials のみが利用できます。

ファイアウォールポリシー自体の解説は、以下の記事もご参照ください。

FQDN objects

概要

ファイアウォールポリシーでは FQDN objects をアクセス先 / 元として利用可能です。

FQDN とは Fully Qualified Domain Name の略であり www.google.comg-gen.co.jp などのいわゆる「ドメイン名」と呼ばれるものを指します (厳密な定義では www というホスト名と google.com というドメイン名を全て繋げ末尾に . をつけるのが正式なフォーマット)。

FQDN objects を使うことでその FQDN へ (から) のアクセスを禁止 / 許可することができます。

ユースケース

当機能を使うことで、例えば「g-gen.co.jp へのアクセスを禁止する」「update.microsoft.com などいくつかのドメインへのアクセスを許可し、それ以外への外向きアクセスは全て禁止する」などが可能です。

仕組み

FQDN objects 機能は、フィルタリングの際に「パケットのどの部分を見て FQDN を判断しているか」という点で特殊です。

通常のファイアウォール製品で URL フィルタリングを行う場合、HTTP ヘッダの HOST ヘッダや CONNECT メソッドの URI などを読み取って、これをもとにフィルタリングを行うことが一般的です。つまり L7 (アプリケーション層) の情報をもとにしてフィルタリングをするのが一般的ということです。

一方で VPC Firewall Policy の FQDN objects 機能は、以下のような方法で FQDN を IP アドレスに変換したうえで IP アドレスベースで フィルタリングを行う機能です。

  1. FQDN を Cloud DNS により IP アドレスへ名前解決
  2. その IP アドレスを Firewall が保持
  3. 保持した IP アドレスをもとにフィルタリング

つまり、HTTP リクエスト等に含まれる URI の情報を見ているわけではなく、あくまで IP ヘッダに含まれる IP アドレスをもとにフィルタリングをしていることになります。

このことから以下のようなことも起こります。

例えば 1.1.1.1 という IP アドレスに名前解決される hoge.example.com があるとします。しかしこの IP アドレスには別名があり fuga.example.com1.1.1.1 に名前解決されるとします。

この場合、hoge.example.com だけをフィルタリング対象としてファイアウォールポリシーに登録した場合でも、fuga.example.com にはアクセスできなくなります。IP アドレスが同じだからです。また 1.1.1.1 という IP アドレスを直接指定してアクセスしようとしても、同様に弾かれます。

その他の仕様

名前解決順序

Cloud DNS による名前解決は、そのファイアウォールポリシーが適用されている VPC の 名前解決順序 に依存します。

たとえば VPC A に Cloud DNS の限定公開ゾーン (Private Zone) example.com が紐付けられており、この Zone では www.example.com10.0.0.10 という A レコードとして登録されているとします。この場合、ファイアウォールポリシーでフィルタリングされる IP アドレスは 10.0.0.10 になります。

このとき仮に www.example.com がパブリックで名前解決できる FQDN だとしても、VPC の名前解決順序の仕様として限定公開ゾーンが優先されるため、こちらがフィルタリング対象の IP アドレスとなります。

利用できないドメイン

*.example.com などアスタリスクを含むドメイン、すなわちワイルドカードドメインは利用できません。

また .org などトップレベルドメインも指定できません。

Geo-location objects

概要

Geo-location objects ではアクセス元 / 先の地理的情報に基づいてフィルタリングを行うルールを作成できます。

US, FR, JP のような ISO 3166-1 alpha-2コード を使って地域を指定し、Allow/Deny することができます。

地域情報と IP アドレスのマッピングは、Google が管理するデータベースに基づきます。当機能では、そのマッピングに基づいて、IP アドレスベースでフィルタリングを行う機能です。

ユースケース

Geo-location objects はアクセス元としてもアクセス先としても利用できるため、特定地域から来るアクセスを拒否 / 許可したり、逆に特定地域へ向けてのアクセスを拒否 / 許可することが可能です。

ただし、あくまで IP アドレスの登録情報により国を判別しているので、必ずしも本当のクライアント/通信先の地域を特定できるわけでは無いことに留意してください。

仕組み

地理情報の判断は、IP アドレスと国コードのマッピングデータベースに基づきます。データベースは Google によって管理されているものです。

IP アドレスの所有権が移動した場合などに、Google のデータベースへの反映が遅れる場合もあるため、IP アドレスが常に正しい地理情報と紐付いていることは保証されないことに注意が必要です。

Threat Intelligence

概要

Threat Intelligence for firewall policy rules では Google の持つ脅威インテリジェンス情報に基づいてフィルタリングすることができます。

Google の持つ情報をもとに以下の IP アドレスをフィルタリングして拒否 / 許可することができます。

No 名称 説明
1 Tor exit nodes Tor の exit node として知られている IP アドレス
2 Known malicious IP addresses 既知の悪意ある IP アドレス
3 Search engines サーチエンジンのインデックス bot の IP アドレス
4 Public cloud IP address ranges Amazon Web Services (AWS) / Microsoft Azure / Google Cloud の IP アドレス

上記から利用したいルールのみを選択して使用することができます。

ユースケース

悪用されている既知の IP アドレスから/へのアクセスを拒否したり、Tor から/への利用を制限することで、VPC のセキュリティレベルを上げることが期待できます。

仕組み

ルールで対象となっている IP アドレスは IPv4, IPv6, その両方のいずれの場合もありますが、Google Cloud によって管理されているためブラックボックスです。

また当機能は、パケットの振る舞いなどを見てブロックするわけではなく、あくまで IP アドレス情報をベースにしてフィルタリングする機能です。当機能を使ったとしても未知の IP アドレスからの攻撃には無力だという点に留意が必要です。あくまで、既知の攻撃元からの侵害の可能性を下げる程度と理解する必要があります。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。