View a markdown version of this page

Journalisation de Mail Manager - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Journalisation de Mail Manager

La journalisation de Mail Manager fournit une visibilité détaillée de vos opérations de Mail Manager. La fonctionnalité de journalisation suit le flux de messages depuis la réception initiale aux points de terminaison d'entrée jusqu'au traitement des messages en fonction des ensembles de règles et des règles que vous avez configurés.

Mail Manager propose la journalisation des ressources suivantes :

  • Points de terminaison d'entrée

  • Ensemble de règles

Mail Manager fournit des journaux à l'aide d'Amazon CloudWatch Le service de journaux et les journaux peuvent être envoyés vers l'une des destinations suivantes : CloudWatch Journaux, Amazon S3, ou Amazon Data Firehose.

Configuration de la remise des journaux Mail Manager

La livraison d'un journal de travail comprend trois éléments :

  • DeliverySource — Objet logique qui représente la ressource qui envoie les journaux, soit un point de terminaison d'entrée, soit un ensemble de règles.

  • DeliveryDestination — Un objet logique qui représente la destination de livraison réelle (CloudWatch Logs, S3 ou Firehose).

  • Livraison — Connecte une source de livraison à une destination de livraison.

Cette section explique comment créer ces objets ainsi que les autorisations nécessaires pour utiliser la journalisation de Mail Manager.

Conditions préalables

Avant de configurer la journalisation de Mail Manager, assurez-vous que :

  1. Vous avez créé soit un Point de terminaison d'entrée ou un Ensemble de règles.

  2. Vous avez le nécessaire CloudWatch Journaux et autorisations SES Mail Manager pour envoyer des journaux depuis vos ressources Mail Manager vers leurs destinations de livraison.

Autorisations requises

Vous devrez configurer les autorisations relatives aux journaux vendus comme expliqué dans le Journalisation nécessitant des autorisations supplémentaires [V2] section du Amazon CloudWatch Guide de l'utilisateur des journaux et appliquez les autorisations correspondant à votre destination de livraison :

En outre, Mail Manager nécessite les autorisations utilisateur suivantes pour configurer la remise des journaux :

  • ses:AllowVendedLogDeliveryForResource — Nécessaire pour permettre à Mail Manager de vendre les journaux en votre nom à CloudWatch Journaux pour vos ressources spécifiques, comme indiqué dans l'exemple :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSesMailManagerLogDelivery", "Effect": "Allow", "Action": [ "ses:AllowVendedLogDeliveryForResource" ], "Resource": [ "arn:aws:ses:us-east-1:111122223333:mailmanager-ingress-point/inp-xxxxx", "arn:aws:ses:us-east-1:111122223333:mailmanager-rule-set/rs-xxxx" ] } ] }

Activation de la journalisation dans la console SES

Pour activer la journalisation des ressources de Mail Manager à l'aide de la console, procédez comme suit :

  1. Ouvrez la console SES à l'adresse https://console.aws.amazon.com/ses/.

  2. Dans le volet de navigation sous Gestionnaire de courrier, choisissez soit Points de terminaison d'entrée ou Ensembles de règles et sélectionnez la ressource spécifique que vous souhaitez activer pour la journalisation.

  3. Sur la page de détails de la ressource, développez Ajouter la livraison du journal et choisissez la livraison à l'une ou l'autre CloudWatch Journaux, S3, ou Tuyau à incendie.

  4. Dans le Ajouter la livraison à boîte de dialogue correspondant à la destination que vous avez choisie, suivez les instructions pour configurer les options de remise des journaux spécifiques au type de destination.

  5. (Facultatif) Agrandir Réglages supplémentaires pour personnaliser les champs de l'enregistrement, le format de sortie, le délimiteur de champ et d'autres paramètres spécifiques au type de destination.

Activer la journalisation à l'aide du CloudWatch API Logs

Pour activer la journalisation des ressources du gestionnaire de messagerie à l'aide du CloudWatch API Logs, vous devrez :

  1. Créez un DeliverySource avec PutDeliverySource.

  2. Créez un DeliveryDestination avec PutDeliveryDestination.

  3. Créez une livraison en associant exactement une source de livraison et une destination de livraison en utilisant CreateDelivery.

