grep

DevOps

AWS SES 구축기

Ellie여기어때

2024년 5월 20일

원문에서 보기 ↗

안녕하세요, 올해 1월에 여기어때컴퍼니 SRE팀에 새롭게 합류하게 된 엘리입니다.

Copyright 2024. 여기어때컴퍼니 All Right Reserved. Graphic by 김제린(Riny).

올해 Yahoo와 Gmail에서 이메일과 관련된 새로운 정책을 발표하였습니다. 이에 따라 여기어때도 보다 안전하고 효율적인 메일박스 관리를 위해 관련 시스템 업데이트를 시행하였으며 해당 내용을 공유하고자 합니다.

🚨메일박스에서 새로운 이메일 정책 발표🚨

Yahoo와 Gmail에서 하루에 5000개 이상의 메일을 보내거나, 수신자 중 상당수가 메일을 스팸으로 표시하는 사람들을 대상으로 새로운 요구사항을 발표했습니다!

  1. 더욱 엄격한 도메인 인증 준수
  2. 수신자에게 대량 메일 구독을 쉽게 취소할 수 있는 방법 제공
  3. 스팸 불만 비율 모니터링 및 0.3% 임곗값 미만으로 유지

왜 이메일 정책이 진화할까요❓

1️⃣ 발신자 인증을 통한 보안 강화

본격적으로 글을 시작하기 전에 아이스 브레이킹 퀴즈를 하나 준비해봤습니다!!!

위 두 가지 이메일의 차이가 보이시나요?🧐

.

.

.

.

🫣

.

.

.

.

첫번째는 examp'l’e은 L의 소문자이고, 두번째 examp'I’e은 i의 대문자입니다.

이와 같이 이메일 주소를 의도적으로 교묘하게 다르게 보냄으로써 사용자가 익숙한 메일을 무심코 클릭하게 만듭니다.

이처럼 이메일 주소를 교묘하게 바꿔 사용자를 속이는 사이버 범죄가 급증하고 있습니다. 이는 사용자의 개인 정보를 빼앗거나, 악성 코드를 전송하는 등 다양한 방식의 범죄에 이용됩니다. 그렇기 때문에 “발신자 인증”은 원활한 이메일 송수신을 보장하고, 스팸이나 악성 코드를 방지하는 역할을 함으로써 사용자의 메일함을 안전하게 지켜줍니다. 그렇기 때문에 발신자 인증을 유심히 확인해야 하고, 발신자 인증을 통해 보안을 강화해야 합니다.

2️⃣ 스팸 메일을 줄여 이메일 품질 향상

두 번째는 '무분별한 광고 알림'으로 인한 이메일 품질의 저하입니다. 이메일은 우리의 일상 속에서 중요한 소통 도구로 작용하지만, 무차별적인 광고 알림 때문에 그 가치가 퇴색되고 있습니다. 무수히 쌓여있는 광고 메일들은 우리의 이메일을 '광고함'으로 전락시키며, 알림을 확인하는 것 자체가 부담이 되곤 합니다. 특히, 이런 광고 메일들의 구독 취소가 복잡하거나 불가능하다면 더욱 더 사용자들의 불만을 증폭시킵니다.

스팸 메일이나 피싱 공격 등의 문제로 인해, 이메일 서비스 제공 업체인 Gmail과 Yahoo에서는 새로운 이메일 정책을 도입하게 되었습니다.

오늘은 이 새로운 정책 중에서 가장 중요한 부분인 '도메인 인증'에 대해 알아보려고 합니다. 이메일이 우리 생활의 일부가 되면서, 그 중요성이 점점 더 커지고 있습니다. 그래서 이 글을 계기고 이메일 보안에 대해 깊이 있게 알아보려 합니다.

이메일 인증 → 도메인 인증

이메일을 보낼 때 보안 인증 유형은 이메일 인증과 도메인 인증이 있습니다.

이메일 인증의 한계

도메인 인증

AWS에서 도메인 인증을 구현하는 방법은 매우 간단합니다.

