目次
1. はじめに
2022年8月11日 PTD に Amazon Cognito で AWS WAF の設定が可能になりました。
Amazon Cognito ユーザープールやホストされている UI を保護することができます。
Amazon Cognito における AWS WAF のネイティブサポートが開始
2. Amazon Cognito とは
Amazon Cognito は、ウェブアプリケーションおよびモバイルアプリに簡単にユーザーのサインアップ/サインインおよびアクセスコントロールの機能を追加できるサービスとなります。Apple、Facebook、Google、Amazon などのソーシャル ID プロバイダー、SAML 2.0 および OpenID Connect によるエンタープライズ ID プロバイダーを使用したサインインをサポートしています。
3. 設定方法
対象の ACL の「Associated AWS resources」を表示して「Add AWS resources」を選択します。
Cognito が選択できるようになっています。
※ Cognito へのアクセス権限が不足している場合、全ての項目が表示できないことがあるため必要に応じて権限を付与してください。
上記の設定を行うことで、以下のような項目についてWAFで検査することができるようになります。
- ホストされた UI
- 公開 API 操作
制限事項
公式情報を確認すると以下の制約事項がありました。
- 1 つのウェブ ACL をユーザー プールに関連付けることができます。
- リクエストにより、AWS WAF が検査できる制限を超えるペイロードが発生する可能性があります。
- AWS のマネージドルールの AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) のルールグループは利用できません。
Associating an AWS WAF web ACL with a user pool
4. 利用方法
AWS WAF では IP や国でのマッチルールが作成可能ですので、そもそも認証を受ける対象自体を絞り込むことが可能です。特定の拠点からのみの接続で認証も行うということであれば、特定の IP 以外を BLOCK というルールを作成することで、より強固なセキュリティを構築することが可能です。
また、CAPTCHA ルールを作成することも可能ですので、ボット対策も AWS WAF で実現可能です。CAPTCHA ルールの詳しい情報については過去のブログを参照してください。
様々な制限を AWS WAF 上に集約することになるので管理するという意味でも嬉しいアップデートになったと思います。
5. WafCharm での対応
WafCharm では現在のところ、Amazon Cognito の ACL への対応予定はございません。
6. おわりに
AWS WAF で制限をかける機会が今後ますます増えていきそうなアップデートでした。
あまり AWS WAF を触ることがなく、どのようなルールが作れるかわからないといった方は、過去の WafCharm ブログも是非確認してみてください。