

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

# Amazon Cognito ユーザープールからのログのエクスポート
<a name="exporting-quotas-and-usage"></a>

CloudWatch ロググループなど AWS のサービス、追加のアクティビティの詳細ログを別のアクティビティに送信するようにユーザープールを設定できます。これらのログは、 のログよりも細かく AWS CloudTrail、ユーザープールのトラブルシューティングや[脅威保護](cognito-user-pool-settings-threat-protection.md)によるユーザーサインインアクティビティの分析に役立ちます。SMS および E メール通知エラーのログをストリーミングする場合、ユーザープールは `ERROR` レベルのログを CloudWatch ロググループに送信します。ユーザーサインインアクティビティのログをストリーミングする場合、ユーザープールは `INFO` レベルのログをロググループ、Amazon Data Firehose ストリーム、または Amazon S3 バケットに送信します。ユーザープールで両方のオプションを組み合わせることができます。

**Topics**
+ [

## ログエクスポートについて知っておくべきこと
](#exporting-quotas-and-usage-things-to-know)
+ [

## E メールおよび SMS メッセージ配信エラーのエクスポート
](#exporting-quotas-and-usage-messages)
+ [

## 脅威保護ユーザーアクティビティログのエクスポート
](#exporting-quotas-and-usage-user-activity)

## ログエクスポートについて知っておくべきこと
<a name="exporting-quotas-and-usage-things-to-know"></a>

**コストへの影響**  
Amazon Data Firehose、Amazon S3、CloudWatch Logs では、データインジェストと取得にコストが発生します。ログ記録設定が AWS 請求書に影響する可能性があります。詳細については次を参照してください:  
+ *Amazon CloudWatch の料金*の [Vended Logs](https://aws.amazon.com/cloudwatch/pricing/#Vended_Logs)。
+ [Amazon Data Firehose の料金](https://aws.amazon.com/firehose/pricing/)
+ [Amazon S3 の価格設定](https://aws.amazon.com/s3/pricing/)
ユーザーアクティビティログのエクスポートには、セキュリティ評価が含まれています。これはユーザープールの[脅威保護](cognito-user-pool-settings-threat-protection.md)の 1 つの機能です。Amazon Cognito は、脅威保護が**監査専用**モードまたは**フル機能**モードであり、ユーザープールでプラス[機能プラン](cognito-sign-in-feature-plans.md)が有効になっている場合にのみ、これらのログを生成します。

**ユーザーアクティビティログは `INFO` レベル**  
エクスポートされるユーザーアクティビティログは `INFO` エラーレベルに限られ、認証アクティビティの統計およびセキュリティ分析用の情報を提供します。`WARNING` および `ERROR` エラーレベル (スロットリングエラーなど) のメッセージは、エクスポートされるログに含まれません。

**ベストエフォート配信**  
Amazon Cognito からのログの配信はベストエフォートに基づきます。ユーザープールが配信するログの量と、CloudWatch Logs、Amazon S3、Firehose のサービスクォータは、ログの配信に影響を与える可能性があります。

**既存の外部ログは影響を受けません**  
これらのログオプションは、ユーザープールの以下のログ機能を置き換えたり変更したりするものではありません。  

1. サインアップやサインインなどの日常的なユーザーアクティビティの CloudTrail ログ。

1. CloudWatch メトリクスを使用した大規模なユーザーアクティビティの分析。
別に、CloudWatch Logs で [ユーザープールのインポート結果を CloudWatch コンソールに表示](cognito-user-pools-using-import-tool.md#cognito-user-pools-using-import-tool-cloudwatch) や [Lambda トリガーを使用したユーザープールワークフローのカスタマイズ](cognito-user-pools-working-with-lambda-triggers.md) のログを参照することもできます。Amazon Cognito と Lambda は、ユーザーアクティビティログ用に指定したロググループとは異なるロググループに、これらのログを保存します。

**ユーザープールにのみ適用されます**  
アイデンティティプールにログエクスポート機能はありません。

**ユーザーアクセス許可とサービスにリンクされたロールが必要です**  
ログのエクスポートを設定する AWS プリンシパルには、以下のトピックで説明するように、ターゲットリソースを変更するアクセス許可が必要です。Amazon Cognito はユーザーに代わって[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)を作成し、ターゲットリソースにログを配信するロールを引き受けます。  
Amazon Cognito からログを送信するための認可モデルの詳細については、「*Amazon CloudWatch Logs ユーザーガイド*」の「[AWS のサービスからのロギングを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions)」を参照してください。

**ログレベルはログタイプに排他的です**  
メッセージ配信ログは、`userNotification` タイプと `ERROR` エラーレベルのログです。高度なセキュリティユーザーアクティビティログは、`userAuthEvents` タイプと `INFO` エラーレベルのログです。`LogConfigurations` の 2 つのメンバーを組み合わせることができます。1 つは CloudWatch Logs の `userNotification` 用メンバーで、もう 1 つは Firehose、Amazon S3、または CloudWatch Logs の `userAuthEvents` 用メンバーです。  
ユーザーアクティビティログを複数の送信先に送信できません。CloudWatch Logs 以外の送信先にユーザー通知ログを送信できません。

**さまざまな設定オプション**  
ユーザー通知ログは、Amazon Cognito ユーザープール API または AWS SDK でのみ設定できます。API または Amazon Cognito コンソールで、高度なセキュリティユーザーアクティビティログを設定できます。両方を設定するには、[SetLogDeliveryConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetLogDeliveryConfiguration.html) のリクエスト例で示されているように API を使用します。

**大規模なリソースベースのポリシーで必要な追加設定**  
サイズが 5,120 文字を超えるリソースポリシーを持つロググループにログを送信するには、`/aws/vendedlogs` で始まるパスでロググループを設定します。詳細については、[「特定の AWS サービスからのログ記録の有効化](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html)」を参照してください。

**Amazon S3 でのフォルダの自動作成**  
Amazon S3 バケットに脅威保護ログをエクスポートするように設定すると、Amazon Cognito はバケット内に `AWSLogs` フォルダを作成する場合があります。このフォルダはすべての場合に作成されるわけではなく、作成されなくても設定は成功することがあります。

## E メールおよび SMS メッセージ配信エラーのエクスポート
<a name="exporting-quotas-and-usage-messages"></a>

E メールおよび SMS メッセージ配信エラーの場合、ユーザープールから**エラー**レベルのユーザー通知ログを配信できます。この機能を有効にすると、Amazon Cognito からログを送信する先のロググループを選択できます。ユーザー通知のログ記録は、ユーザープールが Amazon SNS と Amazon SES で配信した E メールや SMS メッセージのステータスを確認する場合に便利です。このログのエクスポートオプションは、[ユーザーアクティビティのエクスポート](#exporting-quotas-and-usage-user-activity.title)とは異なり、プラス機能プランを必要としません。

[SetLogDeliveryConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetLogDeliveryConfiguration.html) API リクエストで Amazon Cognito ユーザープール API を使用して詳細な通知ログを設定できます。ユーザープールのログ記録設定は、[GetLogDeliveryConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetLogDeliveryConfiguration.html) API リクエストで確認できます。リクエスト本文の例を次に示します。

```
{
   "LogConfigurations": [ 
      { 
         "CloudWatchLogsConfiguration": { 
            "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:example-user-pool-exported"
         },
         "EventSource": "userNotification",
         "LogLevel": "ERROR"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

これらのリクエストは、以下のアクセス許可を持つ AWS  認証情報を使用して認可する必要があります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
            {
            "Sid": "ManageUserPoolLogs",
            "Action": [
                "cognito-idp:SetLogDeliveryConfiguration",
                "cognito-idp:GetLogDeliveryConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "CognitoLog",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "CognitoLoggingCWL",
            "Action": [
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

ユーザープールのイベントの例を次に示します。このログスキーマは変更される可能性があります。一部のフィールドは NULL 値がログとして記録される場合があります。

```
{
    "eventTimestamp": "1687297330677",
    "eventSource": "USER_NOTIFICATION",
    "logLevel": "ERROR",
    "message": {
        "details": "String"
    },
    "logSourceId": {
        "userPoolId": "String"
    }
}
```

## 脅威保護ユーザーアクティビティログのエクスポート
<a name="exporting-quotas-and-usage-user-activity"></a>

プラス機能プランと脅威保護を備えたユーザープールは、ユーザーアクティビティイベントとして、ユーザープールでのユーザーのサインイン、サインアウト、その他の認証オペレーションに関する詳細とセキュリティ評価をログを記録します。独自のログ管理システムでユーザーアクティビティログを確認したり、アーカイブを作成したりできます。Amazon CloudWatch Logs ロググループ、Amazon Data Firehose ストリーム、Amazon Simple Storage Service (Amazon S3) バケットを使用できます。そこから、このデータを、運用プロセスに適合する方法でデータを分析、正規化、またはその他の方法で処理する他のシステムに取り込むことができます。このタイプのデータをエクスポートするには、ユーザープールでプラス機能プランを使用しており、ユーザープールで[脅威保護](cognito-user-pool-settings-threat-protection.md)がアクティブになっている必要があります。

これらのユーザーアクティビティログの情報を使用して、ユーザーサインインとアカウント管理アクティビティのプロファイルを表示できます。デフォルトでは、Amazon Cognito はこれらのイベントをユーザープールに基づくストレージにキャプチャします。次の例は、サインインし、リスク要因がないと評価されたユーザーのイベント例です。この情報は、`AdminListUserAuthEvents` API オペレーションで取得できます。以下は、その出力例です。

```
{
    "AuthEvents": [
        {
            "EventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
            "EventType": "SignIn",
            "CreationDate": "2024-06-27T10:49:59.139000-07:00",
            "EventResponse": "Pass",
            "EventRisk": {
                "RiskDecision": "NoRisk",
                "CompromisedCredentialsDetected": false
            },
            "ChallengeResponses": [
                {
                    "ChallengeName": "Password",
                    "ChallengeResponse": "Success"
                }
            ],
            "EventContextData": {
                "IpAddress": "192.0.2.1",
                "DeviceName": "Chrome 126, Windows 10",
                "Timezone": "-07:00",
                "City": "null",
                "Country": "United States"
            }
        }
    ],
    "NextToken": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222#2024-06-27T17:49:59.139Z"
}
```

Amazon Cognito コンソール内で、または [SetLogDeliveryConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetLogDeliveryConfiguration.html) API オペレーションを使用して、ユーザーアクティビティのログエクスポートをアクティブ化できます。

------
#### [ AWS マネジメントコンソール ]

1. 使用するバケットがまだない場合は、[S3 バケット](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)、[Firehose ストリーム](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)、または [CloudWatch ロググループ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)を作成します。

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)にサインインします。

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

1. リストから既存のユーザープールを選択するか、[ユーザープールを作成](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html)します。

1. **[高度なセキュリティ]** タブを選択します。**[ユーザーアクティビティログをエクスポートする]** を見つけて **[編集]** を選択します

1. **[ログ記録ステータス]** で、**[ユーザーアクティビティログのエクスポートをアクティブ化]** の横にあるチェックボックスをオンにします。

1. **ログ記録先**で、ログ AWS のサービス を処理する を選択します: **CloudWatch ロググループ**、**Amazon Data Firehose ストリーム**、または **S3 バケット**。

1. 選択すると、対応するリソースタイプがリソースセレクターに入力されます。リストからロググループ、ストリーム、またはバケットを選択します。**作成**ボタンを選択して、 AWS マネジメントコンソール 選択したサービスの に移動し、新しいリソースを作成することもできます。

1. **[変更を保存]** を選択します。

------
#### [ API ]

ユーザーアクティビティログの送信先のタイプを 1 つ選択します。

以下は、Firehose ストリームをログの送信先として設定する `SetLogDeliveryConfiguration` リクエスト本文の例です。

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "FirehoseConfiguration": {
            "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

以下は、Amazon S3 バケットをログの送信先として設定する `SetLogDeliveryConfiguration` リクエスト本文の例です。

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "S3Configuration": { 
            "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

以下は、CloudWatch ロググループをログの送信先として設定する `SetLogDeliveryConfiguration` リクエスト本文の例です。

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "CloudWatchLogsConfiguration": { 
            "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

ログ配信を設定するユーザーは、ユーザープール管理者で、かつ、次の追加のアクセス許可を持っている必要があります。

------
#### [ Amazon S3 ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageUserPoolLogs",
            "Action": [
                "cognito-idp:SetLogDeliveryConfiguration",
                "cognito-idp:GetLogDeliveryConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "ManageLogsS3",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ CloudWatch Logs ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageUserPoolLogs",
            "Action": [
                "cognito-idp:SetLogDeliveryConfiguration",
                "cognito-idp:GetLogDeliveryConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "ManageLogsCWL",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

------
#### [ Amazon Data Firehose ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageUserPoolLogs",
            "Action": [
                "cognito-idp:SetLogDeliveryConfiguration",
                "cognito-idp:GetLogDeliveryConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        },
        {
            "Sid": "ManageUserPoolLogsFirehose",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "iam:CreateServiceLinkedRole",
                "firehose:TagDeliveryStream"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

ユーザープールのイベントの例を次に示します。このログスキーマは変更される可能性があります。一部のフィールドは NULL 値がログとして記録される場合があります。

```
{
    "eventTimestamp": "1687297330677",
    "eventSource": "USER_ACTIVITY",
    "logLevel": "INFO",
    "message": {
        "version": "1",
        "eventId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "eventType": "SignUp",
        "userSub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",
        "userName": "test-user",
        "userPoolId": "us-west-2_EXAMPLE",
        "clientId": "1example23456789",
        "creationDate": "Wed Jul 17 17:25:55 UTC 2024",
        "eventResponse": "InProgress",
        "riskLevel": "",
        "riskDecision": "PASS",
        "challenges": [],
        "deviceName": "Other, Other",
        "ipAddress": "192.0.2.1",
        "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE33333",
        "idpName": "",
        "compromisedCredentialDetected": "false",
        "city": "Seattle",
        "country": "United States",
        "eventFeedbackValue": "",
        "eventFeedbackDate": "",
        "eventFeedbackProvider": "",
        "hasContextData": "true"
    },
    "logSourceId": {
        "userPoolId": "us-west-2_EXAMPLE"
    }
}
```