MENU

【AWS Certified Cloud Practitioner】AWS WAF / Shield / Cognito / Macieを攻撃例から理解する(初学者向け)

目次

この記事の目的(AWS Certified Cloud Practitioner 対策)

AWS Certified Cloud Practitioner(CLF-C02)では、「代表的なセキュリティの考え方」と「主要セキュリティサービスの役割分担」を、実装レベルではなく“説明できる”ことが重要です。試験の公式範囲は、試験ガイドで確認できます。

まず押さえる:攻撃は「どこ」を狙うかで対策が変わる

同じ“セキュリティ”でも、狙われる場所(レイヤー)が違います。CLFレベルでは、次の切り分けができると理解が一気に楽になります。

狙い攻撃例主に効くAWSサービス(代表)
Webリクエストの中身(アプリ層/L7)SQLインジェクション、XSS、不正なURL/パス探索、ボットAWS WAF
大量トラフィック(ネットワーク/トランスポート層中心)DoS / DDoSAWS Shield(+必要に応じてWAFのレート制限)
ユーザー認証(ログイン)なりすまし、弱いパスワード運用、認証基盤の作り込み不備Amazon Cognito
データ(S3に置かれた機密情報)個人情報・機密情報の混入、意図しない公開Amazon Macie

アプリに対する代表的な攻撃(試験でイメージできればOK)

1) 不正なURL/パス探索(“直打ち”や“推測”で入口を探す)

例:管理画面や非公開APIのURLを推測してアクセスする(/admin/internalなど)。

ポイント:WAFは「特定パスをブロック」などのルールで入口対策に使える一方、最終的にはアプリ側の認可(アクセス権チェック)も重要です。

2) SQLインジェクション(SQLi)

入力欄などにSQLの断片を混ぜ、DBへの問い合わせを不正に変える攻撃です。AWS WAFはSQLiのパターン検知(ルール)を提供します。

3) OSコマンドインジェクション

サーバーがOSコマンドを実行する仕組みに入力が混ざり、不正コマンドが実行されるタイプです。原則はアプリ実装(安全な引数処理、そもそもシェル実行を避ける等)で防ぎます。

4) XSS(クロスサイトスクリプティング)

悪意あるスクリプトをページに混入させ、閲覧者のブラウザで実行させる攻撃です。AWS WAFにはXSS検知のステートメントもあります。

5) DoS / DDoS

大量アクセスでサービスを使えなくする攻撃です。AWSではDDoS保護の中核としてAWS Shieldが位置づけられます。


AWS WAF:Webアプリへのリクエストを検査してブロックする(L7の門番)

AWS WAFの役割(CLF向け要点)

  • HTTP/HTTPSリクエストを検査し、ルールに基づいて許可/遮断/カウントする
  • SQLiやXSSなど、Webアプリの典型的攻撃パターンやボット対策に使う

公式ドキュメント(概念):https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html

どこに適用できる?(試験で聞かれやすい)

AWS WAFはWeb ACL(ウェブACL)を、CloudFrontやALBなどのリソースに関連付けて保護します。保護対象の例は公式に列挙されています。

マネージドルール(運用を簡単にする“既製品ルール”)

CLFでは「WAFにはマネージドルールがあり、一般的な攻撃パターンを素早く対策できる」点が重要です。例として、ベースラインのルールグループではXSSパターンの検査が説明されています。

レート制限(“短時間に多すぎるアクセス”を抑える)

DoSの入口やボットの連打など、「同じ条件のリクエストが急増」するケースに対して、WAFのレートベースルールが使えます。

試験の引っかけ(WAFでできること/できないことの感覚)

  • できる(代表):SQLiやXSSなど“Webリクエストのパターン”をルールで検査・遮断
  • 単独では完結しない(代表):“認可ミス”(他人のデータを見られる等)や、アプリ内部の実装不備はアプリ側対策も必要

AWS Shield:DDoS保護(Standard と Advanced)

Shieldの位置づけ(CLF向け)

AWS Shieldは、DDoS(分散型サービス拒否)攻撃に対する保護を提供します。Standardは自動的に提供され、Advancedはより高い保護のためにサブスクライブします。

Standard と Advanced の違い(覚え方)

  • Shield Standard:基本のDDoS保護。AWS利用時に自動的に提供される(追加料金なし、と説明されている)
  • Shield Advanced:高度なDDoS保護と運用支援(例:専門チームの支援など)を含む

補足として、Shield AdvancedにはShield Response Team(SRT)による支援が説明されています(利用要件も記載)。


Amazon Cognito:アプリのユーザー認証(ユーザープール / IDプール)

まず結論:User Pools と Identity Pools は役割が違う

公式ドキュメントでも「主要コンポーネントは user pools と identity pools」と整理され、役割が説明されています。

User Pool(ユーザープール):アプリの“会員DB+ログイン”

Identity Pool(IDプール):一時的なAWS認証情報で“他のAWSサービス利用”を許可


Amazon Macie:S3内の機密データを“発見・可視化”する

Macieの役割(CLF向け要点)

  • S3にあるデータを対象に、機密データの検出(発見)とレポートを自動化できる
  • 自動(継続)検出と、ジョブ(指定範囲の検出)の2つのやり方がある
  • 機密データを検出すると、詳細なレポートを含むFinding(検出結果)を作成する、と説明されている

例:どんなときにMacieが効く?

  • ログやCSVをS3に置いたが、個人情報が混ざっていた(混入の早期発見)
  • データが増えて把握できなくなった(どこに機密情報があるか棚卸し)

試験での“選び分け”ミニ問題(直前復習)

  • Q:SQLiやXSSのようなWeb攻撃をブロックしたい
    A:AWS WAF(Webリクエストをルール検査)
  • Q:大規模DDoSから守りたい
    A:AWS Shield(Standard / Advancedの違いも押さえる)
  • Q:アプリのログイン機能(ユーザー管理・認証)を用意したい
    A:Amazon Cognito User Pool
  • Q:ログイン後、S3など他AWSサービスへのアクセス権を一時的に渡したい
    A:Amazon Cognito Identity Pool
  • Q:S3に機密データが含まれていないか自動的に検出したい
    A:Amazon Macie

不確かな点の扱い(断定せずに整理)

(1) 確実に言えること

(2) 推測(可能性が高い/低い、根拠つき)

  • 可能性が高い:OSコマンドインジェクションの“根本対策”はWAFよりアプリ実装(安全なコマンド実行・入力処理)であることが多い。
    根拠:OSコマンドインジェクションはアプリ内部の実行ロジックに依存し、HTTPリクエストパターン検知だけで万能に防げるとは一般に言いづらいため(CLFで求められるのは概念理解)。

(3) 不明点(追加で確認すべき点)

  • 特定のアプリ要件に対して「WAFだけでOSコマンドインジェクションをどこまで防げるか」は、アプリの実装・入力経路・ルール設計に依存するため一概に断定できない。必要なら、実際のリクエスト形式とWAFルール設計(マネージドルール適用範囲)を追加確認する。

まとめ(CLF-C02向け暗記フレーズ)

  • WAF:Webリクエストの中身をルール検査(SQLi/XSS/ボット/レート制限)
  • Shield:DDoS保護(Standard / Advanced)
  • Cognito:ログイン基盤(User Pool)+ AWS権限の一時付与(Identity Pool)
  • Macie:S3内の機密データを検出・可視化(自動検出/ジョブ)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次