위와 같이 Amazon SES 자격 증명 생성에서 보안 인증 유형을 도메인으로 선택한 후 도메인을 입력해주면 됩니다.

그럼 원하는 도메인이 인증된 것을 확인할 수 있습니다.

이메일의 보안성을 높여주기 위해 Amazon SES에서도 SPF, DKIM, DMARC 인증이 가능한데 이 세 가지 인증에 대해 살펴보려고 합니다.

SPF(Sender Policy Framework)

SPF는 도메인 소유자가 자신의 도메인에서 메일을 보낼 수 있는 서버 목록을 DNS 레코드에 등록하는 방식으로 작동합니다. 이렇게 하면 수신 측의 서버가 이 DNS 레코드를 조회하여, 실제로 이메일이 허가된 서버에서 발송되었는지 검증할 수 있게 됩니다. 만약 이메일이 등록된 서버 목록 중 하나에서 발송된 것이라면 이메일은 유효한 것으로 간주되며, 수신자에게 메일이 전송되고, 값이 동일하지 않으면 수신자의 스팸함으로 메일이 전송됩니다.

Amazon SES에서 이러한 SPF 인증을 사용하는 방법은 더 간단합니다. Amazon SES를 사용하면 자동으로 MAIL FROM 등록이 되어 SPF만 검증이 가능하기 때문입니다.

SPF 인증 확인

SPF 검사기 — 무료 SPF 테스트 도구 접속

DKIM(DomainKeys Identified Mail)

DKIM 인증 과정에서 발신자의 도메인은 두 개의 암호화 키, 즉 공개 키와 개인 키를 생성합니다. 이메일을 보낼 때 발신 측 서버는 개인 키로 이메일의 헤더에 서명을 추가하는데, 이 서명은 이메일이 변경되지 않았음을 증명하는 역할을 합니다. 발신자 도메인은 이 공개 키를 DNS에 등록하고, 이메일을 받는 쪽에서는 이 공개 키를 DNS에서 찾아내어 이메일의 서명을 확인합니다. 만약 서명이 유효하다면, 수신자에게 메일이 전송되고, 값이 동일하지 않으면 수신자의 스팸함으로 메일이 전송됩니다.

Amazon SES에서 DKIM을 구현하는 방법입니다.

위와 같이 설정해주면 됩니다.

DKIM의 보안 인증 유형인 Easy DKIM과 DKIM 인증 토큰 제공(BYODKIM) 두 종류가 있습니다.

Easy DKIM을 사용하면 Amazon SES가 사용자 대신 DKIM 인증 과정을 처리해줍니다. Amazon SES가 필요한 DKIM 토큰을 생성하고, 이를 DNS 설정에 추가해줍니다. 그렇기 때문에 복잡한 과정 없이 간편하게 DKIM 인증을 설정할 수 있습니다.

BYDKIM(Bring Your Own DKIM)은 사용자가 직접 DKIM 키를 생성하고 관리하는 방법입니다. 이 방법은 사용자가 원하는 대로 DKIM 설정을 커스터마이징할 수 있습니다. 하지만 DKIM 키의 생성, 관리, 교체를 사용자가 직접 해야하기 때문에 복잡할 수 있습니다.

DKIM 인증 확인

[centos@ip-0-0-0-0 ~]$ aws ses get-identity-dkim-attributes --identities "example.com"
{
    "DkimAttributes": {
        "example.com": {
            "DkimEnabled": true,
            "DkimVerificationStatus": "Success",
            "DkimTokens": [
                "token1111111",
                "token2222222",
                "token3333333"
            ]
        }
    }
}

AWS SES의 콘솔창과 동일하게 DKIM token 값이 뜬 것을 확인할 수 있습니다.

DMARC(Domain-based Message Authentication, Reporting, and Conformance)

