防御・検知(WAF / Shield / GuardDuty / Inspector 等)

AWS には、外からの攻撃を「防ぐ」サービスと、脅威や問題を「見つける」サービスがあります。名前が似ていて役割が紛らわしいので、SAA では「この要件ならどれか」を選ぶ問題がよく出ます。このページでは、ALB と AWS WAF の連携、AWS Network Firewall も含めて整理します。

ひとことで言うと: WAF は「Web の入口で荷物の中身を調べる警備員」、Shield は「押し寄せる群衆(DDoS)を止める防波堤」、Network Firewall は「VPC の門番」、GuardDuty・Inspector・Macie は「怪しい動き・弱点・機密データを見つける監視カメラと点検係」です。

防ぐサービスは攻撃を止め、見つけるサービスは問題を知らせます。見つけるサービスだけでは、攻撃そのものは止まりません。

このページで押さえる論点

セキュリティグループとネットワーク ACL の詳細は VPC のページで扱っています。

防御の層

攻撃は、通信の量で押し流すもの(DDoS)、通信の中身に悪意のある命令を混ぜるもの(SQL インジェクションなど)、許可していないポートや宛先への通信など、さまざまです。1 つのサービスですべては防げないので、層を重ねて守ります。

サービスどこで守るか何を見て判定するか
セキュリティグループEC2 などのネットワークインターフェースIP アドレス・ポート(許可ルールのみ。ステートフル)
ネットワーク ACLサブネットの出入口IP アドレス・ポート(許可と拒否。ステートレス)
AWS Network FirewallVPC の出入口(専用のファイアウォールサブネット)IP・ポートに加え、プロトコルやドメイン名、侵入検知のルールなど
AWS WAFALB・CloudFront・API Gateway などの前HTTP リクエストの中身(URL・ヘッダー・本文、SQL インジェクション・XSS)、送信元 IP・国、リクエストの頻度
AWS ShieldAWS のエッジやリソースDDoS 攻撃(大量の通信でサービスを止める攻撃)

OSI 参照モデルでいうと、セキュリティグループ・ネットワーク ACL はレイヤー 3・4(IP アドレスとポート)、WAF はレイヤー 7(HTTP の中身)で判定します。SQL インジェクションや XSS(クロスサイトスクリプティング)はポート番号では見分けられないので、セキュリティグループでは防げず、WAF が必要です。

AWS WAF と ALB の連携

AWS WAF は Web アプリケーションファイアウォールです。ウェブ ACL(ルールをまとめたもの)を作り、保護したいリソースに関連付けます。関連付けできるのは、Application Load Balancer・CloudFront ディストリビューション・API Gateway の REST API・AppSync の GraphQL API・Cognito ユーザープール・App Runner・Verified Access などです。Network Load Balancer には関連付けできません(NLB はレイヤー 4 で動き、HTTP の中身を扱わないため)。

ALB にウェブ ACL を関連付けると、リクエストはALB がターゲットに振り分ける前に WAF で検査され、ブロックされたリクエストは HTTP 403 が返ってターゲット(EC2 など)には届きません。CloudFront を前に置く構成では、CloudFront にウェブ ACL を付けると、攻撃をエッジ(利用者に近い拠点)で止められます。

操作できるシミュレーター

リクエストを変えて、WAF がどこで止めるか見てみよう

ALB にウェブ ACL を関連付けています。ルールは優先度の小さい順に評価され、デフォルトアクションは「許可」です。

リクエスト WAF ウェブ ACL 0: IP ブロック 1: SQLi 対策 2: レート制限 ALB → ターゲット
リクエストの特徴

※簡略化しています: レート制限の上限は例として「5 分間に 100 件」にしています。実際の上限と集計の期間はルールごとに設定します。ルールはすべて「ブロック」で、マネージドルールや許可ルール、カウントアクションは省いています。

AWS Shield による DDoS 対策

DDoS 攻撃(分散型サービス拒否攻撃)は、多数の機器から大量の通信を送りつけてサービスを止める攻撃です。AWS Shield には 2 つのレベルがあります。

観点Shield StandardShield Advanced
料金追加料金なし。すべての利用者に自動で有効有料のサブスクリプション
保護の対象一般的なネットワーク層・トランスポート層の DDoS 攻撃CloudFront・Route 53 ホストゾーン・Global Accelerator・ELB・Elastic IP(EC2)を指定して、より高度に保護。アプリケーション層の DDoS を WAF のルールで自動緩和
専門チームの支援なしShield Response Team(SRT)に攻撃中いつでも支援を依頼できる(ビジネスサポート以上のサポートプランが必要)
コスト保護なしDDoS 攻撃で増えた料金(データ転送など)をサービスクレジットで補償
WAF の料金別途必要保護対象のリソースで使う標準的な WAF の料金が含まれる

DDoS に強い構成として、CloudFront や Route 53 などのエッジのサービスを前に置く、Auto Scaling で負荷を吸収する、WAF のレートベースルールで HTTP のフラッド攻撃を抑えるといった組み合わせもよく問われます。

