AWSで出来る、特定国からのWebアクセスをブロックしたい

今だからこそ考えました、特定国からのWebアクセスブロック方法。
2022.03.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。
ご機嫌いかがでしょうか。
"No human labor is no human error" が大好きな ネクストモード株式会社 の吉井です。

Web サービスを AWS 上で展開しているシステムでは、特定国からのアクセスを遮断したいケースがあると思います。(深い意味はありません)
今回はその方法を紹介したいと思います。

CloudFront

対象のディストリビューションを開くと 地理的制限 というタブがあります。
編集ボタンを押すと以下の3つから制限タイプを選択可能です。
許可、または、ブロックを選択した場合はさらに国を指定します。

  • 制限なし
  • 許可リスト
  • ブロックリスト

ALB

インターネットとの接地点に ALB を利用しているケースです。

ALB に WAF を紐付けて特定国からのアクセスをブロックします。
詳細な手順は以下のブログを参照ください。

API Gateway

インターネットとの接地点に API Gateway を利用しているケースです。

こちらも WAF を紐付けてご利用ください。
詳細な手順は以下のブログを参照ください。

EC2

EC2 が直接インターネットに接しているケースを考えます。

前段に ALB を置くことを検討ください。
特定国からのアクセスをブロックする以外のセキュリティや可用性を考慮すると ALB を置きたいところです。

のっぴきならない事情で (無いと嬉しい) EC2 裸一貫で運用する場合は、仮想サーバーにインストールするタイプのセキュリティソフトウェアや iptables、.htaccess などで防御ください。

Lightsail

Lightsail は便利なサービスです。
Lightsail で WordPress 等を動かして運用している方もいらっしゃると思います。

このケースでも ALB を前段に置くことを検討ください。
やり方は以下に案内されていますが、若干手間がかかります。

マネジメントコンソール

少々毛色が違いますが、AWS マネジメントコンソールは特定 IP アドレスのみに限定することが可能です。(厳密には IAM ユーザーでのログイン)
自社拠点の IP アドレスで絞ることが一般的だと思います。

ただ、リモートワークが多いこのご時世では IP アドレス制限は難しいこともあると思います。
MFA デバイスでのログインを積極的に導入ください。

まとめ

サイバー攻撃は今までもこれから先も無くなることはないと思います。
例えば、国内居住者向け Web サービスであれば国単位でのアクセス許可やブロックを検討する価値はあるはずです。

また、AWS を使えば比較的容易にこのような対策を導入可能です。
この機会に Web システムの AWS 化を計画ください。

以上、吉井 亮 がお届けしました。