はじめに
AWS Solutions Architect Associate (SAA) の学習中に整理した WAF / Shield / GuardDuty / Macie / Inspector 関連の知識をまとめました。
これらは AWS のセキュリティサービス群であり、「どのサービスが何を守るか」の使い分けが試験で問われます。
本記事は個人の学習ノートをベースにしています。誤りがあればコメントでご指摘いただけると助かります。
サービス概要
セキュリティサービスの使い分け
| サービス | 役割 | 対象 |
|---|---|---|
| WAF | Web アプリ保護(L7) | CloudFront、ALB、API Gateway |
| Shield Standard | DDoS 保護(無料、自動有効) | 全 AWS リソース |
| Shield Advanced | 高度な DDoS 保護(DRT、コスト保護) | CloudFront、ALB、Route 53 等 |
| GuardDuty | 脅威検出(悪意のあるアクティビティ監視) | AWS アカウント、S3、ワークロード |
| Macie | 機密データ検出(PII 等) | S3 |
| Inspector | 脆弱性評価 | EC2、コンテナイメージ |
| Firewall Manager | 複数アカウント / リソースのセキュリティ一元管理 | WAF / SG / Shield 等 |
| Security Hub | セキュリティアラートの集約・可視化 | 複数サービス |
覚え方として、GuardDuty = 「警備員」(不審な活動を検出)、Macie = 「探偵」(機密データを見つける)、Inspector = 「検査官」(脆弱性をチェック)とイメージすると分かりやすいです。
WAF の機能
- SQL インジェクション、XSS 対策
- Geo Match(国ベースのブロック)
- IP Set(最大10,000 IP)
- Rate-Based Rule(レート制限)
Shield Standard vs Shield Advanced
| Standard | Advanced | |
|---|---|---|
| コスト | 無料 | 有料($3,000/月〜) |
| 保護レイヤー | L3/L4 | L3/L4 + L7 |
| DRT(DDoS Response Team) | ❌ | ✅ |
| コスト保護 | ❌ | ✅(DDoS によるスケーリングコスト補償) |
WAF をデプロイできるサービス
- ✅ CloudFront、ALB、API Gateway、App Runner、Global Accelerator
- ❌ EC2(直接)、NLB、ASG
Security Group vs NACL vs WAF
| SG | NACL | WAF | |
|---|---|---|---|
| レベル | インスタンス | サブネット | CloudFront / ALB / API Gateway |
| deny ルール | ❌ 不可 | ✅ 可能 | ✅ 可能 |
| IP Match | △(許可のみ) | ✅ | ✅(最大10,000) |
セキュリティログの一元化 → Amazon Security Lake
- セキュリティデータの収集・正規化・一元化(フルマネージド)
- CloudTrail、VPC Flow Logs、GuardDuty 等からネイティブに取り込み
- OCSF で自動標準化(カスタム ETL 不要)
試験で問われる設計パターン
WAF 系
CloudFront + ALB 構成での悪意ある IP 遮断 → WAF IP Match
シナリオ: CloudFront + ALB 構成で特定の悪意ある IP アドレスからのアクセスをブロックしたいです。どの方法が最適でしょうか?
正解: WAF で IP Match Condition を作成
- SG に deny ルールはない(許可のみ)
- NACL はサブネットレベル + CloudFront 経由だと ALB には ALB の IP で到達する
- WAF ならエッジでブロックできる
EC2 アプリを WAF で保護 → CloudFront + WAF
シナリオ: EC2 上のアプリケーションを WAF で保護したいです。EC2 に直接 WAF をデプロイできますか?
正解: CloudFront(EC2 オリジン)+ WAF
- EC2 に直接 WAF は不可
- ALB に WAF をデプロイすることも可能
SQL インジェクション + XSS 対策 → WAF + CloudFront
シナリオ: アプリケーションを SQL インジェクションや XSS 攻撃から保護したいです。
正解: AWS WAF + CloudFront
- WAF = SQLi / XSS フィルタリング
- Shield = DDoS 保護(SQLi / XSS ではない)
- Firewall Manager = WAF の管理ツール
国ブロック + 特定 IP 許可 → WAF Geo Match + WAF IP Set
シナリオ: 特定の国からのアクセスをブロックしつつ、その国内の特定 IP は許可したいです。(2つ選択)
正解:
- WAF Geo Match Statement(国ブロック)
- WAF IP Set Statement(特定 IP 許可)
- ALB には Geo Match / IP Set 機能がない
- NACL は国ベースのフィルタリングに対応していない
リクエストレート制限で攻撃防止 → WAF Rate-Based Rule
シナリオ: 特定の IP アドレスから異常な数のリクエストが来ています。レート制限で対処するには?
正解: AWS WAF Rate-Based Rule
- Shield に Rate-Based Rule は設定できない
- NACL はレートベースの制御に対応していない
Shield 系
DDoS 対策 + 監査ログ + 最小アーキテクチャ変更 → Shield Advanced
シナリオ: DDoS 攻撃に対する高度な保護が必要で、監査ログも求められます。既存のアーキテクチャ変更は最小限にしたいです。
正解: AWS Shield Advanced
- 常時オンの DDoS 保護
- DRT(専門家支援)へのアクセス
- 既存 ALB に適用 → 変更最小
- GuardDuty = 脅威検出のみ(DDoS 保護ではない)
GuardDuty / Macie / Inspector 系
GuardDuty vs Macie の使い分け
シナリオ: AWS 環境のセキュリティ対策として、不正なアクティビティの検出と S3 内の機密データの検出を行いたいです。それぞれどのサービスを使うべきでしょうか?
正解:
- GuardDuty = 悪意のあるアクティビティ検出(不正な API 呼び出し、不審な通信等)
- Macie = S3 の機密データ検出(PII、クレジットカード番号等)
- Inspector = EC2 / コンテナの脆弱性スキャン
ログ一元化系
セキュリティログの一元化 + 最小開発工数 → Amazon Security Lake
シナリオ: CloudTrail、VPC Flow Logs、GuardDuty などのセキュリティログを一元化して分析したいです。開発工数を最小にするにはどのサービスが最適でしょうか?
正解: Amazon Security Lake
- OCSF で自動標準化(カスタム ETL 不要)
- Lake Formation は汎用データレイク(セキュリティ特化ではない)
- Athena + QuickSight は収集・正規化の機能がない
おわりに
セキュリティサービスの使い分けは「WAF = Web アプリ保護(SQLi/XSS)」「Shield = DDoS」「GuardDuty = 脅威検出」「Macie = 機密データ」「Inspector = 脆弱性」と覚えておけば、試験で迷うことはなくなります。特に「WAF は EC2 に直接デプロイできない」「SG に deny ルールはない」は引っかけ選択肢として頻出です。
間違いや補足があればぜひコメントで教えてください。