Registo em log do Mail Manager - Amazon Simple Email Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registo em log do Mail Manager

O registro em log do Mail Manager fornece visibilidade detalhada das operações do Mail Manager. A funcionalidade de registro em log rastreia o fluxo de mensagens desde o recebimento inicial nos endpoints de entrada até o processamento de mensagens com base nas regras e nos conjuntos de regras configurados.

O Mail Manager oferece registro em log para os seguintes recursos:

  • Endpoints de entrada

  • Conjuntos de regras

O Mail Manager entrega registros usando o serviço Amazon CloudWatch Logs e os registros podem ser enviados para qualquer um dos seguintes destinos: CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

Configurar a entrega de logs do Mail Manager

A entrega de um log de trabalho consiste em três elementos:

  • DeliverySource— Um objeto lógico que representa o recurso que envia os registros — seja um endpoint de entrada ou um conjunto de regras.

  • DeliveryDestination— Um objeto lógico que representa o destino real da entrega (CloudWatch Logs, S3 ou Firehose).

  • Delivery: conecta uma origem de entrega a um destino de entrega.

Esta seção explicará como criar esses objetos com as permissões necessárias para usar o registro em log do Mail Manager.

Pré-requisitos

Antes de configurar o registro em log do Mail Manager, garanta que:

  1. Você criou um Endpoint de entrada ou um Conjunto de regras.

  2. Você tem os CloudWatch registros e as permissões do SES Mail Manager necessários para enviar registros de seus recursos do Mail Manager para seus destinos de entrega.

Permissões obrigatórias

Você precisará configurar as permissões de registros vendidos, conforme explicado na seção Registro, que requer permissões adicionais [V2] do Guia do usuário do Amazon CloudWatch Logs, e aplicar as permissões que correspondem ao seu destino de entrega:

Além disso, o Mail Manager exige as seguintes permissões de usuário para configurar a entrega de logs:

  • ses:AllowVendedLogDeliveryForResource— Necessário para permitir que o Mail Manager envie os registros em seu nome ao CloudWatch Logs para seus recursos específicos, conforme mostrado no exemplo:

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

Habilitar o registro em log no console do SES

Para habilitar o registro em log de recursos do Mail Manager usando o console:

  1. Abra o console SES em https://console.aws.amazon.com/ses/.

  2. No painel de navegação, em Mail Manager, escolha Endpoints de entrada ou Conjuntos de regras e selecione o recurso específico que deseja habilitar para o registro em log.

  3. Na página de detalhes do recurso, expanda Adicionar entrega de registros e escolha entrega para CloudWatch Logs, S3 ou Firehose.

  4. Na caixa de diálogo Adicionar entrega para do destino escolhido, siga os prompts para configurar as opções de entrega de logs específicas para o tipo de destino.

  5. (Opcional) Expanda Configurações adicionais para personalizar os campos do registro, formato de saída, delimitador de campo e outros parâmetros específicos do tipo de destino.

Ativando o registro usando a API CloudWatch Logs

Para ativar o registro de recursos do Mail Manager usando a API CloudWatch Logs, você precisará:

  1. Crie um DeliverySource com PutDeliverySource.

  2. Crie um DeliveryDestination com PutDeliveryDestination.

  3. Criar um Delivery emparelhando exatamente uma única origem de entrega e um único destino de entrega, usando CreateDelivery.

Você pode ver exemplos de políticas de funções e permissões do IAM com todas as permissões necessárias para seu destino de registro específico na seção Registro que exige permissões adicionais [V2] do Guia do usuário do Amazon CloudWatch Logs e seguir os exemplos de políticas de funções e permissões do IAM para seu destino de registro, incluindo a permissão de atualizações para seu recurso de destino de registro específico, como CloudWatch Logs, S3 ou Firehose.

nota

Ao criar um DeliverySource, resourceArnpode ser um ARN de endpoint de entrada ou um ARN de conjunto de regras. Dependendo do DeliverySource, logTypepode ser o seguinte:

  • ARN de endpoint de entrada: APPLICATION_LOGS ou TRAFFIC_POLICY_DEBUG_LOGS

  • ARN de conjunto de regras: APPLICATION_LOGS

Interpretar os logs

Os logs podem ser usados para obter informações adicionais sobre o fluxo das mensagens recebidas à medida que elas são processadas pelo Mail Manager.

Os exemplos a seguir detalham os diferentes campos dos logs para cada tipo de log e recurso:

Logs de endpoint de entrada: APPLICATION_LOGS

Os logs são gerados por mensagem.

{ "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

Os logs são criados somente para mensagens aceitas pelo endpoint de entrada. Um endpoint de entrada que rejeite todas as mensagens recebidas não publicará nenhum log de aplicação.

Exemplo de consultas CloudWatch do Logs Insights

Mensagens de consulta de sender@domain.com:

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

Mensagens de consulta com mais de 5.000 bytes:

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

Logs de endpoint de entrada: TRAFFIC_POLICY_DEBUG_LOGS

Os logs são gerados por destinatário.

{ "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
  • Os logs são criados para todas as mensagens avaliadas pela política de tráfego no endpoint de entrada, independentemente de serem aceitas ou rejeitadas.

  • Todas as avaliações da política de tráfego de destinatários pertencentes à mesma mensagem (dentro da mesma conversa SMTP) compartilham o mesmo ingress_point_session_id. Esse ID serve como um identificador de correlação, já que o message_id não está disponível até a aceitação da mensagem.

  • O conteúdo de traffic_policy_evaluation varia de acordo com sua configuração e pode ser encerrado antes, assim que o veredito for determinado.

Exemplo de consultas CloudWatch do Logs Insights

Mensagens de consulta de sender@domain.com:

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

Mensagens de consulta pertencentes a um ingress_point_session_id específico:

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

Mensagens de consulta que foram rejeitadas:

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

Logs de conjunto de regras: APPLICATION_LOGS

Os logs são gerados por mensagem e por ação. Isso significa que um registro de logs é gerado sempre que uma mensagem é processada por uma ação em uma regra do conjunto de regras:

{ "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: os destinatários que corresponderam às condições da regra para a qual a ação está sendo executada.

  • rule_index: a ordem da regra dentro do conjunto de regras.

  • action_index: a ordem da ação dentro da regra.

  • action_status: indica o resultado da execução da ação na mensagem em questão.

  • action_failure: indica os detalhes de falha da ação (só se aplica quando uma ação falha). Por exemplo, se o perfil fornecido não tiver permissões suficientes para realizar a ação.

Além disso, se as condições da regra não corresponderem a uma mensagem, ou seja, a mensagem não for processada pela regra, um único log será publicado para indicar que a mensagem foi processada pelo conjunto de regras, mas não teve nenhuma ação executada nela:

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

Exemplo de consultas CloudWatch do Logs Insights

Consulta para um message-id específico (mostra o fluxo de mensagens pelo conjunto de regras):

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

Consulta para ações WRITE_TO_S3 com falha:

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 para mensagens que não foram processadas pela segunda regra de um conjunto de regras (a mensagem não correspondeu às condições da regra):

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