기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Mail Manager 로깅은 Mail Manager 작업에 대한 자세한 가시성을 제공합니다. 로깅 기능은 구성된 규칙 세트 및 규칙을 기반으로 수신 엔드포인트의 초기 수신부터 메시지 처리를 통해 메시지 흐름을 추적합니다.
Mail Manager는 다음 리소스에 대한 로깅을 제공합니다.
-
수신 엔드포인트
-
규칙 세트
Mail Manager는 Amazon CloudWatch Logs 서비스를 사용하여 로그를 전송하며, 로그는 CloudWatch Logs, Amazon S3 또는 Amazon Data Firehose 대상 중 하나로 전송할 수 있습니다.
Mail Manager 로그 전송 설정
작동하는 로그 전송은 다음 세 가지 요소로 구성됩니다.
-
DeliverySource - 수신 엔드포인트 또는 규칙 세트와 같이 로그를 전송하는 리소스를 나타내는 논리적 객체입니다.
-
DeliveryDestination - 실제 전송 대상(CloudWatch Logs, S3 또는 Firehose)을 나타내는 논리적 객체입니다.
-
전송 - 전송 소스를 전송 대상에 연결합니다.
이 섹션에서는 Mail Manager 로깅을 사용하는 데 필요한 권한과 함께 이러한 객체를 생성하는 방법을 설명합니다.
사전 조건
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/
SES 콘솔을 엽니다. -
탐색 창의 Mail Manager에서 수신 엔드포인트 또는 규칙 세트를 선택하고 로깅에 사용할 특정 리소스를 선택합니다.
-
리소스의 세부 정보 페이지에서 로그 전송 추가를 확장하고 CloudWatch Logs, S3 또는 Firehose에 대한 전송을 선택합니다.
-
선택한 대상에 대한 전송 추가 대화 상자에서 프롬프트에 따라 대상 유형에 맞는 로그 전송 옵션을 구성합니다.
-
(선택 사항) 추가 설정을 확장하여 레코드, 출력 형식, 필드 구분 기호 및 대상 유형과 관련된 기타 파라미터의 필드를 사용자 지정합니다.
CloudWatch Logs API를 사용하여 로깅 활성화
CloudWatch Logs API를 사용하여 Mail Manager 리소스에 대한 로깅을 활성화하려면 다음을 수행해야 합니다.
-
를 사용하여 전송 소스를 생성합니다
PutDeliverySource
. -
를 사용하여 전송 대상을 생성합니다
PutDeliveryDestination
. -
를 사용하여 정확히 하나의 전송 소스와 하나의 전송 대상을 페어링하여 전송을 생성합니다
CreateDelivery
.
Amazon CloudWatch Logs 사용 설명서의 로깅 섹션에서 특정 로깅 대상에 필요한 모든 권한이 있는 IAM 역할 및 권한 정책의 예를 보고 CloudWatch Logs, S3 또는 Firehose와 같은 특정 로깅 대상 리소스에 대한 업데이트 허용을 포함하여 로깅 대상에 대한 IAM 역할 및 권한 정책 예제를 따를 수 있습니다.
참고
DeliverySource를 생성할 때는 수신 엔드포인트 ARN 또는 규칙 세트 ARNresourceArn
이어야 하며 SES Mail Manager 로그logType
용는 로 설정해야 합니다APPLICATION_LOGS
.
로그 해석
로그를 사용하여 메일 관리자가 수신한 메시지를 처리할 때 수신한 메시지의 흐름을 추가로 파악할 수 있습니다.
다음 섹션에서는 각 리소스에 대한 로그의 다양한 필드를 자세히 설명합니다.
수신 엔드포인트 로그
로그는 메시지별로 생성됩니다.
{
"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
크기가 5,000바이트보다 큰 쿼리 메시지:
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
- 작업의 실패 세부 정보를 나타냅니다(작업이 실패할 때만 적용됨). 예를 들어 제공된 역할에 작업을 수행할 수 있는 충분한 권한이 없는 경우입니다.
또한 규칙 조건이 메시지와 일치하지 않는 경우, 즉 메시지가 규칙에 의해 처리되지 않는 경우 단일 로그가 게시되어 메시지가 규칙 세트에 의해 처리되었지만 해당 메시지에 대해 수행된 작업이 없음을 나타냅니다.
{
"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
규칙 세트의 두 번째 규칙에 의해 처리되지 않은 메시지에 대한 쿼리(메시지가 규칙 조건을 충족하지 않음):
fields @timestamp, @message, @logStream, @log
| filter recipients_matched = '[]'
and rule_index = 2
| sort @timestamp desc
| limit 10000