Registro del Administrador de correo electrónico - Amazon Simple Email Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Registro del Administrador de correo electrónico

El registro de Administrador de correo electrónico proporciona visibilidad detallada de las operaciones del Administrador de correo electrónico. La funcionalidad de registro realiza un seguimiento del flujo de mensajes desde su recepción inicial en los puntos de conexión de entrada hasta el procesamiento de los mensajes de acuerdo con las reglas y los conjuntos de reglas configurados.

El Administrador de correo electrónico ofrece el registro de los siguientes recursos:

  • Puntos de conexión de entrada

  • Conjunto de reglas

Mail Manager entrega los registros mediante el servicio Amazon CloudWatch Logs y los registros se pueden enviar a cualquiera de los siguientes destinos: CloudWatch Logs, Amazon S3 o Amazon Data Firehose.

Configuración de la entrega de registros del Administrador de correo electrónico

La entrega de un registro funcional consta de tres elementos:

  • DeliverySource— Un objeto lógico que representa el recurso que envía los registros, ya sea un punto final de entrada o un conjunto de reglas.

  • DeliveryDestination— Un objeto lógico que representa el destino real de la entrega (CloudWatch Logs, S3 o Firehose).

  • Entrega: conecta un origen de entrega con un destino de entrega.

En esta sección se explica cómo crear estos objetos junto con los permisos necesarios para utilizar el registro del Administrador de correo electrónico.

Requisitos previos

Antes de configurar el registro del Administrador de correo electrónico, asegúrese de lo siguiente:

  1. Ha creado un Punto de conexión de entrada o un Conjunto de reglas.

  2. Tiene los permisos de CloudWatch Logs y SES Mail Manager necesarios para vender los registros de sus recursos de Mail Manager a sus destinos de entrega.

Permisos necesarios

Deberás configurar los permisos de los registros vendidos tal como se explica en la sección Registrar que requiere permisos adicionales [V2] de la Guía del usuario de Amazon CloudWatch Logs y aplicar los permisos correspondientes a tu destino de entrega:

Además, el Administrador de correo electrónico requiere los siguientes permisos de usuario para configurar la entrega de registros:

  • ses:AllowVendedLogDeliveryForResource— Necesario para permitir que Mail Manager venda los registros en tu nombre a CloudWatch Logs para tus recursos específicos, como se muestra en el ejemplo:

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" ] } ] }

Habilitación del registro de auditoría en la consola de SES

Cómo habilitar el registro de los recursos del Administrador de correo electrónico mediante la consola:

  1. Abra la consola de SES en https://console.aws.amazon.com/ses/.

  2. En el panel de navegación del Administrador de correo electrónico, elija Puntos de conexión de entrada o Conjuntos de reglas y seleccione el recurso específico que desee habilitar para el registro.

  3. En la página de detalles del recurso, expanda Añadir entrega de CloudWatch registros y elija la entrega a Logs, S3 o Firehose.

  4. En el cuadro de diálogo Añadir entrega a para el destino elegido, siga las indicaciones para configurar las opciones de entrega de registros específicas del tipo de destino.

  5. (Opcional) Amplíe Configuración adicional para personalizar los campos del registro, el formato de salida, el delimitador de campos y otros parámetros específicos del tipo de destino.

Habilitar el registro mediante la API de CloudWatch registros

Para habilitar el registro de los recursos de Mail Manager mediante la API CloudWatch Logs, tendrás que:

  1. Crea un DeliverySource con PutDeliverySource.

  2. Crea un DeliveryDestination con PutDeliveryDestination.

  3. Crear una entrega emparejando exactamente un origen y un destino de entrega mediante CreateDelivery.

Puede ver ejemplos de políticas de permisos y funciones de IAM con todos los permisos necesarios para su destino de registro específico en la sección Registro que requiere permisos adicionales [V2] de la Guía del usuario de Amazon CloudWatch Logs, y seguir los ejemplos de políticas de permisos y funciones de IAM para su destino de registro, incluida la posibilidad de actualizar su recurso de destino de registro específico, como CloudWatch Logs, S3 o Firehose.

nota

Al crear un DeliverySource, resourceArnpuede ser un ARN de punto final de entrada o un ARN de conjunto de reglas. Según el DeliverySource, logTypepuede ser el siguiente:

  • ARN del punto de conexión de entrada: APPLICATION_LOGS o TRAFFIC_POLICY_DEBUG_LOGS

  • ARN del conjunto de reglas: APPLICATION_LOGS

Interpretación de registros

Los registros pueden servir para obtener información adicional sobre el flujo de mensajes recibidos cuando el Administrador de correo electrónico los procesa.

Los siguientes ejemplos detallan los diferentes campos de los registros para cada recurso y tipo de registro:

Registros de puntos de conexión de entrada: APPLICATION_LOGS

Se generan registros para cada mensaje.

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

Se crean registros solo para los mensajes que acepta el punto de conexión de entrada. Un punto de conexión de entrada que rechace todos los mensajes entrantes no publicará ningún registro de aplicación.

Ejemplo: consultas CloudWatch de Logs Insights

Consulta de mensajes de sender@domain.com:

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

Mensajes de consulta con un tamaño superior a 5000 bytes:

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

Registros de puntos de conexión de entrada: TRAFFIC_POLICY_DEBUG_LOGS

Se generan registros por cada destinatario.

{ "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" }
nota
  • Se crean registros para todos los mensajes que evalúa la política de tráfico en el punto de conexión de entrada, independientemente de si se aceptan o rechazan.

  • Todas las evaluaciones de políticas de tráfico de los destinatarios que pertenecen al mismo mensaje (en la misma conversación SMTP) tienen un ingress_point_session_id común. Este ID sirve como identificador de correlación, ya que el message_id no está disponible hasta que se acepta el mensaje.

  • El contenido de traffic_policy_evaluation varía en función de la configuración y puede finalizar anticipadamente una vez que se determine un veredicto.

Ejemplo de consultas CloudWatch de Logs Insights

Consulta de mensajes de sender@domain.com:

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

Consulta de mensajes que pertenecen a un ingress_point_session_id específico:

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

Consulta de mensajes que se han rechazado:

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

Registros del conjunto de reglas: APPLICATION_LOGS

Se generan registros por cada mensaje y acción. Esto significa que se genera un registro cada vez que una acción de una regla del conjunto de reglas procesa un mensaje:

{ "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: los destinatarios que cumplían las condiciones de la regla para la que se está realizando la acción.

  • rule_index: el orden de la regla en el conjunto de reglas.

  • action_index: el orden de la acción en la regla.

  • action_status: indica el resultado de realizar la acción en el mensaje dado.

  • action_failure: indica los detalles del error de la acción (solo se aplica cuando falla una acción). Por ejemplo, si el rol proporcionado no tiene permisos suficientes para realizar la acción.

Además, si un mensaje no cumplía las condiciones de la regla, es decir, si la regla no procesa el mensaje, se publica un único registro para indicar que el conjunto de reglas ha procesado el mensaje, pero no se ha realizado ninguna acción sobre él:

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

Ejemplo de consultas CloudWatch de Logs Insights

Consulta de un identificador de mensaje específico (muestra el flujo de mensajes a través del conjunto de reglas):

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

Consulta de acciones fallidas de 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

Consulta de mensajes que no ha procesado la segunda regla de un conjunto de reglas (el mensaje no cumplía las condiciones de la regla):

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