翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS WAF ウェブとユーザープールACLの関連付け
AWS WAF はウェブアプリケーションファイアウォールです。 AWS WAF ウェブアクセスコントロールリスト (ウェブ ACL) を使用すると、ホストされた UI および Amazon Cognito APIサービスエンドポイントへの不要なリクエストからユーザープールを保護できます。ウェブACLを使用すると、ユーザープールが応答するすべてのHTTPSウェブリクエストをきめ細かく制御できます。 AWS WAF ウェブ の詳細についてはACLs、「 AWS WAF デベロッパーガイド」の「ウェブアクセスコントロールリスト (ウェブACL) の管理と使用」を参照してください。
ユーザープールACLに関連付けられた AWS WAF ウェブがある場合、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ないようにしてください。 -
ユーザープールACLに関連付けられた AWS WAF ウェブがあり、ウェブ内のルールに ACLが表示されるとCAPTCHA、ホストされた UI TOTP登録で回復不可能なエラーが発生する可能性があります。CAPTCHA アクションがあり、ホストされた UI に影響を与えないルールを作成するにはTOTP、「」を参照してくださいホストされた UI ACL用の AWS WAF ウェブの設定 TOTP MFA。
AWS WAF は、次のエンドポイントへのリクエストを検査します。
- ホストされた UI
-
ユーザープールエンドポイントとホストされた UI リファレンス 内のすべてのエンドポイントへのリクエスト。
- パブリックAPIオペレーション
-
認証に AWS 認証情報APIを使用しない Amazon Cognito へのアプリからのリクエスト。これには、InitiateAuth、、 RespondToAuthChallengeなどのAPIオペレーションが含まれますGetUser。の範囲にあるAPIオペレーションでは AWS WAF 、 AWS 認証情報による認証は必要ありません。これらは、認証されていないか、セッション文字列またはアクセストークンで承認されています。詳細については、「Amazon Cognito ユーザープールの認証済みおよび未認証APIオペレーション」を参照してください。
ルールに一致するリクエストCAPTCHAに応じて、 をカウント、許可、ブロック、または提示するルールアクションACLを使用して、ウェブ内のルールを設定できます。詳細については、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「アクセス許可」を参照してください。 AWS WAF
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowWebACLUserPool", "Effect": "Allow", "Action": [ "cognito-idp:ListResourcesForWebACL", "cognito-idp:GetWebACLForResource", "cognito-idp:AssociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:
123456789012
:userpool/*" ] }, { "Sid": "AllowWebACLUserPoolWAFv2", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL", "wafv2:AssociateWebACL", "wafv2:DisassociateWebACL", "wafv2:GetWebACLForResource" ], "Resource": "arn:aws:wafv2:*:123456789012
:*/webacl/*/*" }, { "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:DisassociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:123456789012
:userpool/*" ] } ] }
アクセスIAM許可を付与する必要がありますが、リストされているアクションはアクセス許可のみであり、 API オペレーション に対応していません。
ユーザープール AWS WAF に対して をアクティブ化し、ウェブを関連付けるには ACL
-
Amazon Cognito コンソール
にサインインします。 -
ナビゲーションペインで [User Pools] (ユーザープール) を選択してから、編集するユーザープールを選択します。
-
[User pool properties] (ユーザープールのプロパティ) タブを選択します。
-
[AWS WAF] の隣にある [Edit] (編集) を選択します。
-
でAWS WAF、ユーザープール AWS WAF で使用する を選択します。
-
既に作成したAWS WAF ウェブACLを選択するか、 ACL でウェブを作成する AWS WAF を選択して、新しい AWS WAF セッションでウェブを作成します AWS Management Console。
-
[Save changes] (変更の保存) をクリックします。
ウェブを AWS Command Line Interface または のユーザープールACLにプログラムで関連付けるにはSDK、 AssociateWebACLから を使用します AWS WAF API。Amazon Cognito には、ウェブ を関連付ける個別のAPIオペレーションはありませんACL。
AWS WAF ウェブのテストとログ記録 ACLs
ウェブ でルールアクションをカウントに設定するとACL、 はルールに一致するリクエストの数にリクエスト AWS WAF を追加します。ユーザープールACLでウェブをテストするには、ルールアクションをカウントに設定し、各ルールに一致するリクエストの量を考慮します。例えば、ルールをブロックアクションに設定した場合に、通常のユーザートラフィックと判断される多数のリクエストと一致するときは、ルールの再設定が必要になる場合があります。詳細については、「 デベロッパーガイド」のAWS WAF 「保護のテストと調整」を参照してください。 AWS WAF
リクエストヘッダーを Amazon CloudWatch Logs ロググループ、Amazon Simple Storage Service (Amazon S3) バケット、または Amazon Data Firehose にログ AWS WAF 記録するように を設定することもできます。ユーザープールで実行する Amazon Cognito リクエストは、 x-amzn-cognito-client-id
と APIによって識別できますx-amzn-cognito-operation-name
。ホストされた UI リクエストには、x-amzn-cognito-client-id
ヘッダーのみが含まれます。詳細については、「 デベロッパーガイド」の「ウェブACLトラフィックのログ記録」を参照してください。 AWS WAF
AWS WAF ウェブACLsは、Amazon Cognito の高度なセキュリティ機能 の料金
ログ記録 AWS WAF リクエストデータには、ログをターゲットとするサービスによる追加請求が適用されます。詳細については、AWS WAF 「 デベロッパーガイド」の「ウェブACLトラフィック情報のログ記録の料金」を参照してください。