AWS WAF ウェブ ACL とユーザープールの関連付け - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS WAF ウェブ ACL とユーザープールの関連付け

AWS WAF はウェブアプリケーションファイアウォールです。 AWS WAF ウェブアクセスコントロールリスト (ウェブ ACL) を使用すると、ホストされた UI および Amazon Cognito API サービスエンドポイントへの不要なリクエストからユーザープールを保護できます。ウェブ ACL を使用すると、ユーザープールが応答するすべての HTTPS ウェブリクエストをきめ細かく制御できます。 AWS WAF ウェブ ACLs「 AWS WAF デベロッパーガイド」の「ウェブアクセスコントロールリスト (ウェブ ACL) の管理と使用」を参照してください。

ユーザープールに関連付けられた AWS WAF ウェブ ACL がある場合、Amazon Cognito は、ユーザーからのリクエストの選択された非機密ヘッダーとコンテンツを に転送します AWS WAF。 はリクエストの内容を AWS WAF 検査し、ウェブ ACL で指定したルールと比較し、Amazon Cognito にレスポンスを返します。

AWS WAF ウェブ ACLs と Amazon Cognito について知っておくべきこと

  • によってブロックされたリクエスト AWS WAF は、どのリクエストタイプのリクエストレートクォータにもカウントされません。 AWS WAF ハンドラーは、API レベルのスロットリングハンドラーの前に呼び出されます。

  • ウェブ ACL を作成すると、ウェブ ACL が完全に伝達されて Amazon Cognito で使用できるようになるまでに少し時間がかかります。伝達時間は数秒から数分までです。 は、ウェブ ACL が完全に伝達される前に関連付けようとWAFUnavailableEntityExceptionすると、 AWS WAF を返します。

  • ユーザープールには 1 つのウェブ ACL を関連付けることができます。

  • リクエストは、 AWS WAF が検査できる範囲を超えたペイロードになる可能性があります が Amazon Cognito からのオーバーサイズリクエストを処理する方法を設定する方法については、「 デベロッパーガイド」の「オーバーサイズリクエストコンポーネントの処理」を参照してください。 AWS WAF AWS WAF

  • AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) を使用するウェブ ACL を Amazon Cognito ユーザープールに関連付けることはできません。AWS-AWSManagedRulesATPRuleSet マネージドルールグループを追加するときに、ATP 機能を実装します。ユーザープールに関連付ける前に、ウェブ ACL がこのマネージドルールグループを使用していないことを確認してください。

  • ユーザープールに関連付けられた AWS WAF ウェブ ACL があり、ウェブ ACL のルールが CAPTCHA を提示すると、ホストされた UI TOTP 登録で回復不可能なエラーが発生する可能性があります。CAPTCHA アクションを含み、ホストされた UI TOTP には影響しないルールを作成するには、「ホストされた UI TOTP MFA の AWS WAF ウェブ ACL の設定」を参照してください。

AWS WAF は、次のエンドポイントへのリクエストを検査します。

ホストされた UI

ユーザープールフェデレーションエンドポイントとホストされた UI リファレンス 内のすべてのエンドポイントへのリクエスト。

公開 API オペレーション

認証に AWS 認証情報を使用しない Amazon Cognito API へのアプリケーションからのリクエスト。これには、InitiateAuth、、 などの API オペレーションが含まれますRespondToAuthChallengeGetUser。の範囲内にある API オペレーションには、 AWS 認証情報による認証 AWS WAF は必要ありません。これらは、認証されていないか、セッション文字列またはアクセストークンで承認されています。詳細については、「Amazon Cognito ユーザープールの認証済みおよび未認証の API オペレーション」を参照してください。

ウェブ ACL のルールを設定するには、ルールに一致するリクエストに応じてカウント許可ブロックCAPTCHA の表示を行うルールアクションを使用できます。詳細については、AWS WAF デベロッパーガイドの「AWS WAF のルール」を参照してください。ルールアクションに応じて、Amazon Cognito からユーザーに返す応答をカスタマイズできます。

重要