Vous pouvez consulter des exemples de politiques de rôles et d'autorisations IAM avec toutes les autorisations requises pour votre destination de journalisation spécifique dans le Journalisation nécessitant des autorisations supplémentaires [V2] section du Amazon CloudWatch Guide de l'utilisateur des journaux, et suivez les exemples de politiques d'autorisations et de rôles IAM pour votre destination de journalisation, notamment en autorisant les mises à jour de votre ressource de destination de journalisation spécifique, telle que CloudWatch Journaux, S3, ou Tuyau à incendie.

Note

Lors de la création d'un DeliverySource, le resourceArn peut être un ARN de point de terminaison d'entrée ou un ARN d'ensemble de règles. En fonction de DeliverySource, le logType peut être le suivant :

  • ARN du point d'entrée — APPLICATION_LOGS ou TRAFFIC_POLICY_DEBUG_LOGS

  • ARN de l'ensemble de règles — APPLICATION_LOGS

Interprétation des journaux

Les journaux peuvent être utilisés pour obtenir des informations supplémentaires sur le flux de vos messages reçus au fur et à mesure de leur traitement par Mail Manager.

Les exemples suivants détaillent les différents champs des journaux pour chaque ressource et chaque type de journal :

Journaux des terminaux d'entrée — JOURNAUX_DES APPLICATIONS

Les journaux sont générés par message.

