Closed6

TerraformでAWSのバックエンドAPIのセキュリティを固める

スースー

概要

攻撃を受けたりするのを防ぐためにAPIのアクセスをパブリックからもう少し絞る

選択肢

  1. ALBでパスを使って制限を行う
  2. AWS WAFを使うように修正を行う
  3. フロントエンドから独自のHTTPヘッダーをつけるようにして、そのヘッダーがなければ、基本的に全般のアクセスを拒否(APIのアクセスを制限する場合にのみ有効)

といった選択肢が多分ある。
Nginxで制限する方法も考えたが、よく考えるとALBを噛ませている時点でアクセスが全てそこからになってしまうため、意味がない。

スースー

ALBによる制限

https://dev.classmethod.jp/articles/alb-listerrule-iprestrict/

特定パスのIPアドレス制限はAWS WAFでも可能です。AWS WAFと比較するとAWS WAFの料金が不要である点や、固定レスポンスを利用できる点で優れています。制限したいIPアドレスが多い場合はAWS WAFが適している

これをterraformの設定で行うと良さそう

https://qiita.com/tt2004d/items/6ffd26612f6c9c9ba047

公式ドキュメント

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-listeners.html

スースー

ALBで制限する

日本国内のみにしたい

IPアドレスを使った制限をするしかないが

http://www.cgis.biz/tools/access/

ここのサイトに並んでいる日本に割り当てられているアドレスの数を見ると、これをALBに設定するのはかなりきつい。
これやるなら素直にWAFを使った方が良さそうな気もする。

スースー

ALBで制限する

日本国内のみにしたい

IPアドレスを使った制限をするしかないが

http://www.cgis.biz/tools/access/

ここのサイトに並んでいる日本に割り当てられているアドレスの数を見ると、これをALBに設定するのはかなりきつい。
これやるなら素直にWAFを使った方が良さそうな気もする。

https://qiita.com/non0311/items/21516b8bdc0a0fca69fb

↑設定する方法として一覧はこちらが良さそうだった。

このスクラップは2022/01/02にクローズされました