DMARC는 도메인 소유자가 자신의 도메인에 대한 이메일 인증 방법을 설정하고, 이메일 처리 방침을 명시할 수 있는 기술입니다. 이 정책은 DNS 레코드에 등록되어, SPF와 DKIM의 검증 결과를 토대로 이메일이 어떻게 처리될지 결정합니다. 만약 이메일이 설정된 정책에 부합하여 SPF와 DKIM 검증을 성공적으로 통과한다면, 수신자에게 메일이 전송됩니다. 반면, 이메일이 SPF나 DKIM 검증을 통과하지 못하고 DMARC 정책에도 부합하지 않는 경우, 도메인 소유자가 설정한 대로 이메일은 수신자의 스팸함으로 전송되거나 완전히 거부될 수 있습니다.

DMARC는 또한 도메인 소유자에게 인증 실패를 보고하여, 자신의 도메인이 부적절하게 사용되는 것을 감지하고 대응할 수 있게 합니다. 이러한 방식으로 DMARC는 이메일의 보안을 강화하고, 스푸핑 및 피싱 공격으로부터 도메인의 신뢰성을 유지하는 데 도움을 줍니다.

마지막으로 Amazon SES에서 DMARC를 구현하는 방법입니다.

Route 53에 DMARC 레코드를 생성해주면 됩니다.

DMARC 인증 확인

무료 DMARC 검사기 및 유효성 검사기 도구 접속

해당 사이트를 통해서 SPF, DKIM, DMARC 까지 인증된 것을 확인할 수 있습니다. 또한 해당 도메인의 메일을 보내서 메일의 원시코드를 통해 인증을 확인할 수도 있습니다.

위와 같이 SPF, DKIM, DMARC 인증을 모두 완료하고 나면, 이제 해당 도메인으로부터 오는 메일은 모두 보안 인증을 통과한 것을 확인할 수 있습니다. 이는 우리의 메일이 이제 보다 안전하고 강화된 보안을 갖추게 되었음을 의미합니다.

역방향 도메인 등록

도메인 이름을 IP 주소로 변환하는 정방향 도메인과 달리, IP 주소를 도메인 이름으로 변환하는 것이 역방향 도메인 입니다.

역방향 도메인은 in-addr.arpa도메인을 통해 구현되며, 이는 IETF에 의해 표준화 되었으며, in-addr.arpa 도메인은 IP 주소를 도메인 이름으로 변환하는데 사용되는 특수 목적의 도메인 입니다.

이메일 서버는 역방향 도메인을 사용하여 발신자의 IP 주소가 발신자 도메인의 유효한 메일 서버에 해당하는지 확인하여 스팸이나 피싱 시도를 감지하고 차단하는 데 도움이 됩니다. 특히 해외에서는 역방향 레코드 등록을 권고하는 편입니다.

AWS에서는 역방향 레코드를 등록하기 위해 정방향 레코드도 등록을 해야하기 때문에 두 개의 레코드를 등록해줍니다.

정방향 레코드(A)

역방향 레코드(PTR)

역방향 도메인 확인

DNS Checker — DNS Check Propagation Tool 접속

결론

우리가 오늘 다룬 내용을 통해, 인증을 이용함으로써 얻을 수 있는 장점들에 대해 알아보았습니다.

첫째로, 스팸 메일로부터 우리의 메일함을 효과적으로 보호함으로써 과도한 스팸 메일로 인한 스트레스를 줄일 수 있습니다. 둘째로, 개인 정보를 안전하게 보호하여 사이버 범죄의 위험에서 우리 자신을 보호할 수 있습니다. 이는 결국 우리의 이메일 환경을 안전하게 만들어주며, 우리의 디지털 생활을 더욱 편안하게 해줍니다.

앞으로도 이런 방법을 지속적으로 활용하되, 이메일 사용에 있어서 보안의 중요성을 늘 기억하고 실천해야 합니다. 특히 발신자 인증의 중요성을 깊이 인지하고, 이를 철저히 실천하는 것이 중요합니다. 이는 단순히 우리 자신을 보호하는 것 뿐만 아니라, 이메일을 통한 소통의 질을 높이는 데에도 큰 도움이 될 것입니다.

이 글이 여러분께서 이메일을 더 안전하게 사용하는 데에 도움이 되었기를 바라며, 이를 통해 여러분의 디지털 생활이 더욱 편안해지길 기원합니다.

감사합니다.