脅威保護 - Amazon Cognito

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

脅威保護

脅威保護は、アカウント乗っ取りの兆候についてユーザーオペレーションをモニタリングし、影響を受けるユーザーアカウントのセキュリティ保護に自動的に応答する機能の集合用語です。脅威保護設定は、ユーザーが標準認証フローとカスタム認証フローでサインインするときに適用できます。

脅威保護は、ユーザーのサインイン、サインアウト、その他のアクティビティを詳細に説明するログを生成します。これらのログは、サードパーティーのシステムにエクスポートできます。詳細については、「ユーザーイベント履歴の表示とエクスポート」を参照してください。

脅威対策の施行の概念

脅威保護は、ユーザープールがユーザーアクティビティをモニタリングし、リスクレベルを割り当て、ログを生成する監査専用モードで開始されます。ベストプラクティスとして、フル機能モード を有効にする前に、監査専用モードで を 2 週間以上実行します。フル機能モードには、検出されたリスクの高いアクティビティと侵害されたパスワードに対する一連の自動応答が含まれます。監査専用モードでは、Amazon Cognito が実行している脅威評価をモニタリングできます。また、誤検出と否定について特徴をトレーニングするフィードバックを提供することもできます。

ユーザープールレベル、および個々のアプリケーションクライアントのレベルで、すべてのアプリケーションクライアントをカバーするように脅威保護の適用を設定できます。アプリケーションクライアントの脅威保護設定は、ユーザープール設定を上書きします。アプリクライアントの脅威保護を設定するには、Amazon Cognito コンソールのユーザープールのアプリ統合タブからアプリクライアント設定に移動します。ここでは、クライアントレベルの設定を使用して、アプリケーションクライアントのみの強制を設定できます。

さらに、標準認証タイプとカスタム認証タイプに対して脅威保護を個別に設定できます。

標準認証とカスタム認証の脅威保護

脅威保護を設定する方法は、ユーザープールとアプリケーションクライアントで実行している認証のタイプによって異なります。以下の各タイプの認証には、独自の強制モードと自動レスポンスを使用できます。

標準認証

標準認証は、ユーザーサインイン、サインアウト、パスワード管理で、ユーザー名とパスワードのフローとホストされた UI を使用します。Amazon Cognito 脅威保護は、ホストされた UI でサインインしたり、次のAPIAuthFlowパラメータを使用したりするときに、リスクの指標がないかオペレーションをモニタリングします。

InitiateAuth

USER_PASSWORD_AUTHUSER_SRP_AUTH。 侵害された認証情報機能はUSER_SRP_AUTH、サインイン時のパスワードにアクセスできず、このフローでイベントをモニタリングしたり、イベントに対してアクションを実行したりしません。

AdminInitiateAuth

ADMIN_USER_PASSWORD_AUTHUSER_SRP_AUTH。 侵害された認証情報機能はUSER_SRP_AUTH、サインイン時のパスワードにアクセスできず、このフローでイベントをモニタリングしたり、イベントに対してアクションを実行したりしません。

標準認証の強制モード監査のみまたはフル関数 に設定することができます。標準認証の脅威モニタリングを無効にするには、高度なセキュリティ機能を無効にします。

カスタム認証

カスタム認証は、カスタムチャレンジ Lambda トリガー によるユーザーサインインです。ホストされた UI でカスタム認証を実行することはできません。Amazon Cognito 脅威保護は、 InitiateAuth および の APIAuthFlowパラメータでサインインするときに、リスクの指標についてオペレーションをモニタリングCUSTOM_AUTHしますAdminInitiateAuth

カスタム認証の強制モードは、監査のみ、フル関数 、または強制なし に設定できます。強制なしオプションは、他の高度なセキュリティ機能に影響を与えることなく、カスタム認証の脅威モニタリングを無効にします。

脅威保護の前提条件

開始するには、以下が必要です。

  • アプリクライアントを持つユーザープール。詳細については、「ユーザープールの開始方法」を参照してください。

  • リスクベースの適応認証機能を使用するには、Amazon Cognito コンソールで多要素認証 (MFA) をオプションに設定します。詳細については、「ユーザープールMFAへの の追加」を参照してください。

  • E メール通知を使用している場合は、Amazon SESコンソールにアクセスして、E メール通知で使用する E メールアドレスまたはドメインを設定および検証します。Amazon の詳細についてはSES、「Amazon での ID の検証SES」を参照してください。

高度なセキュリティ機能と脅威保護の設定

以下の手順に従って、Amazon Cognito の高度なセキュリティ機能を設定します。

注記

Amazon Cognito ユーザープールコンソールでアプリケーションクライアントに別の脅威保護設定を設定するには、アプリケーション統合タブからアプリケーションクライアントを選択し、クライアントレベルの設定を使用する を選択します。

