CloudFrontと接続したS3の画像を勝手に使われる
ある日、携わっているメディアで使用している、S3に置いてある画像が直リンクで勝手に使われていることが発覚しまして、相手方に問い合わせたりするものの音沙汰なし。。
そこで何か良い方法がないかと思い、調べてみるとAWSのサービスでWAFというのがあったので、使ってみることにしました。
WAF自体は、CloudFrontやALB、API Gatewayの前に置いて使うものなので、S3単体だと使うことは出来ないものの、ちょうどCloudFrontを噛ましていたので、CloudFront+WAFで直リンクを防ぐことにしました。
WAFとは?
Web Application Firewallとは、ウェブアプリケーションの脆弱性を悪用した攻撃からウェブアプリケーションを保護するセキュリティ対策の一つ。
とのことで、上述の通り、CloudFrontやALBと一緒に使うことが出来るFirewallと考えればいいでしょう。
使用方法
昔は、WAFのルールを生成後にCloudFront側でアタッチしないといけなかったようですが、今は簡単です。
まずは、WAF & Shieldsの画面へ遷移し、Web ACLsを選択し、ACLの作成ボタンを押して、作成を始めます。
上の画像の通り、名称を入れ、CloudFrontと接続する為の設定を選択します。
Add my own rules and rule groupsを選択します。
名称を入れ、ブロックしたい条件を入れます。ここはORなどにして複数入れることも出来ます。
今回は、ある特定のドメインからのアクセスを防ぎたかったので、Headerのrefererにあるドメインが入っていたら、ブロックという設定にしました。
あとは、Nextを押して行けば、特に引っかかるところはなく、これだけで設定が完了して、アクセスブロックが出来るというお手軽さでした。
S3などを直接使用している場合には使えない方法ですが、手軽に使えるので、直接画像が使用されて困っている場合などには、試してみるといいかもしれません。