Cloud Service
Google Cloud Armor
外部ロードバランサのエッジで動く WAF と DDoS 防御サービス。L3/L4 の大規模攻撃を吸収し、L7 のルールで悪意あるリクエストを遮断する。AWS の WAF と Shield に相当。
- 1.Google のエッジで DDoS を吸収し、WAF ルールで悪性リクエストを遮断するマネージドな盾。
- 2.セキュリティポリシーを外部ロードバランサに紐づけ、IP・地域・L7 条件・レート制限で許可と拒否を制御する。
- 3.まずプレビューモードで誤検知を確認してから強制適用し、Cloud Logging で攻撃を可視化する。
解決する課題
公開アプリは絶えずボリューム型 DDoS と L7 の悪意あるリクエスト(SQL インジェクション、クロスサイトスクリプティング、スクレイピング、ボットなど)にさらされます。Google Cloud Armor は、Google のグローバルなエッジネットワークと外部ロードバランサの前段でこれらを吸収・遮断し、バックエンドに届く前に止めます。
- 大規模な L3/L4 のボリューム型 DDoS を、自前のキャパシティを増やさずに吸収したい
- L7 攻撃(SQLi / XSS など) を OWASP 系のルールでブロックしたい
- 特定の IP / CIDR / 地域 からのアクセスを許可・拒否したい
- 1 クライアントあたりのリクエスト流量を制限してアプリ層の枯渇攻撃を抑えたい
- どんな攻撃が来てどう処理されたかを可視化・監査したい
主要概念と用語
- セキュリティポリシー: ルールの集合体。バックエンドサービス(外部ロードバランサ)に紐づけて適用する単位
- ルール: 優先度(数値が小さいほど先に評価)、マッチ条件、アクションの組。最初にマッチしたルールのアクションで処理が決まる
- アクション: 許可(allow)、拒否(deny、403/404/502 等のステータスを指定可)、レート制限(throttle)、再 CAPTCHA、リダイレクトなど
- マッチ条件: 送信元 IP / CIDR、地域コード、そして CEL ベースのカスタムルール式で HTTP ヘッダー・パス・クエリ・地理情報などを評価
- 事前構成ルール(プリコンフィグ WAF ルール): OWASP ModSecurity Core Rule Set を取り込んだ既製ルール。SQLi・XSS・LFI/RFI・スキャナ検知などを少ない記述で適用できる
- レート制限ルール: 一定時間窓あたりのリクエスト数で throttle または ban を行うルール
- アダプティブ プロテクション: 機械学習で L7 の異常トラフィックを学習・検知し、緩和ルールを提案する機能
- エッジ セキュリティポリシー: CDN キャッシュやバケット向けに、より外側で IP/地域フィルタリングを行うポリシー種別
- プレビューモード: ルールを実際には強制せず、マッチしたら「もし適用していたら」をログに記録するだけのモード
仕様・制限・クォータ
- 適用対象: 主に**外部のアプリケーション ロードバランサ(旧 外部 HTTP(S) LB)**に紐づく。L7 の WAF 機能はこの構成が前提
- L3/L4 DDoS 防御: 外部ロードバランサと Google エッジにより、ボリューム型攻撃は既定で常時吸収される。L7 のポリシー機能が上乗せ部分
- 評価順序: ルールは優先度順に評価され、最初にマッチした 1 つのアクションが適用される。末尾にデフォルトルール(通常は許可)が置かれる
- マッチ条件の表現: 基本条件(IP・地域)に加え、CEL のカスタムルール式で柔軟に記述できる。ただし式の長さやサブ式数などに上限がある
- クォータ: ポリシー数、ポリシーあたりのルール数、ルールあたりの IP/CIDR 数などに上限がある。具体値はプロジェクトやティアで変わり、必要に応じて引き上げ申請する
- ティア差: アダプティブ プロテクションや高度な L7 緩和など一部機能は、上位の保護ティア(サブスクリプション)で提供される
内部の仕組み
Cloud Armor は、Google のグローバル ロードバランシング基盤のエッジで動作します。リクエストは利用者に最も近い Google のエッジ拠点(PoP)で終端され、そこでポリシー評価が行われてからバックエンドへ転送されます。
- L3/L4 のボリューム型攻撃は、Google のネットワーク容量と Anycast によって分散・吸収される。攻撃はエッジで散らされ、単一バックエンドへ集中しない
- L7 のポリシー評価は、紐づくセキュリティポリシーのルールを優先度順に走査し、最初にマッチしたアクションを実行する。SQLi/XSS などは事前構成ルールが署名的に検知する
- アダプティブ プロテクションは、各バックエンドサービスの正常時トラフィックを学習し、逸脱(疑わしいリクエストの急増)を検知すると、緩和に使えるルール候補と attack signature を提示する
- 評価結果(マッチしたルール、アクション、プレビューか強制か)は Cloud Logging に出力され、後追いで分析できる
新しい WAF ルールやレート制限は、まずプレビューモードで本番トラフィックに当て、Cloud Logging で「強制していたら拒否されたはずの正規リクエスト」が出ないかを確認します。問題がなければプレビューを外して強制適用すると、サービス影響を抑えて導入できます。
設計パターン / ベストプラクティス
- 多層で組む: 外側で IP/地域フィルタ、その内側で事前構成 WAF ルール、さらにレート制限、という順に優先度を設計する
- デフォルトは明示: 末尾のデフォルトルールの挙動(許可/拒否)を意図的に決め、想定外パスの扱いを曖昧にしない
- 事前構成ルールを基盤に: SQLi/XSS などは自作正規表現よりも事前構成(OWASP CRS ベース)ルールを使い、感度(sensitivity)レベルで誤検知と検知率を調整する
- 段階導入: すべての新ルールをプレビュー → 強制の順で入れ、ログで影響を確認してから本番強制にする
- レート制限で枯渇攻撃を抑制: ログインやAPIなど高負荷エンドポイントにキー(IP やヘッダー)単位の throttle/ban を設定する
- アダプティブ プロテクションを有効化: 未知の L7 攻撃に対し、自動検知と緩和ルール提案を活用する
- named IP リストを使い、信頼済み/拒否対象の IP を再利用しやすく管理する
運用・監視
- すべてのポリシー評価は Cloud Logging に記録される。マッチしたルール優先度・アクション・プレビュー有無を確認できる
- Cloud Monitoring のメトリクスで、許可/拒否/throttle の件数やアダプティブ プロテクションのアラートを監視する
- 正規ユーザーが 403 になる場合は、どのルール優先度でマッチしたかをログで特定し、感度の調整か例外ルール(より高い優先度の許可)で対処する
- レート制限の閾値はトラフィック実測に合わせて調整し、ban 期間が長すぎて正規利用を巻き込まないか観察する
- 攻撃イベントは、アダプティブ プロテクションのアラートと提案ルールを起点に、プレビューで検証してから強制する
コスト
課金は「保護ティア(サブスクリプション)」と「処理したリクエスト/ルールの利用量」の組み合わせが基本です。L3/L4 のボリューム型 DDoS 吸収自体は外部ロードバランサの基本機能として提供され、L7 の高度な機能ほど上位ティアの費用が乗ります。
| 項目 | 課金の考え方 | コスト最適化のヒント |
|---|---|---|
| L3/L4 DDoS 吸収 | 外部ロードバランサの基本機能として提供 | 公開エンドポイントは外部アプリ LB 経由に集約する |
| セキュリティポリシー利用 | ポリシー/ルールと処理リクエストに応じた従量 | 重複ルールを統合し、無効な古いルールを削除する |
| 事前構成 WAF ルール | 処理リクエスト量に応じた従量 | 感度を調整し過剰マッチによる無駄を避ける |
| 上位保護ティア | アダプティブ等を含む月額サブスクリプション | 高度緩和が要る本番系に絞って契約する |
セキュリティ
- ポリシーは最小許可を意識し、明示拒否と明示許可の優先度関係を慎重に設計する
- 事前構成 WAF ルールで OWASP Top 10 系(SQLi/XSS/LFI/RFI 等)を網羅的にカバーする
- 機微なエンドポイントには地域制限やnamed IP リストで到達範囲を絞る
- レート制限と再 CAPTCHA でボット・クレデンシャルスタッフィングを抑制する
- 設定変更とポリシー評価は Cloud Audit Logs / Cloud Logging で監査し、変更は IaC で管理する
正規表現の WAF ルールやレート制限をプレビューなしで本番強制すると、正規ユーザーを大量に 403 にする事故が起きがちです。必ずプレビューでログ確認し、段階的に感度と閾値を上げましょう。
Well-Architected の観点
- セキュリティ: WAF とレート制限で L7 攻撃面を縮小し、エッジで悪性トラフィックを遮断する。OWASP 系の事前構成ルールで標準的な脅威に備える
- 信頼性: Google エッジでのボリューム型 DDoS 吸収により、攻撃時もバックエンドの可用性を保つ。アダプティブ プロテクションで未知の急増に自動対応する
- 運用上の優秀性: プレビューモードと Cloud Logging により、安全な変更導入と継続的な可視化を実現する
- コスト最適化: 高度な L7 緩和は必要なワークロードに絞り、ティアとルールを整理して無駄を避ける
試験で問われるポイント
- 「WAF と DDoS 防御を外部ロードバランサのエッジで提供する」と来たら → Google Cloud Armor
- 主に外部のアプリケーション ロードバランサに紐づく点。バックエンドサービスにセキュリティポリシーを適用する構成が前提
- SQLi/XSS などは自作ルールより事前構成(OWASP CRS ベース)WAF ルールで対応する点
- IP / 地域 / カスタムルール式 / レート制限でアクセス制御し、ルールは優先度順に最初の 1 つで決まる点
- 新ルールはプレビューモードで誤検知を確認してから強制適用するという運用
- アダプティブ プロテクションが L7 異常を機械学習で検知し緩和ルールを提案する点
- 相当する AWS サービスは AWS WAF(L7 ルール)+ AWS Shield(DDoS 防御) であるという対応関係
関連サービス・比較
| 観点 | Google Cloud Armor | AWS WAF + Shield |
|---|---|---|
| 位置づけ | エッジの WAF と DDoS 防御 | WAF と DDoS 防御の組み合わせ |
| L7 WAF | セキュリティポリシー + 事前構成ルール | AWS WAF の Web ACL とマネージドルール |
| DDoS 防御 | 外部 LB と Google エッジで常時吸収 | Shield Standard(既定)/ Shield Advanced |
| 適用先 | 外部アプリ ロードバランサ | ALB / CloudFront / API Gateway 等 |
| L7 異常の自動検知 | アダプティブ プロテクション | Shield Advanced の自動緩和 |
| レート制限 | レート制限ルール | AWS WAF のレートベースルール |
| ログ/監査 | Cloud Logging / Cloud Audit Logs | WAF ログ / CloudWatch / CloudTrail |
ハンズオン / CLI例
# セキュリティポリシーを作成
gcloud compute security-policies create web-armor-policy \
--description "WAF and rate limiting for web frontend"
# 事前構成 WAF ルール(SQLi 対策)をプレビューモードで追加
gcloud compute security-policies rules create 1000 \
--security-policy web-armor-policy \
--expression "evaluatePreconfiguredExpr('sqli-v33-stable')" \
--action deny-403 \
--preview
# 特定地域からのアクセスを拒否する例
gcloud compute security-policies rules create 2000 \
--security-policy web-armor-policy \
--expression "origin.region_code == 'XX'" \
--action deny-403
# IP 単位のレート制限(一定時間窓あたりの上限を超えたら throttle)
gcloud compute security-policies rules create 3000 \
--security-policy web-armor-policy \
--src-ip-ranges "*" \
--action throttle \
--rate-limit-threshold-count 100 \
--rate-limit-threshold-interval-sec 60 \
--conform-action allow \
--exceed-action deny-429 \
--enforce-on-key IP
# 既存のバックエンドサービスにポリシーを適用
gcloud compute backend-services update web-backend \
--security-policy web-armor-policy \
--global
# アダプティブ プロテクションを有効化
gcloud compute security-policies update web-armor-policy \
--enable-layer7-ddos-defense
Google Cloud Service
Google Cloud Armorを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: Google Cloud / カテゴリ: セキュリティ・ID / 難易度: intermediate
導入後に効く点
セキュリティポリシーを外部ロードバランサに紐づけ、IP・地域・L7 条件・レート制限で許可と拒否を制御する。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- Google Cloud
- カテゴリ
- セキュリティ・ID
- 難易度
- intermediate
- 関連資格
- —
- 設計柱
- security / reliability
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「Google のエッジで DDoS を吸収し、WAF ルールで悪性リクエストを遮断するマネージドな盾。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。