AWS Management Console
ユーザープールにアドバンストセキュリティを設定するには
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから既存のユーザープールを選択するか、ユーザープールを作成します。

  4. 高度なセキュリティタブを選択し、 のアクティブ化を選択します。

  5. 設定する脅威保護方法を選択します: 標準認証とカスタム認証 。カスタム認証と標準認証にはさまざまな強制モードを設定できますが、それらはフル関数モードでの自動応答の設定を共有します。

  6. [Edit] (編集) を選択します。

  7. 強制モード を選択します。検出されたリスクにすぐに対応を開始するには、フル関数を選択し、侵害された認証情報と適応認証の自動レスポンスを設定します。ユーザーレベルのログと で情報を収集するには CloudWatch、監査のみを選択します。

    アドバンストセキュリティ料金は、[Audit only] (監査のみ) および [Full function] (完全な機能) モードの両方で適用されます。詳細については、「Amazon Cognito の料金」を参照してください。

    アクションを有効にする前に、高度なセキュリティ機能を監査モードで 2 週間保持することをお勧めします。この間、Amazon Cognito はアプリユーザーの使用パターンを学習し、イベントフィードバックを提供してレスポンスを調整できます。

  8. [Audit only] (監査のみ) を選択した場合、[Save changes] (変更の保存) を選択してください。[Full function] (完全な機能) を選択した場合:

    1. 侵害された認証情報への応答は、 [Custom] (カスタム) アクションの実行または使用、または [Cognito defaults] (Cognito デフォルト) を選択します。Cognito デフォルトでは、

      1. サインイン,サインアップ, およびパスワードの変更時に、侵害された認証情報を検出します。

      2. 侵害された認証情報は、[Block sign-in] (サインインをブロックする) で応答します。

    2. [Compromised credentials] (侵害された認証情報) で [Custom] (カスタム) アクションを選択した場合、Amazon Cognito が [Event detection] (イベント検出) で使用するユーザープールアクション、および、Amazon Cognito に実行させたい [Compromised credentials responses] (侵害された認証情報への応答) を選択します。侵害された認証情報によるサインインをブロックまたはサインインを許可することができます。

    3. [Adaptive authentication] (アダプティブ認証) で、悪意のあるサインイン試行への応答方法を選択します。[Custom] (カスタム) アクションを実行または使用、または悪意のあるアクティビティの疑いに対応するために [Cognito defaults] (Cognito デフォルト) を選択します。[Cognito defaults] (Cognito デフォルト) を選択した場合、Amazon Cognito はすべてのリスクレベルでサインインをブロックし、ユーザーに通知しません。

    4. [Adaptive authentication] (アダプティブ認証) で、 [Custom] (カスタム) アクションを選択した場合、重要度レベルに基づいて検出されたリスクに対して、Amazon Cognito で実行する [Automatic risk response] (自動リスク対応) アクションを選択します。リスクのレベルに応じて対応を割り当てる場合、より高いレベルのリスクに対して、より制限の少ない対応を割り当てることはできません。リスクレベルには、次の対応を割り当てることができます。

      1. サインインを許可する - 予防策をとりません。

      2. オプション MFA - ユーザーが MFAを設定している場合、Amazon Cognito は、サインイン時に、追加SMSまたは時間ベースのワンタイムパスワード (TOTP) 要素の入力をユーザーに常に要求します。ユーザーが MFAを設定していない場合は、正常にサインインを続行できます。

      3. 必須 MFA - ユーザーが MFAを設定している場合、Amazon Cognito はサインイン時に常にユーザーに追加SMSまたはTOTP係数を提供する必要があります。ユーザーが MFAを設定していない場合、Amazon Cognito は を設定するように促しますMFA。MFA ユーザーに自動的に を要求する前に、 SMS の電話番号をキャプチャするかMFA、 の認証アプリを登録するメカニズムをアプリで設定しますTOTPMFA。

      4. サインインをブロックする - ユーザーがサインインできないようにします。

      5. ユーザーに通知する - Amazon Cognito が検出したリスクと応答に関する情報を E メールでユーザーに送信します。送信するメッセージの E メールメッセージテンプレートをカスタマイズできます。

  9. 前の手順で [Notify user] (ユーザーに通知する) を選択した場合、アダプティブ認証に使用する E メール配信設定と E メールメッセージテンプレートをカスタマイズできます。

    1. E メール設定 で、アダプティブ認証で使用するSESリージョン FROME メールアドレス FROM送信者名 、および REPLY-TO E メールアドレスを選択します。ユーザープールの E メールメッセージを Amazon Simple Email Service の統合方法の詳細については、「Amazon Cognito ユーザープールに使用する E メールの設定」を参照してください。

      ユーザーイベント履歴
    2. E メールテンプレートを展開して、E メールメッセージの HTMLおよびプレーンテキストバージョンの両方で適応認証通知をカスタマイズします。E メールメッセージテンプレートの詳細については、「メッセージテンプレート」を参照してください。

  10. IP アドレス例外を展開して、高度なセキュリティリスク評価に関係なく、常に許可またはブロックされるIPv4アドレス範囲またはIPv6アドレス範囲の常時許可または常時ブロックリストを作成します。IP アドレス範囲をCIDR表記で指定します (192.168.100.0/24 など)。

  11. [Save changes] (変更の保存) をクリックします。

