Open37

React-routeで構成したSPAアプリをWAFでメンテナンスモードにするには

まなさすまなさす
まなさすまなさす

SwitchをRoutesに書き換えるだけでいいらしいが、http://localhost:3000/にアクセスしても何もでない。間違えてるのかな

まなさすまなさす

あ、index.tsxにおまじない書き忘れてたからRouter使えんよってなってたのか理解 ごめんね

まなさすまなさす
まなさすまなさす

githubで自動デプロイにしようかと思ったけど後で消し忘れて死ぬとか起きそうなので手動デプロイにします

まなさすまなさす

amplify入門するだけならこれで終わりか!!!!!まあコマンド打つだけならそーね、じゃあWAFいきまっしょい

まなさすまなさす

で、WAFで何がやりたいのかっていうと、これがやりたい!
これがやりたいのだけど………はて、これどうやってやればいいんじゃろな

https://go-to-k.hatenablog.com/entry/2021/08/14/022812

まなさすまなさす

CloudFormationのテンプレートファイルっていってるからなんかデキる人はこれをぺぺぺーって動かすだけで動くんじゃろけど、はて…。

まなさすまなさす

そもそもWAFって誰やねんって話だけどWeb Application Firewallらしい。つまりオンプレサーバでしてたようなFirewallの設定をここでできるって話だな それならAWSのコンソール開いてみればわかりそうかしら

まなさすまなさす

とはいえ既存環境だとテキトーに変更するわけにもいかんだろうし既存環境がamplify hostingだった場合はまあ…考えよう

まなさすまなさす

思ったより時間かかりそうなんで休憩入っちゃいましょう うんうん

まなさすまなさす

amplifyの権限しかつけてなくてcloudfrontへのデプロイで落ちちゃってたから権限つけて再デプロイ流してごはん

まなさすまなさす

デプロイうまくいったけどいきなりアクセスDenyされてるwwwWAFあけてあげないと通らないのはオンプレと同じなのね

まなさすまなさす

ふつーにWAFを試したいだけなんじゃがいも…とりあえず読み進めて飛ばせる手順は飛ばしてやってみるか

まなさすまなさす

おっっけ〜〜〜〜〜〜〜〜〜なんとなく理解したからまとめるぜ

  • 大前提としてWAFとSPA(react-router)を一緒に利用する時に注意が必要
    • なぜならSPAにおける『https://hogehoge.comhttps://hogehoge.com/about』はサーバを介していない。サーバを介していない以上は『サーバアクセスに対する壁であるファイアウォールは機能しない』。
    • amplifyの『書き換えて、リダイレクト』という機能も使えそうだが、これもWAFの応用みたいなものだと思うので、SPAのルーティングでは機能しない。
  • SPA内におくとファイアウォールが機能しないことへの回避策としては『SPAのリソースはすべて塞ぎ、メンテページはSPAの外に置いておく』という手法が有効となる
  • WAFの方がルールの付け替えが楽(amplifyは追加削除しかないので、メンテの度に追加と削除を行うことになる)なので、WAFを押したいが、WAFはamplify資材には有効にならないため、S3+cloudfront構成への移行が難しい場合は、amplifyのルールポチポチが良さそう