Amazon Simple Email Service(Amazon SES)를 사용하여 전송하는 이메일이 Sender Policy Framework(SPF) 일치 또는 DomainKeys Identified Mail(DKIM) 일치의 Domain-based Message Authentication, Reporting and Conformance(DMARC) 확인에 실패합니다. 이 문제를 해결하려면 어떻게 해야 합니까?
간략한 설명
DMARC는 SPF 및 DKIM을 사용하여 이메일 스푸핑을 감지하는 이메일 인증 프로토콜입니다. DMARC를 준수하려면 SPF 또는 DKIM 또는 둘 다를 통해 메시지를 인증해야 합니다.
SPF 일치 또는 DKIM 일치의 DMARC 확인을 위한 이메일 헤더의 주요 구성 요소는 다음과 같습니다.
- 메시지 수신자에게 표시되는 [발신] 주소
- 메시지의 발신 위치를 나타내는 [메일 발신] 또는 [봉투 발신] 주소
- DKIM 서명의 [d=] 도메인
DMARC는 [메일 발신] 또는 [봉투 발신] 도메인을 [발신] 도메인에 맞춰 SPF 일치를 점검합니다. 다음 일치 중 하나가 충족되어야 합니다.
- 높은 수준의 일치: [메일 발신] 또는 [봉투 발신] 도메인이 [발신] 도메인과 동일합니다.
- 낮은 수준의 일치: [메일 발신] 또는 [봉투 발신] 도메인이 [발신] 도메인의 하위 도메인입니다.
DMARC는 DKIM 서명의 [d=] 도메인과 [발신] 도메인을 맞춰 DKIM 일치를 점검합니다. 다음 일치 중 하나가 충족되어야 합니다.
- 높은 수준의 일치: [d=] 도메인이 [발신] 도메인과 동일합니다.
- 낮은 수준의 일치: [d=] 도메인이 [발신] 도메인의 하위 도메인입니다.
해결 방법
DMARC 확인을 통과하려면 이메일이 SPF 인증 또는 DKIM 인증을 준수해야 합니다.
DMARC 레코드에서 SPF 또는 DKIM에 낮은 수준의 정렬을 사용합니다.
SPF 또는 DKIM에 낮은 수준의 정렬을 사용하면 이메일이 DMARC 확인을 통과하는 데 도움이 될 수 있습니다.
SPF 및 DKIM에 대해 도메인의 DMARC 일치를 확인하려면 다음 명령을 실행합니다.
nslookup -type=TXT _dmarc.example.com
명령은 다음과 비슷한 DMARC 레코드를 반환합니다.
"v=DMARC1;p=quarantine;pct=25;rua=mailto:hello@example.com"
SPF의 경우 앞의 예제와 같이 레코드에 aspf 문자열이 포함되어 있지 않거나 레코드에 aspf=r 문자열이 포함되어 있으면 도메인이 낮은 수준의 일치를 사용합니다. 레코드에 aspf=s 문자열이 포함되어 있으면 도메인이 높은 수준의 일치를 사용합니다.
DKIM의 경우 레코드에 adkim 문자열이 포함되어 있지 않거나 레코드에 adkim=r 문자열이 포함되어 있으면 도메인이 낮은 수준의 일치를 사용합니다. 레코드에 adkim=s 문자열이 포함되어 있으면 도메인이 높은 수준의 일치를 사용합니다.
높은 수준의 일치에서 낮은 수준의 일치로 변경은 시스템 관리자가 수행해야 합니다.
SPF를 통해 DMARC 준수
SPF 레코드를 가져오려면 다음 명령을 실행합니다.
nslookup -type=TXT example.com
명령은 다음과 비슷한 SPF 레코드를 반환합니다.
"v=spf1 include:amazonses.com ~all"
메시지가 SPF를 통해 DMARC와 호환되는지 확인하려면 다음을 점검하십시오.
1. 메시지가 SPF 점검을 통과해야 합니다. 즉, 도메인의 SPF 레코드에 "include:amazonses.com"이 있어야 합니다. 이는 Amazon SES가 사용자 도메인을 대신해 이메일을 전송할 수 있는 권한을 부여합니다.
2. 이메일 헤더의 [발신] 주소에 있는 도메인은 발신 메일 서버가 수신 메일 서버에 지정하는 [메일 발신] 또는 [봉투 발신] 도메인과 일치해야 합니다.
Amazon SES를 사용하여 이메일을 전송할 때 [메일 발신] 또는 [봉투 발신] 도메인은 기본적으로 amazonses.com이고 [발신] 도메인은 사용자가 확인한 도메인입니다. 이러한 값은 SPF 일치 및 DMARC 확인에 실패합니다.
이 문제를 해결하려면 [메일 발신] 값이 확인된 도메인의 하위 도메인이 되도록 사용자 지정 메일 발신 도메인을 설정해야 합니다. 예를 들어 확인된 도메인([발신] 도메인)이 example.com인 경우 사용자 지정 [메일 발신] 도메인을 mail.example.com으로 설정할 수 있습니다. 이러한 값은 SPF 일치 및 DMARC 확인을 통과합니다.
참고: Amazon SES에서 SPF 레코드를 사용자 지정 Mail From 하위 도메인의 일부로 추가합니다. 자세한 내용은 MAIL FROM 도메인 구성을 참조하세요.
DKIM을 통해 DMARC 준수
Amazon SES에서 Easy DKIM을 사용하면 3개의 CNAME 레코드가 제공됩니다. 각각의 DKIM 레코드를 점검하려면 각 CNAME에 대해 다음 명령을 실행합니다.
nslookup -type=CNAME example1._domainkey.example.com
이 명령은 DKIM 레코드를 반환합니다.
example1.dkim.amazonses.com.
메시지가 DKIM을 통해 DMARC와 호환되는지 확인하려면 다음을 점검하십시오.
1. 메시지에 유효한 DKIM 서명이 있어야 합니다.
2. 이메일 헤더의 [발신] 주소가 DKIM 서명의 [d=] 도메인과 일치해야 합니다.
Easy DKIM을 설정하는 것이 가장 좋습니다. 이 기능을 사용하면 DKIM을 통해 두 DMARC 확인 요구 사항을 모두 충족할 수 있기 때문입니다. 이메일에 수동으로 서명하도록 선택할 수도 있지만, Amazon SES는 사용자가 작성한 DKIM 서명을 확인하지 않습니다.