{ "resource_arn": "arn:aws:ses:us-east-1:1234567890:mailmanager-ingress-point/inp-xxxxx", "event_timestamp": 1728562395042, "ingress_point_type": "OPEN" | "AUTH" | "MTLS", "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": "", // Only applies to MTLS Ingress endpoint "client_certificate_details": { "common_names": ["mail.example.com"], "serial_number": "0A:DE:EB:89:42:FB:1C:67", "subject_alternative_names": ["mail.example.com", "smtp.example.com"], "issuer": "CN=Example CA,O=Example Corp,C=US", "not_before": "2025-01-15T00:00:00Z", "not_after": "2026-01-15T23:59:59Z" }, "trust_store_monitoring": { "ca_invalid_or_near_expiry": [ { "subject": "CN=Example CA,O=Example Corp,C=US", "not_before": "2023-06-01T00:00:00Z", "not_after": "2025-05-15T23:59:59Z" }, ... ], "crl_invalid_or_near_expiry": [ { "issuer": "CN=Example CA,O=Example Corp,C=US", "this_update": "2025-03-01T00:00:00Z", "next_update": "2025-04-01T00:00:00Z" }, ... ] } } }
Note

Les journaux sont créés uniquement pour les messages acceptés par le point de terminaison d'entrée. Un point de terminaison d'entrée qui rejette tous les messages entrants ne publiera aucun journal d'application.

Note

Le trust_store_monitoring listes (ca_invalid_or_near_expiry et crl_invalid_or_near_expiry) renvoient chacun un maximum de 10 entrées. « Expiration imminente » signifie que le certificat ou la CRL expire dans les 90 jours.

Exemple CloudWatch Requêtes Logs Insights

Messages de requête envoyés par sender@domain.com :

fields @timestamp, @message, @logStream, @log | filter smtp_mail_from like /sender@domain.com/ | sort @timestamp desc | limit 10000

Messages de requête dont la taille est supérieure à 5 000 octets :

fields @timestamp, @message, @logStream, @log | filter message_size_bytes > 5000 | sort @timestamp desc | limit 10000

Journaux des terminaux d'entrée — TRAFIC_POLICY_DEBUG_LOGS

Les journaux sont générés par destinataire.

{ "resource_arn": "arn:aws:ses:us-east-1:1234567890:mailmanager-ingress-point/inp-xxxxx", "event_timestamp": 1728562395042, "ingress_point_type": "OPEN" | "AUTH", "ingress_point_id": "inp-xxxx", "ingress_point_session_id": "xxxx", "traffic_policy_id": "tp-xxxx", "traffic_policy_evaluation": [ // Array of policy evaluations { "action": "ALLOW" | "DENY", "conditions": [ // Array of conditions { "expression": { "attribute": "RECIPIENT", "operator": "CONTAINS", "value": ["@domain.com", "@mydomain.com"] }, "expressionResult": true | false }], "policyStatementMatched": true | false }, // If no policy statement match then default action will be applied { "action": "ALLOW" | "DENY", "policyStatementMatched": true, "type": "DefaultAction", "scope": "Recipient" }, // Only present if the email was too large according to the traffic policy { "action": "DENY", "allowedMessageSize": 41943040, "receivedMessageSize": 42495384, "scope": "Data" } ], "traffic_policy_verdict": "REJECT" | "ACCEPT", "sender_ip_address": "1.2.3.4", "smtp_mail_from": "someone@domain.com", "smtp_helo": "domain.com", "tls_protocol": "TLSv1.2", "recipient": "me@mydomain.com", "tls_cipher_suite": "TLS_AES_256_GCM_SHA384" }
Note
  • Des journaux sont créés pour tous les messages évalués par la politique de trafic au point de terminaison d'entrée, qu'ils soient acceptés ou rejetés.

  • Toutes les évaluations de la politique de trafic des destinataires appartenant au même message (au sein d'une même conversation SMTP) partagent un point commun ingress_point_session_id. Cet identifiant sert d'identifiant de corrélation puisque message_id n'est disponible qu'après l'acceptation du message.

  • Le traffic_policy_evaluation le contenu varie en fonction de votre configuration et peut être interrompu de manière anticipée une fois le verdict rendu.

Exemple CloudWatch Requêtes Logs Insights

Messages de requête envoyés par sender@domain.com :

fields @timestamp, @message, @logStream, @log | filter smtp_mail_from like /sender@domain.com/ | sort @timestamp desc | limit 10000

Interroger des messages appartenant à une personne spécifique ingress_point_session_id:

fields @timestamp, @message, @logStream, @log | filter ingress_point_session_id = 'xxx' | sort @timestamp desc | limit 10000

Messages de requête qui ont été rejetés :

fields @timestamp, @message, @logStream, @log | filter traffic_policy_verdict = 'REJECT' | sort @timestamp desc | limit 10000

Journaux des ensembles de règles — JOURNAUX_DES APPLICATIONS

Les journaux sont générés par message et par action. Cela signifie qu'un enregistrement de journal est généré chaque fois qu'un message est traité par une action dans une règle de l'ensemble de règles :

{ "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 — Les destinataires auxquels les conditions de la règle pour laquelle l'action est exécutée ont été mises en correspondance.

  • rule_index — L'ordre de la règle dans l'ensemble de règles.

  • action_index — L'ordre de l'action dans la règle.

  • action_status — Indique le résultat de l'exécution de l'action sur le message donné.

  • action_failure — Indique les détails de l'échec de l'action (ne s'applique qu'en cas d'échec d'une action). Par exemple, si le rôle fourni ne dispose pas des autorisations suffisantes pour effectuer l'action.

En outre, si les conditions de la règle ne correspondent pas à un message, c'est-à-dire si le message n'est pas traité par la règle, un seul journal est publié pour indiquer que le message a été traité par l'ensemble de règles, mais qu'aucune action n'a été effectuée sur celui-ci :

{ "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": [] }

Exemple CloudWatch Requêtes Logs Insights

Requête pour un identifiant de message spécifique (affiche le flux de messages dans l'ensemble de règles) :

fields @timestamp, @message, @logStream, @log | filter message_id = 'message-id-123' | sort @timestamp desc | limit 10000

Requête concernant les actions WRITE_TO_S3 ayant échoué :

fields @timestamp, @message, @logStream, @log | filter action_metadata.action_name = 'WRITE_TO_S3' and action_metadata.action_status = 'FAILURE' | sort @timestamp desc | limit 10000

Requête pour les messages qui n'ont pas été traités par la deuxième règle d'un ensemble de règles (le message ne répondait pas aux conditions de la règle) :

fields @timestamp, @message, @logStream, @log | filter recipients_matched = '[]' and rule_index = 2 | sort @timestamp desc | limit 10000