G-gen の杉村です。Google Cloud(旧称 GCP)の VPC では、備え付きのファイアウォール機能である Cloud Next Generation Firewall(Cloud NGFW)が利用できます。そのうち ファイアウォールポリシー (Firewall policies)で利用可能な Cloud NGFW Standard の通信制御機能について解説します。
概要
Cloud NGFW Standard とは
Cloud NGFW Standard とは、Google Cloud の VPC で利用可能な Cloud Next Generation Firewall(以下、Cloud NGFW)の有償機能です。
Cloud NGFW には無償の Essentials と有償の Standard、およびEnterpriseの3ティアが存在し、前者は IP アドレスやプロトコルとポート番号などの L3/L4 レベルの制御のみを提供し、後者は FQDN ベースの制御や地理情報に基づいた制御など、高度なルールが利用可能です。
Cloud NGFW Standard や Essentials、Enterprise を含めた全体の体系については、以下の記事をご参照ください。
利用可能な制御機能
Cloud NGFW Standard では、以下の制御オブジェクトを利用可能です。
No | 名称 | 概要 |
---|---|---|
1 | FQDN objects | FQDN (fully qualified domain name) を基にフィルタリング |
2 | Geo-location objects | 接続元 / 先の地理的情報をもとにフィルタリング |
3 | Threat Intelligence | Google Cloud の持つ脅威情報をもとにフィルタリング |
料金
Cloud NGFW Standard ルールを使用したファイアウォールポリシーがインターネットと VM 間で発生したトラフィックを評価すると、$0.018/GB(= $0.0193/GiB)の料金が発生します(2024年5月現在)。課金対象は以下のトラフィックです。
- インターネットから VM への通信
- VM からインターネットへの通信
反対に、以下のトラフィックは課金対象になりません。
- インターネットと VM 間の通信のうち、プロキシ型の Cloud Load Balancing で中継される通信
- Google Cloud 内に閉じる通信
参考 : Cloud Next Generation Firewall pricing
Cloud NGFW Standard の利用方法
Cloud NGFW Standard は、ファイアウォールポリシー でのみ、ルールとして利用可能です。
ファイアウォールポリシーは通信制御ルールをまとめるためのグルーピング機能であり、複数プロジェクト・複数 VPC に適用可能です。ファイアウォールポリシーには「階層型ファイアウォールポリシー」「グローバルネットワークファイアウォールポリシー」「リージョンネットワークファイアウォールポリシー」の3種類があります。
Google Cloud の VPC においては、ファイアウォールポリシーの他に、単一 VPC でのみ利用可能なVPC ファイアウォールルールも存在していますが、こちらでは Cloud NGFW Standard の機能は利用できず、無償で L3/L4 レイヤの制御のみを提供する Cloud NGFW Essentials のみが利用できます。
ファイアウォールポリシー自体の解説は、以下の記事もご参照ください。
FQDN objects
概要
ファイアウォールポリシーでは FQDN objects をアクセス先 / 元として利用可能です。
FQDN とは Fully Qualified Domain Name の略であり www.google.com
や g-gen.co.jp
などのいわゆる「ドメイン名」と呼ばれるものを指します (厳密な定義では www
というホスト名と google.com
というドメイン名を全て繋げ末尾に .
をつけるのが正式なフォーマット)。
FQDN objects を使うことでその FQDN へ (から) のアクセスを禁止 / 許可することができます。
- 参考 : FQDN objects
ユースケース
当機能を使うことで、例えば「g-gen.co.jp
へのアクセスを禁止する」「update.microsoft.com
などいくつかのドメインへのアクセスを許可し、それ以外への外向きアクセスは全て禁止する」などが可能です。
仕組み
FQDN objects 機能は、フィルタリングの際に「パケットのどの部分を見て FQDN を判断しているか」という点で特殊です。
通常のファイアウォール製品で URL フィルタリングを行う場合、HTTP ヘッダの HOST ヘッダや CONNECT メソッドの URI などを読み取って、これをもとにフィルタリングを行うことが一般的です。つまり L7 (アプリケーション層) の情報をもとにしてフィルタリングをするのが一般的ということです。
一方で VPC Firewall Policy の FQDN objects 機能は、以下のような方法で FQDN を IP アドレスに変換したうえで IP アドレスベースで フィルタリングを行う機能です。
- FQDN を Cloud DNS により IP アドレスへ名前解決
- その IP アドレスを Firewall が保持
- 保持した IP アドレスをもとにフィルタリング
つまり、HTTP リクエスト等に含まれる URI の情報を見ているわけではなく、あくまで IP ヘッダに含まれる IP アドレスをもとにフィルタリングをしていることになります。
このことから以下のようなことも起こります。
例えば 1.1.1.1
という IP アドレスに名前解決される hoge.example.com
があるとします。しかしこの IP アドレスには別名があり fuga.example.com
も 1.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.com
が 10.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
ユースケース
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 のアップデート情報をつぶやいています。
Follow @y_sugi_it