技術ブログ

【AWS SAA対策】問題解説:国別アクセス制御を正しく設計する方法

早速ですが今回間違えたSAAレベルの問題の解説をブログにしていきます。

問題概要

ある企業は、Amazon EC2 上で稼働する Web アプリケーションを構築しています。データレイヤーには Amazon RDS for MySQL と Amazon S3 を利用しています。
過去に「特定の国からのサイバー攻撃」によりシステムダウンした経験があり、特定の国からのアクセスをブロックする設計が必要になりました。

どのソリューションを構成すべきか(3つ選択) という AWS SAA レベルの問題です。

選択肢

  1. 特定の国のCIDR範囲からのトラフィックを防ぐセキュリティグループを設定して、アクセスをブロックする。
  2. Route53の位置情報ルーティングを構成して、特定地域からのアクセスを遮断する。
  3. 特定の国のCIDR範囲からのトラフィックを防ぐネットワークACLを設定して、アクセスをブロックする。
  4. AWS WAFのウェブACLを利用して特定地域からのアクセスを遮断する。
  5. Amazon CloudFrontの地域制限を利用して特定地域からのアクセスを遮断する。

これより先は回答と解説が載っているので皆さんもまずは考えてみてください。



正解となる選択肢

② Route53 位置情報ルーティング(正解)

役割:DNSレベルで国別制御

  • ユーザーの DNSクエリ送信元の国 に基づいてルーティングを制御
  • 特定の国を「ルーティング対象外」にすればアクセス不可

なぜ有効か?

  • 最も早い段階(DNS)でブロックできるため、攻撃トラフィックを根本から遮断できる

Route 53 Geo Location Routing 構成

[ User (Global) ]
        |
        v
+------------------+
|   Route 53 DNS   |
| Geo Location     |
+------------------+
   |            |
   | JP         | US / EU
   v            v
+-------+    +--------------------+
| ALB   |    | Blackhole Endpoint |
| Tokyo |    | (S3 / 403 / dummy) |
+-------+    +--------------------+
   |
   v
+-------------+
| EC2 / ECS   |
+-------------+

④ AWS WAF Web ACL(正解)

役割:アプリケーション層の国別ブロック

  • Geo Match ルールで国単位のブロックが可能
  • SQLインジェクション・XSS対策も同時に可能

使われる場所

  • CloudFront
  • Application Load Balancer
  • API Gateway

ALB + WAF Geo Match 構成(最小構成)

[ User (Global) ]
        |
        v
+------------------+
| AWS WAF          |
| Geo Match Rule   |
| Allow: JP        |
| Block: Others    |
+------------------+
        |
        v
+------------------+
| Application LB   |
+------------------+
        |
        v
+------------------+
| EC2 / ECS        |
+------------------+

⑤ Amazon CloudFront 地域制限(正解)

役割:CDNレベルでの国別アクセス制御

  • 地理的ブロッキング機能で国単位のアクセス制御
  • 配信コスト削減+セキュリティ向上

CloudFront + WAF Geo Match 構成(王道パターン)

[ User (Global) ]
        |
        v
+------------------+
|   CloudFront     |
|  (CDN)           |
+------------------+
        |
        v
+------------------+
| AWS WAF          |
| Geo Match Rule   |
| Allow: JP        |
| Block: Others    |
+------------------+
        |
        v
+------------------+
| ALB              |
+------------------+
        |
        v
+------------------+
| EC2 / ECS / EKS  |
+------------------+

不正解の選択肢と理由

① セキュリティグループ(不正解)

理由

  • セキュリティグループは「許可ルールのみ」
  • 国単位での拒否はできない
  • CIDR拒否ルールは存在しない

③ ネットワークACL(不正解)

理由

  • IP範囲では制御できるが、
  • 「国単位」のCIDR管理は現実的ではない
  • 国のIPレンジは頻繁に変わるため運用不能

なぜこの3つを組み合わせるのか?

レイヤーサービス目的
DNSRoute53最初に遮断
CDNCloudFront配信段階で遮断
L7AWS WAFHTTPレベル制御

多層防御(Defense in Depth)設計がベストプラクティスです。

試験での考え方(超重要)

国単位ブロックと書いてあったら

Route53 / CloudFront / WAF を疑え

CIDRと書いてあったら

セキュリティグループ / NACL は罠

まとめ

  • 国別アクセス制御は IP制御ではなく「Geo制御」
  • 正解:
    • Route53 位置情報ルーティング
    • AWS WAF Web ACL
    • CloudFront 地域制限
  • 不正解:
    • セキュリティグループ(拒否できない)
    • ネットワークACL(国単位管理不可)

他にもAWS SAA 試験前の備忘録としてこのようなブログを残していきます。
それではまた来週👋

ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。

  • 選考ではありません
  • 履歴書不要
  • 技術の話が中心
  • 所要時間30分程度
  • オンラインOK

エンジニアと話してみる