こんにちは。新卒のKatoです。
今回はAWS WAFによるWebアクセス制御の機能についてご紹介致します。
下記のような構成でWAFによるS3バケット内のオブジェクトへのアクセス制御を行っていきます。
[S3の設定] Cloud Front用にS3バケットを作成し、テスト用ファイルをアップロードしておきます。
バケットの静的ウェブサイトホスティングを有効にし、エンドポイントを介したアクセスを可能に設定します。
[Cloud Frontの設定] Origin Settingsの箇所でOrigin Domain NameにS3のエンドポイントを指定します。
StatusがDeployedになったらドメインにアクセスし、Cloud Front経由でS3内のオブジェクトにアクセス可能なことを確認します。
[WAFの設定] Get Startedをクリックし、WAFの作成を行います。
Web ACL nameを適当に入力します。
今回は指定のIPアドレスでのアクセス制御を行います。
IP match conditionsのCreate conditionをクリックし、マイIPを指定します。
マイIPからのアクセスを拒否するように設定し、作成したCloud Frontと関連付けを行います。
先ほどのCloud Frontのドメインにアクセスしてみると、下記のようなエラー画面が表示され、アクセスが拒否されます。
このように、WAFを利用すると、指定のIPからのアクセスを拒否したり、逆に指定のIPからのみアクセスを許可するといったカスタマイズが可能になります。
IPでのアクセス制御のほかにも、HTTPヘッダーやHTTP本文、URI文字列、SQLインジェクションなどを条件として指定することができ、Webアプリケーションを悪意のある攻撃から守ることが可能になります。