Amazon SES에서 DMARC 설정하기

2024년 1월 11일 목요일

Today I Learn

날짜

2024년 1월 11일 목요일

내용

하루종일 코드보단 AWS 설정만 건드렸다.

DMARC

Shopify에서 메일이 왔다. Gmail과 Yahoo에서 DMARC에 관한 정책이 바뀌었다는 내용이다. 우리가 커스텀 도메인을 사용하기 위해, 이 정책에 맞게 DMARC를 추가해주어야 한다. 아니면, 2월부터는 Shopify 쪽에서 제공하는 계정으로 발송처리 된다. 고객들이 알파리뷰가 보낸 메일임을 알 수 있도록 커스텀 메일주소를 계속 유지시켜야 한다.

DMARC(Domain-based Message Authentication, Reporting and Conformance)는 이메일 인증 프로토콜이다. 이메일 도메인 소유자가 이메일 스푸핑으로 알려진 무단 사용에서 도메인을 보호할 수 있도록 설계되었다. DMARC의 구현 목적은 비즈니스 이메일 공격, 피싱 이메일, 이메일 사기 등 사이버 위협 행위에 도메인이 이용되지 않게 보호한다. <위키백과>

예를 들어, obama@whitehouse.gov 에서 메일이 왔다고 가정해보자. 만약, 보이스피싱범이 백악관인척 하고 보낸 피싱 메일이면? 누구나 저 도메인을 이용할 수 있다면, 그래서 각종 피해가 발생한다면 이메일을 사용할 이유가 없다. 이를 위해 DMARC를 사용한다. 메일 플랫폼은 obama@whitehouse.gov에서 메일을 받으면 “이게 정말 백악관에서 보낸것인지, 누군가 백악관인 척 하고 보낸 것인지”를 확인한다. 전자라면 받은편지함에 잘 보관하고, 후자라면 스팸메일로 처리해버리거나 아예 안 받는다. 이러한 설정은 백악관에서 해야한다.

따라서 우리 서비스도 DMARC를 등록해서 “알파리뷰 도메인을 소유한 정당한 사용자가 보낸 이메일입니다.” 라고 설정해줘야 한다. 이제 Gmail과 Yahoo에서는 이 설정이 제대로 되어있지 않으면 메일을 안받겠다고 한다. 우리는 info@alph.kr 로 메일을 보내니 alph.kr 도메인에 대해서 DMARC를 설정해야 한다.

DMARC를 설정하기 위한 선제조건은 SPF와 DKIM을 적용하는 것이다. SPF(Sender Policy Framwork)는 도메인에서 발송되는 이메일이 합법적인 출처에서 발송되었는지 확인하는데 필요하다. “우리 도메인은 Gmail이랑 Naver 메일 서버에서만 보냅니다.” 라고 설정하는 것. 그런데 라이코스에서 오면 바로 스팸취급 당해버린다. 우린 AWS SES에서 보내니 알맞게 추가해야 한다. 우리 도메인을 호스팅하는 Route53에서 record를 TXT 유형으로 추가해주면 된다. 유형에 SPF가 있긴 하지만 Amazon에서도 TXT로 설정하길 권장한다(링크). 그럼 삭제하든가…

DKIM(DomainKeys Identified Mail)은 이메일에 디지털 서명을 추가하는 기능이다. 이메일이 수정되지 않고 신뢰할수 있는 출처에서 발송되었다는 것을 증명해주는 역할이다. 옛날, 편지 봉투를 밀랍을 굳혀 봉인한 것과 같은 느낌인듯.

이 두가지가 적용이 완료되고 난 후에 DMARC를 적용해야하는데 최대 72시간까지 걸린다고 한다. 다행히 난 2시간만에 되었다. Route53에 레코드를 추가해주면 되는데, 위 2가지 검증이 실패시 처리 방법에 대한 정책과 이에 관한 보고서를 누구에게 보낼지가 포함되야 한다. 간혹, 보고서 수신 계정과 DMARC 설정 계정이 다르면 스팸처리 되는 경우가 있다고 하니 웬만하면 똑같이 하는게 나을듯!

AWS에선 됐다는데 왜 DKIM이 적용이 안되는걸까.. 시간이 걸릴수도 있다하니 내일 다시한번 테스트해봐야겠다.

회고

난 반드시 올해 AWS를 통달해야겠다. 각오해라 럭키 인터파크.