AWS WAF コンソールも CloudFront のマルチテナント機能に対応していたので設定してみた
いわさです。
先日 CloudFront にまぁまぁ大きなアップデートが来まして、従来のディストリビューションとは違うマルチテナントディストリビューションというものが登場しました。
この機能でも従来のディストリビューションと同様に AWS WAF の機能を有効化させることが出来ます。
上記アップデートにあわせて AWS WAF の機能としてもマルチテナントディストリビューションの機能がサポートされていたので、こちらからも使ってみます。
本記事ではマルチテナントディストリビューションや、ディストリビューションテナント自体の説明はしませんので冒頭紹介の記事をご確認ください。
ディストリビューションテナント
マルチテナントディストリビューション自体に Web ACL を関連付けしてテナント全体の共通設定とさせることも出来ますし、ディストリビューションテナントごとに設定することも出来ます。
ディストリビューションテナントに対して WAF コンソールで設定する方法が従来のディストリビューションと少し異なるので、こちらから行ってみます。
WAF コンソールから Global (CloudFront) を選択します。
従来の CloudFront と同様に Global resources を選択します。
対象に「CloudFront Distribution Tenants」が追記されていることが確認出来ます。
新たにリソースタイプで「CloudFront Distribustion Tenants」が選択できるようになっているのでこちらを選択します。
そうするとリソースでディストリビューションテナントを選択することが出来ます。
設定方法はこれだけですね。
設定後にマルチテナントディストリビューションを確認してみると、WAF コンソールで関連付けしたテナントの最終更新日時が更新されていました。
対象のディストリビューションテナントのセキュリティタブを確認してみると、Web ACL が関連づいていることが確認出来ました。
一方で、マルチテナントディストリビューションには関連付けがされていませんね。
WAF コンソールのリソースタイプ「CloudFront Distribution Tenants」は名前のとおり、他のテナントへの影響なく指定したディストリビューションテナントへのみ設定がされます。
マルチテナントディストリビューション
一方でマルチテナントディストリビューションに対して設定する方法もあります。
CloutFront コンソールのセキュリティタブで既存 Web ACL を関連付けることもできるのですが、WAF コンソール上からも設定が出来ました。
通常の CloudFront ディストリビューションと同じようにリソースタイプ「CloudFront Distributions」を選択します。ドメインが割り当てられていないディストリビューションはマルチテナントディストリビューションですね。
一点だけ通常のディストリビューションと異なる点があり、関連付け操作を行おうとすると次の確認画面が表示されます。
関連づいているすべてのテナントに影響が出るけどいいのか?と言われています。
設定後の様子です。
WAF ログにテナントコンテキストが設定される
今回のマルチテナント対応にあたって、WAF のログにテナントコンテキストにもなるディストリビューションテナントの ID が設定されるようになっています。
ログにテナントコンテキストを設定し、テナントごとに可観測性を実装するのはマルチテナント SaaS のベストプラクティスとされており、非常に良い機能だと思います。
さいごに
本日は AWS WAF コンソールも CloudFront のマルチテナント機能に対応していたので設定してみました。
多くの場合はマルチテナントディストリビューションを作成する際に設定すると思いますが、WAF コンソール側から関連付けの追加や更新をしたい時の手順として参考にしてください。