ネットワークセキュリティ — SG / NACL / WAF / Shield
セキュリティグループ、NACL、AWS WAF、Shield、Firewall Manager を組み合わせた多層ネットワークセキュリティ設計を SAA 基礎から SAP 高度設計まで解説。
AWS のネットワークセキュリティは 複数レイヤの防御 (Defense in Depth) で設計します。 セキュリティグループ (SG)、NACL、AWS WAF、Shield が各レイヤを担当します。 本記事では多層防御のネットワークセキュリティ設計を SAA / SAP 両面から整理します。
SAA レベル:基礎概念
セキュリティグループ (SG) と NACL の違い
SG と NACL は VPC の基本的なファイアウォールですが、性質が異なります。
| 項目 | セキュリティグループ (SG) | NACL (Network ACL) |
|---|---|---|
| 適用単位 | ENI(EC2 等) | サブネット |
| ステートフル | はい(戻り通信自動許可) | いいえ(戻り通信もルール必要) |
| ルール評価 | 全ルールを評価(Allow の AND) | 番号順に評価(最初の Match で決定) |
| 拒否ルール | 不可(Allow のみ) | 可(Allow と Deny) |
| デフォルト | 全通信拒否 | 全通信許可 |
SAA レベル:基礎概念
SG と NACL の最大の違いは 「ステートフルかステートレスか」 です。
- SG(ステートフル): 外向き通信の戻りは自動許可。ルールは Allow のみ。
- NACL(ステートレス): 戻り通信もルールで明示。Allow と Deny が可能。 この違いが SAA の超頻出です。
セキュリティグループの設計原則
SG は インスタンス単位 のファイアウォールで、最も細かい制御が可能です。
- Allow のみ: Deny ルールは書けない(デフォルト全拒否)
- ステートフル: 外向き許可の戻りは自動許可
- 参照設定: 別 SG / リソースをソースに指定可能(動的)
- 全ルール評価: 番号順ではなく、全 Allow ルールの AND
SAA 試験のポイント
SG は 「別の SG をソースに指定」 できます。 例えば「Web SG をソースに許可」すると、Web SG を持つインスタンスからの通信だけ許可。 IP 変更時のメンテが不要なため、SAA で推奨設計として頻出します。
# 推奨される SG 参照設計
ALB-SG: 0.0.0.0/0 (80, 443) を許可
Web-SG: ALB-SG をソースに許可 (8080)
DB-SG: Web-SG をソースに許可 (3306)
NACL の設計原則
NACL は サブネット単位 のファイアウォールで、境界防御に使います。
- Allow と Deny: 両方のルールを書ける
- ステートレス: 戻り通信のルールも明示必要
- 番号順評価: 番号が小さい順に評価、最初の Match で決定
- デフォルト全許可: 明示的な Deny を入れないと全通過
SAA 頻出
NACL は ステートレス なので、「外向き通信を許可しても戻りは自動許可されない」です。 エフェメラルポート (1024-65535) の戻り通信を許可するルールが必要。 これを忘れると「アウトバウンド通信できるはずなのにできない」現象に。SAA の定番ひっかけです。
AWS WAF の基本
AWS WAF は L7 (アプリケーション層) のファイアウォール です。
- 対象: CloudFront, ALB, API Gateway, AppSync, Cognito
- ルール: SQL Injection, XSS, IP 制限, Geo 制限, レートベース制限
- Web ACL: ルールの集合体をリソースに適用
- マネージドルール: AWS / マーケットプレイス提供のルールセット
WAF の適用対象
WAF は CloudFront, ALB, API Gateway, AppSync, Cognito に適用可能です。 NLB には適用できない 点に注意(NLB は L4)。SAA で「WAF を ALB に適用」が頻出。
AWS Shield と Firewall Manager
| サービス | 役割 | 説明 |
|---|---|---|
| Shield Standard | DDoS 防御 | 全 AWS ユーザーに自動適用・無料 |
| Shield Advanced | DDoS 防御(高度) | 有料、CloudFront/Route53/ALB/NLB/Global Accelerator 保護 |
| Firewall Manager | マルチアカウント WAF 管理 | Organizations 配下の WAF/SG/Shield を一元管理 |
SAA レベル:基礎概念
Shield Standard は全 AWS ユーザーに無料で自動適用 されます。 これだけでよくある L3/L4 DDoS 攻撃は緩和されます。 Shield Advanced は有料 で、より高度な保護と DDoS 対応チーム (SRT) の支援、 保護対象リソースの WAF 料金割引等の追加メリットがあります。
SAP レベル:高度な設計シナリオ
多層防御 (Defense in Depth) アーキテクチャ
SAP では 複数レイヤの防御 を設計します。
SAP レベル:高度な設計シナリオ
SAP のネットワークセキュリティ定石は 「複数レイヤの防御 (Defense in Depth)」 です。 インターネット境界 (CloudFront + WAF + Shield) → VPC 境界 (NACL) → インスタンス境界 (SG) → アプリ境界 (アプリ内認証) の多層構造で、 1 レイヤ突破しても次で止める設計にします。
WAF ルールの設計
WAF は複数のルールタイプを組み合わせて設計します。
| ルールタイプ | 説明 | 設計論点 |
|---|---|---|
| マネージドルール | AWS / ベンダ提供 | OWASP Top 10 防御 |
| IP セット | IP ベース許可/拒否 | ブラックリスト管理 |
| Geo 制限 | 国単位の制限 | データ主権対応 |
| レートベースルール | 5 分間のリクエスト数閾値 | DDoS / ブルートフォース防御 |
| カスタムルール | 条件組み合わせ | 組織固有要件 |
レートベースルールの活用
WAF の レートベースルール は「同一 IP から 5 分間で N 回以上リクエストがあれば遮断」。 ブルートフォース攻撃や DDoS の軽減に有効。SAP では閾値のチューニングが運用論点です。
SG の相互参照設計
SAP では SG の相互参照を活用した最小権限設計 が推奨されます。
相互参照の利点
SG の相互参照を使うと IP アドレス変更のメンテが不要 になります。 オートスケールでインスタンス IP が変わっても、SG ベースの参照なら自動追従。 SAP ではこの 動的参照 を基本設計にします。
Firewall Manager によるマルチアカウント管理
AWS Firewall Manager は Organizations 配下の全アカウントの WAF / SG / Shield を一元管理します。
- 一元設定: 管理アカウントから全アカウントに WAF ルールを適用
- 新規アカウント自動適用: 組織に追加されたアカウントに自動適用
- コンプライアンス監視: ルール非準拠リソースを検知
Firewall Manager の設計論点
Firewall Manager は 「全アカウントで統一 WAF/SG ポリシー」 を実現しますが、 個別アカウントでのルール変更は Firewall Manager で上書き される点に注意。 「部門ごとの個別調整」が必要な場合は タグベースの適用範囲 で制御します。SAP の論点です。
Shield Advanced の詳細設計
Shield Advanced は有料ですが、以下の高度な保護を提供します。
| 機能 | 説明 |
|---|---|
| DDoS Response Team (SRT) | 24/7 で AWS の専門チームが支援 |
| 保護対象 | CloudFront, Route 53, ALB, NLB, Global Accelerator, Elastic IP |
| WAF 料金割引 | 保護リソースの WAF 利用料金が割引 |
| 自動応用 | 任意の攻撃に対する自動緩和ルール適用 |
| Visibility | 攻撃の可視化と CloudWatch 連携 |
Shield Advanced の適用判断
Shield Advanced は 「公共面向アプリで DDoS リスクが高い」 場合に投資判断します。 「EC2 単体への攻撃」も Elastic IP 保護で対応可能。SAP では費用対効果で Standard vs Advanced を判断します。
VPC セキュリティのベストプラクティス
SAP での VPC セキュリティ設計の定石:
| 設計要素 | 推奨 | 理由 |
|---|---|---|
| パブリックサブネット | ALB / NAT Gateway のみ | 直接インターネット公開を避ける |
| プライベートサブネット | アプリ / DB | インターネット直接不可 |
| NACL | 境界 Deny 追加 | 既知の悪意 IP の遮断 |
| VPC Flow Logs | 全通信記録 | 通信監査と異常検知 |
| VPC エンドポイント | AWS サービスへのプライベートアクセス | インターネット経由回避 |
パブリックサブネットの最小化
パブリックサブネットに置くリソースは ALB と NAT Gateway のみ が原則です。 EC2 をパブリックサブネットに直接置くと、攻撃面が拡大します。 「アプリは必ずプライベートサブネット」が SAP の基本姿勢です。
インターネット向けアーキテクチャの防御
SAP レベル:高度な設計シナリオ
SAP のインターネット面向アプリの完成形は 「CloudFront + WAF + Shield → ALB + WAF → プライベートサブネットの EC2/RDS」 の多層構造です。 各レイヤで異なる防御を提供し、CloudFront の SG で CloudFront からのみ ALB へアクセス許可 とすることで、ALB を直接叩く攻撃も遮断できます。この設計が SAP の核心です。
Network Firewall による VPC 境界防御
AWS Network Firewall は VPC の境界で L3〜L7 の通信を検査します。
- ステートフル検査: 通信状態を追跡
- Suricata 互換ルール: 既存ルールの再利用可
- VPC 内配置: VPC サブネットに ENI として配置
- マネージドルール: AWS 提供のドメインリスト等
Network Firewall の位置づけ
Network Firewall は 「VPC の境界検査」 に特化し、WAF(L7 アプリ向け)とは補完関係です。 「VPC からインターネットへの通信を検査」「サードパーティ製ファイアウォールルールを再利用」 等の要件で SAP では Network Firewall の活用が問われます。
制約と考慮事項
| 項目 | 制約 |
|---|---|
| SG ルール数 | 1 SG あたり 60(クォータ拡張可) |
| NACL ルール数 | 1 NACL あたり 20(拡張可) |
| WAF 適用対象 | CloudFront / ALB / API Gateway / AppSync / Cognito |
| Shield Standard | 無料・自動適用 |
| Firewall Manager | Organizations 連携必須 |
まとめ
- SAA: SG(ステートフル・Allow のみ)と NACL(ステートレス・Allow/Deny)の違い、 WAF は L7、Shield Standard は無料自動、を理解する。
- SAP: 多層防御アーキテクチャ、SG 相互参照、Firewall Manager によるマルチアカウント管理、 Shield Advanced の費用対効果判断が求められる。
次は マルチAZ・マルチリージョンアーキテクチャ で、高可用性設計に入ります。