AWS Network Firewall と AWS Firewall Manager

AWS Network Firewall は、VPC 全体の通信を検査するマネージドなファイアウォールです。ファイアウォールサブネットという専用のサブネットに、AZ ごとにファイアウォールエンドポイントを置き、ルートテーブルで「インターネットゲートウェイ・NAT ゲートウェイ・VPN・Direct Connect との間の通信がファイアウォールを通る」ように経路を設定します。

セキュリティグループやネットワーク ACL では「IP アドレスとポート」でしか判定できませんが、Network Firewall は「どのドメインへの通信か」「怪しいパターンを含むか」まで見られます。問題文に「VPC からの外向き通信を特定のドメインだけに制限」「VPC の境界で侵入防止(IPS)」とあれば Network Firewall です。Transit Gateway と組み合わせ、検査専用の VPC に集めて複数 VPC の通信をまとめて検査する構成もあります。

AWS Firewall Manager は、Organizations の複数のアカウントにまたがって、WAF のルール・Shield Advanced の保護・セキュリティグループ・Network Firewall などを一元的に設定・適用するサービスです。新しいアカウントやリソースが増えても、ポリシーが自動で適用されます。組織の管理は Organizations のページで扱っています。

見つけるサービス

サービス見つけるものポイント
Amazon GuardDuty脅威(不審な API 呼び出し、マルウェアに感染した EC2 からの通信、暗号通貨のマイニング、認証情報の不正利用など)CloudTrail の管理イベント・VPC フローログ・Route 53 Resolver の DNS クエリログを分析する。有効にするだけで動き、エージェントや、これらのログの事前の設定は不要。既存の CloudTrail やフローログの設定にも影響しない
Amazon Inspectorソフトウェアの脆弱性(CVE)と、意図しないネットワークの露出EC2 インスタンス・ECR のコンテナイメージ・Lambda 関数を自動で見つけて継続的にスキャンする。新しい CVE が公開されると再スキャンする
Amazon MacieS3 に置かれた機密データ(個人情報・財務情報・認証情報など)機械学習とパターン一致で検出する。S3 バケットの公開状態・共有・暗号化の設定も評価する。対象は S3
AWS Security Hubセキュリティの状態の全体像GuardDuty・Inspector・Macie などの検出結果を複数アカウントから集め、ベストプラクティスの基準で自動チェックして、優先して対応すべき問題を示す
Amazon Detective検出結果の原因と影響範囲ログから関係を分析し、「この不審な動きは、どこから始まり、何に影響したか」を調べる

見つけるサービスは攻撃を止めません。検出結果は Amazon EventBridge に送れるので、「GuardDuty が脅威を見つけたら Lambda で EC2 を隔離する」「SNS で担当者に通知する」のように、自動で対応する仕組みを組み合わせます。Organizations と組み合わせれば、委任管理者のアカウントから全アカウントの検出結果をまとめて管理できます。

どのサービスを選ぶか

比較・選択フローチャート

質問に答えて防御・検知のサービスを選ぶ

要件を思い浮かべて「はい / いいえ」で答えてください。答えた経路が上から順に表示されます。

    ※簡略化しています: 実際には WAF と Shield Advanced、GuardDuty と Security Hub のように組み合わせて使います。Security Hub・Detective・Firewall Manager は分岐に含めていません。

    問題文のキーワード → 選ぶべき答え

    問題文の言い回し答えと理由
    「SQL インジェクション」「クロスサイトスクリプティング(XSS)」AWS WAF を ALB・CloudFront・API Gateway に関連付ける
    「特定の国からのアクセスをブロック」WAF の地理的一致ルール(CloudFront なら地理的制限も可)
    「同じ IP からの大量の HTTP リクエストを制限」WAF のレートベースルール
    「DDoS 対策。専門チームの 24 時間支援、攻撃による料金増の補償」Shield Advanced
    「追加コストなしの基本的な DDoS 保護」Shield Standard(自動で有効)
    「VPC からの外向き通信を許可したドメインだけに制限」「VPC 境界での IPS」AWS Network Firewall
    「複数アカウントに WAF ルール・Shield Advanced を一括適用」AWS Firewall Manager
    「不審な API 呼び出し・悪意のある IP との通信を検出。エージェントなし」Amazon GuardDuty
    「EC2・コンテナイメージ・Lambda の脆弱性を継続的にスキャン」Amazon Inspector
    「S3 の個人情報(PII)を検出」Amazon Macie
    「複数のセキュリティサービスの検出結果を一元的に集約」AWS Security Hub
    「脅威を検出したら自動で対応」GuardDuty の検出結果を EventBridge で Lambda などに渡す

    引っかけポイント

    まとめ: SAA 試験で押さえるポイント

    確認問題

    参考リンク

    AWS 公式ドキュメント(外部サイトが開きます)。