こんにちは、クラウドソリューション事業部の石垣です。
ついにきました。Amplify HostingのWAF!!ということで、ちょっと触ってみました。
はじめに
「Amplify HostingのWAF」とは書きましたが、正確には「Amplify HostingのFirewall機能がプレビューとしてリリースされました。これを有効にすると、AWS WAFがデプロイされる」というものになります。
https://docs.aws.amazon.com/amplify/latest/userguide/WAF-integration.html
触ってみる
Amplifyの画面にもきていますね。
有効化すると、実体はユーザー側のアカウントのWAFとしてデプロイされます。
※この時Amplify HostingのCloudFrontはユーザー側のアカウントにはありません。なお、関連付けリソースは空のままで不思議な感じがします。
ルールについて
Amplify側からの設定としては以下のルールを設定できるので順に見ていきます。
- Amplify が推奨するファイアウォール保護を有効化
- amplifyapp.com へのアクセスを制限
- IP アドレスの保護を有効にする
- 国の保護を有効にする
Amplify が推奨するファイアウォール保護を有効化
WAFのルールとして以下のルールに対応しています。
- AWS-AWSManagedRulesAmazonIpReputationList
- AWS-AWSManagedRulesCommonRuleSet
- AWS-AWSManagedRulesKnownBadInputsRuleSet
普段付与しているような基本のセットという感じですね。
amplifyapp.com へのアクセスを制限
これは何かというと、通常はカスタムドメインを付与した後もデフォルトのxxxx.amplify.com のドメインでのアクセスもできてしまうわけですが、その際の接続はカスタムドメインのみに絞りたいという時に使用するものかと思います。
以下のようなルールとなります。
IP アドレスの保護を有効にする
IPv4もしくはIPv6で指定して、許可もしくはブロックを設定できるものとなります。
この時WAF側ではIP setsに入力したIPが設定されてそれがAllow もしくはBlockのルールで使われるという感じでした。
国の保護を有効にする
※これは現状IPアドレスの保護を有効にしていると有効にできない排反なルールのようです。
WAF側ではGeoMatchルールですね。
ログ
現状、Amplify側からログを設定することはまだできないようです。
以下の画面からログにリンクされていそうですが、これは現状WAFの画面へのリンクです。
WAF側でもLoggingはDisabledですね。
所感
まずは待ちに待ったWAFが出たということでよかったです。今後Amplifyを選択することも増えていきそうですね。
IP制限したい社内ツールをAmplifyでさくっとHostingというようなのもしやすくなると思います。
今後に期待という点では以下あたりでしょうか?
- 現状、Amplify App全体にWAFが適用されます。ブランチごとに使い分けできるとなお嬉しい局面は出てきそうです。
- Production環境は全公開、Staging環境やDevelop環境はIP制限したい、など
- 現状で上記を設定しようとすると、Production環境とStaging環境以下とで別のAppとして作成して別のWAFを作成する、という感じになりそうです。(そもそもAWSアカウントを分けて運用することも多いかと思いますので、ここはそんなに気にしなくてもいいかもしれませんが)