翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Mail Manager のログ記録は、Mail Manager オペレーションを詳細に可視化します。ログ記録機能は、設定されたルールセットとルールに基づいて、イングレスエンドポイントでの最初の受信からメッセージ処理までのメッセージフローを追跡します。
Mail Manager では、次のリソースのログ記録が提供されます。
-
イングレスエンドポイント
-
ルールセット
Mail Manager は、Amazon CloudWatch Logs サービスを使用してログを配信し、CloudWatch Logs、Amazon S3、または Amazon Data Firehose のいずれかの送信先にログを配信できます。
Mail Manager ログ配信の設定
動作しているログ配信は、次の 3 つの要素で構成されます。
-
DeliverySource – ログを送信するリソースを表す論理オブジェクト。イングレスエンドポイントまたはルールセットです。
-
DeliveryDestination – 実際の配信先 (CloudWatch Logs、S3、または Firehose) を表す論理オブジェクト。
-
配信 – 配信ソースを配信先に接続します。
このセクションでは、これらのオブジェクトを作成する方法と、Mail Manager のログ記録を使用するために必要なアクセス許可について説明します。
前提条件
Mail Manager のログ記録を設定する前に、以下を確認してください。
-
Ingress エンドポイントまたはルールセットを作成しました。
-
Mail Manager リソースから配信先にログを配信するために必要な CloudWatch Logs と SES Mail Manager のアクセス許可があります。
必要なアクセス許可
Amazon CloudWatch Logs ユーザーガイドの「ログ記録」セクションで説明されているように、追加のアクセス許可 [V2] を必要とする、提供されたログのアクセス許可を設定し、配信先に対応するアクセス許可を適用する必要があります。 Amazon CloudWatch
さらに、Mail Manager では、ログ配信を設定するために次のユーザーアクセス許可が必要です。
-
ses:AllowVendedLogDeliveryForResource
– 例に示すように、Mail Manager がユーザーに代わって特定のリソースのログを CloudWatch Logs に配信できるようにするために必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSesMailManagerLogDelivery",
"Effect": "Allow",
"Action": [
"ses:AllowVendedLogDeliveryForResource"
],
"Resource" [
"arn:aws:ses:us-east-1:1234567890:mailmanager-ingress-point/inp-xxxxx",
"arn:aws:ses:us-east-1:1234567890:mailmanager-rule-set/rs-xxxx"
]
}
]
}
SES コンソールでのログ記録の有効化
コンソールを使用して Mail Manager リソースのログ記録を有効にするには:
-
https://console.aws.amazon.com/ses/
://www.com で SES コンソールを開きます。 -
Mail Manager のナビゲーションペインで、イングレスエンドポイントまたはルールセットを選択し、ログ記録を有効にする特定のリソースを選択します。
-
リソースの詳細ページで、ログ配信の追加 を展開し、CloudWatch Logs、S3、または Firehose への配信を選択します。
-
選択した送信先の配信を追加ダイアログボックスで、プロンプトに従って送信先タイプに固有のログ配信オプションを設定します。
-
(オプション) 追加設定を展開して、レコードのフィールド、出力形式、フィールド区切り文字、および送信先タイプに固有のその他のパラメータをカスタマイズします。
CloudWatch Logs API を使用したログ記録の有効化
CloudWatch Logs API を使用して Mail Manager リソースのログ記録を有効にするには、以下が必要です。
-
を使用して配信ソースを作成します
PutDeliverySource
。 -
を使用して配信先を作成します
PutDeliveryDestination
。 -
を使用して、1 つの配信ソースと 1 つの配信先をペアリングして配信を作成します
CreateDelivery
。
Amazon CloudWatch Logs ユーザーガイドの「ログ記録」セクションで、特定のログ記録先に必要なすべてのアクセス許可を持つ IAM ロールとアクセス許可ポリシーの例を表示し、CloudWatch Logs、S3、Firehose などの特定のログ記録先リソースの更新を許可するなど、ログ記録先に対する IAM ロールとアクセス許可ポリシーの例に従います。
注記
DeliverySource を作成する場合、 は Ingress エンドポイント ARN またはルールセット ARN resourceArn
で、SES Mail Manager ログlogType
の は に設定する必要がありますAPPLICATION_LOGS
。
ログの解釈
ログを使用して、Mail Manager によって処理される受信メッセージのフローに関する追加のインサイトを得ることができます。
次のセクションでは、各リソースのログのさまざまなフィールドについて詳しく説明します。
イングレスエンドポイントログ
ログはメッセージごとに生成されます。
{
"resource_arn": "arn:aws:ses:us-east-1:1234567890:mailmanager-ingress-point/inp-xxxxx",
"event_timestamp": 1728562395042,
"ingress_point_type": "OPEN" | "AUTH",
"ingress_point_name": "MyIngressPoint",
"message_id": "0000llcki1jmushh817gr586f963a5inhkvnh81",
"message_size_bytes": 100000,
"rule_set_id": "rs-xxxx",
"sender_ip_address": "1.2.3.4",
"smtp_mail_from": "someone@domain.com",
"smtp_helo": "domain.com",
"tls_protocol": "TLSv1.2",
"tls_cipher_suite": "TLS_AES_256_GCM_SHA384",
"recipients": ["me@mydomain.com", "you@mydomain.com", "they@mydomain.com"],
"ingress_point_metadata": { // only applies to AUTH Ingress Endpoint
"password_version": "",
"secrets_manager_arn": ""
}
}
注記
ログは、イングレスエンドポイントによって受け入れられたメッセージに対してのみ作成されます。すべての受信メッセージを拒否するイングレスエンドポイントは、ログを発行しません。
CloudWatch Logs Insights クエリの例
sender@domain.com「」からメッセージをクエリします。
fields @timestamp, @message, @logStream, @log
| filter smtp_mail_from like /sender@domain.com/
| sort @timestamp desc
| limit 10000
サイズが 5000 バイトを超えるメッセージをクエリします。
fields @timestamp, @message, @logStream, @log
| filter message_size_bytes > 5000
| sort @timestamp desc
| limit 10000
ルールセットログ
ログは、アクションごとにメッセージごとに生成されます。つまり、ルールセットのルールのアクションによってメッセージが処理されるたびにログレコードが生成されます。
{
"resource_arn": "arn:aws:ses:us-east-1:1234567890:mailmanager-rule-set/rs-xxxx",
"event_timestamp": 1732298258254,
"message_id": "0000llcki1jmushh817gr586f963a5inhkvnh81",
"rule_set_name": "MyRuleSet",
"rule_name": "MyRule",
"rule_index": 1,
"recipients_matched": ["recipient1@domain.com", "recipient2@domain.com"],
"action_metadata": {
"action_name": "WRITE_TO_S3" | "DROP" | "RELAY" | "DELIVER_TO_MAILBOX" | etc.,
"action_index": 2,
"action_status": "SUCCESS" | "FAILURE" | "IN_PROGRESS",
"action_failure": "Access denied"
}
}
-
recipients_matched
– アクションが実行されているルールの条件に一致する受信者。 -
rule_index
– ルールセット内のルールの順序。 -
action_index
– ルール内のアクションの順序。 -
action_status
– 特定のメッセージに対してアクションを実行した結果を示します。 -
action_failure
– アクションの失敗の詳細を示します (アクションが失敗した場合にのみ適用されます)。たとえば、指定されたロールにアクションを実行するための十分なアクセス許可がない場合です。
さらに、ルール条件がメッセージと一致しない場合、つまり、メッセージがルールによって処理されない場合、メッセージがルールセットによって処理されたが、そのルールセットに対して実行されたアクションがないことを示す 1 つのログが に発行されます。
{
"resource_arn": "arn:aws:ses:us-east-1:1234567890:mailmanager-rule-set/rs-xxxx",
"event_timestamp": 1732298258254,
"message_id": "0000llcki1jmushh817gr586f963a5inhkvnh81",
"rule_set_name": "MyRuleSet",
"rule_name": "MyRule",
"rule_index": 1,
"recipients_matched": [],
}
CloudWatch Logs Insights クエリの例
特定の message-id をクエリします (ルールセットを介したメッセージフローを示します)。
fields @timestamp, @message, @logStream, @log
| filter message_id = 'message-id-123'
| sort @timestamp desc
| limit 10000
失敗した WRITE_TO_S3 アクションをクエリします。
fields @timestamp, @message, @logStream, @log
| filter action_metadata.action_name = 'WRITE_TO_S3'
and action_metadata.action_status = 'FAILURE'
| sort @timestamp desc
| limit 10000
ルールセットの 2 番目のルールによって処理されなかったメッセージ (メッセージはルールの条件を満たしていません) をクエリします。
fields @timestamp, @message, @logStream, @log
| filter recipients_matched = '[]'
and rule_index = 2
| sort @timestamp desc
| limit 10000