エラー応答をカスタマイズするオプションは、API リクエストを行う方法によって異なります。

  • ホストされた UI リクエストのエラーコードと応答本文をカスタマイズできます。ホストされた UI では、ユーザーが解決する CAPTCHA のみを表示できます。

  • Amazon Cognito ユーザープール API を使用して行うリクエストの場合は、ブロック応答を受信するリクエストの応答本文をカスタマイズできます。カスタムエラーコードを 400~499 の範囲で指定することもできます。

  • AWS Command Line Interface (AWS CLI) と AWS SDKs は、ブロックまたは CAPTCHA レスポンスを生成するリクエストにForbiddenExceptionエラーを返します。

ウェブ ACL をユーザープールに関連付ける

ユーザープールでウェブ ACL を使用するには、 AWS Identity and Access Management (IAM) プリンシパルに次の Amazon Cognito アクセス許可が必要です。アクセス AWS WAF 許可の詳細については、「 AWS WAF デベロッパーガイド」のAWS WAF 「API アクセス許可」を参照してください。

  • cognito-idp:AssociateWebACL

  • cognito-idp:DisassociateWebACL

  • cognito-idp:GetWebACLForResource

  • cognito-idp:ListResourcesForWebACL

IAM アクセス権限を付与する必要がありますが、リストされているアクションは権限のみで、API オペレーションには対応していません。

ユーザープール AWS WAF に対して をアクティブ化し、ウェブ ACL を関連付けるには

  1. Amazon Cognito コンソールにサインインします。

  2. ナビゲーションペインで [User Pools] (ユーザープール) を選択してから、編集するユーザープールを選択します。

  3. [User pool properties] (ユーザープールのプロパティ) タブを選択します。

  4. [AWS WAF] の隣にある [Edit] (編集) を選択します。

  5. AWS WAFユーザープール AWS WAF で使用する を選択します。

    ユーザープールを選択した状態で を使用する AWS WAF AWS WAF ダイアログボックスのスクリーンショット。
  6. 既に作成したAWS WAF ウェブ ACL を選択するか、「 でウェブ ACL AWS WAF を作成する」を選択して、 で新しい AWS WAF セッションに作成します AWS Management Console。

  7. [変更の保存] を選択します。

ウェブ ACL を AWS Command Line Interface または SDK のユーザープールにプログラムで関連付けるには、 AWS WAF API AssociateWebの ACL を使用します。Amazon Cognito には、ウェブ ACL を関連付ける個別の API オペレーションはありません。

AWS WAF ウェブ ACLsテストとログ記録

ウェブ ACL でルールアクションをカウントに設定すると、 はルールに一致するリクエストの数にリクエスト AWS WAF を追加します。ユーザープールでウェブ ACL をテストするには、ルールアクションをカウントに設定し、各ルールに一致するリクエストの量を考慮します。例えば、ルールをブロックアクションに設定した場合に、通常のユーザートラフィックと判断される多数のリクエストと一致するときは、ルールの再設定が必要になる場合があります。詳細については、「 デベロッパーガイドAWS WAF 」の「保護のテストとチューニング」を参照してください。 AWS WAF

リクエストヘッダー AWS WAF を Amazon CloudWatch Logs ロググループ、Amazon Simple Storage Service (Amazon S3) バケット、または Amazon Data Firehose に記録するように を設定することもできます。ユーザープール API で行った Amazon Cognito リクエストは、x-amzn-cognito-client-idx-amzn-cognito-operation-name で特定できます ホストされた UI リクエストには、x-amzn-cognito-client-id ヘッダーのみが含まれます。詳細については、AWS WAF デベロッパーガイドの「ウェブ ACL トラフィックのログ記録」を参照してください。

AWS WAF ウェブ ACLs には、Amazon Cognito の高度なセキュリティ機能 料金は適用されません。のセキュリティ機能はAmazon Cognito の高度なセキュリティ機能を AWS WAF 補完します。ユーザープールリクエストの検査のために、ユーザー pool. AWS WAF bills の両機能を個別にアクティブ化できます。詳細については、「AWS WAF の料金」を参照してください。

ログ記録 AWS WAF リクエストデータには、ログをターゲットとするサービスによる追加料金がかかります。詳細については、AWS WAF デベロッパーガイドの「ウェブ ACL トラフィックのログ記録の料金に関する情報」を参照してください。