API (user pool)

ユーザープールの高度なセキュリティ設定を設定するには、 UserPoolId パラメータを含むが、 ClientIdパラメータを含まないSetRiskConfigurationAPIリクエストを送信します。以下は、ユーザープールのリクエスト本文の例です。このリスク設定は、リスクの重大度に基づいて一連のアクションをエスカレートし、すべてのリスクレベルのユーザーに通知します。これは、侵害された認証情報ブロックをサインアップオペレーションに適用します。

この設定を適用するには、別の CreateUserPool または UpdateUserPoolAPIリクエストENFORCEDAdvancedSecurityMode を に設定する必要があります。この例では、 のようなプレースホルダーテンプレートの詳細については、{username}「」を参照してください検証メッセージと招待メッセージの設定

{ "AccountTakeoverRiskConfiguration": { "Actions": { "HighAction": { "EventAction": "MFA_REQUIRED", "Notify": true }, "LowAction": { "EventAction": "NO_ACTION", "Notify": true }, "MediumAction": { "EventAction": "MFA_IF_CONFIGURED", "Notify": true } }, "NotifyConfiguration": { "BlockEmail": { "Subject": "You have been blocked for suspicious activity", "TextBody": "We blocked {username} at {login-time} from {ip-address}." }, "From": "admin@example.com", "MfaEmail": { "Subject": "Suspicious activity detected, MFA required", "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA." }, "NoActionEmail": { "Subject": "Suspicious activity detected, secure your user account", "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password." }, "ReplyTo": "admin@example.com", "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com" } }, "CompromisedCredentialsRiskConfiguration": { "Actions": { "EventAction": "BLOCK" }, "EventFilter": [ "SIGN_UP" ] }, "RiskExceptionConfiguration": { "BlockedIPRangeList": [ "192.0.2.0/24","198.51.100.0/24" ], "SkippedIPRangeList": [ "203.0.113.0/24" ] }, "UserPoolId": "us-west-2_EXAMPLE" }
API (app client)

アプリケーションクライアントの高度なセキュリティ設定を設定するには、 UserPoolIdパラメータと ClientIdパラメータを含むSetRiskConfigurationAPIリクエストを送信します。以下は、アプリケーションクライアントのリクエスト本文の例です。このリスク設定は、ユーザープール設定よりも深刻であり、高リスクのエントリをブロックします。また、侵害された認証情報ブロックを適用して、サインアップ、サインイン、パスワードリセットの各オペレーションを行います。

この設定を適用するには、別の CreateUserPoolまたは UpdateUserPoolAPIリクエストENFORCEDAdvancedSecurityMode を に設定する必要があります。この例では、 のようなプレースホルダーテンプレートの詳細については、{username}「」を参照してください検証メッセージと招待メッセージの設定

{ "AccountTakeoverRiskConfiguration": { "Actions": { "HighAction": { "EventAction": "BLOCK", "Notify": true }, "LowAction": { "EventAction": "NO_ACTION", "Notify": true }, "MediumAction": { "EventAction": "MFA_REQUIRED", "Notify": true } }, "NotifyConfiguration": { "BlockEmail": { "Subject": "You have been blocked for suspicious activity", "TextBody": "We blocked {username} at {login-time} from {ip-address}." }, "From": "admin@example.com", "MfaEmail": { "Subject": "Suspicious activity detected, MFA required", "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA." }, "NoActionEmail": { "Subject": "Suspicious activity detected, secure your user account", "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password." }, "ReplyTo": "admin@example.com", "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com" } }, "ClientId": "1example23456789", "CompromisedCredentialsRiskConfiguration": { "Actions": { "EventAction": "BLOCK" }, "EventFilter": [ "SIGN_UP", "SIGN_IN", "PASSWORD_CHANGE" ] }, "RiskExceptionConfiguration": { "BlockedIPRangeList": [ "192.0.2.1/32","192.0.2.2/32" ], "SkippedIPRangeList": [ "192.0.2.3/32","192.0.2.4/32" ] }, "UserPoolId": "us-west-2_EXAMPLE" }