Amazon SES 이메일 수신 개념 및 사용 사례 - Amazon Simple Email Service

Amazon SES 이메일 수신 개념 및 사용 사례

Amazon SES를 이메일 수신기로 사용하는 경우 서비스에 메일로 수행할 작업을 알려야 합니다. 기본 방법인 수신 규칙을 사용하면 수신자 기반 제어를 통해 수신자를 기반으로 수행할 작업 세트를 지정함으로써 이메일 수신을 세밀하게 제어할 수 있습니다. 다른 방법인 IP 주소 필터는 광범위한 IP 기반 제어를 사용하여 원래 IP 주소 또는 주소 범위에 따라 메일을 차단하거나 허용할 수 있습니다.

Amazon SES가 수신된 이메일을 처리하는 방법에 대한 개요와 규칙 및 필터를 설정할 때 이메일을 수신, 필터링, 처리하는 방법을 고려하는 데 도움이 되는 사용 사례에서 두 가지 방법에 대해 모두 설명합니다.

수신 규칙을 사용한 수신자 기반 제어

수신 메일을 제어하는 기본 방법은 사용자가 소유한 확인된 도메인 자격 증명(이메일 주소, 도메인 또는 하위 도메인)에 대해 정렬된 작업 목록을 통해 메일이 처리되는 방식을 지정하는 것입니다. 이러한 작업은 규칙 세트 내에서 생성하는 수신 규칙에 정의되고 정렬됩니다.

옵션으로 발송된 메일을 받는 수신자가 조건에 지정된 수신자 자격 증명과 일치하는 경우에만 작업을 수행하도록 지정하는 방법으로 수신자 조건을 추가할 수도 있습니다. 예를 들어 example.com을 소유하는 경우, user@example.com에 대한 메일이 반송되도록 지정하고 example.com 및 해당 하위 도메인에 대한 다른 모든 메일이 전달되도록 지정할 수 있습니다.

또는, 수신자 조건을 추가하지 않으면 확인된 도메인에 속한 모든 이메일 주소, 도메인 및 하위 도메인 등 모든 항목에 작업이 적용됩니다. 수신 규칙에 적용할 수 있는 조치는 다음과 같습니다.

  • 헤더 추가 작업 - 수신 이메일에 헤더를 추가합니다. 이 작업은 보통 다른 작업과 연계해서 사용합니다.

  • 반송 응답 반환 작업 - 발신자에게 반송 응답을 돌려보내 이메일 수신을 거부하고 설정에 따라 Amazon SNS를 통해 사용자에게 알립니다.

  • AWS Lambda 함수 호출 작업 - Lambda 함수를 통해 코드를 호출하고, 설정에 따라 Amazon SNS를 통해 알립니다.

  • S3 버킷에 전송 작업 - 메일을 Amazon S3 버킷으로 전송하고 설정에 따라 Amazon SNS를 통해 알립니다.

  • Amazon SNS 주제에 게시 작업 - Amazon SNS 주제에 전체 이메일을 게시합니다.

    참고

    SNS 작업은 Amazon SNS 알림에 이메일 콘텐츠 사본을 첨부합니다. 여기에 언급된 다른 Amazon SNS 알림 옵션은 이메일 전송에 대한 알림만을 제공하며, 여기에는 이메일 내용 자체가 아니라 이메일에 대한 정보가 포함되어 있습니다.

  • 규칙 세트 중지 작업 - 해당 수신 규칙 세트의 평가를 중단하고, 설정에 따라 Amazon SNS를 통해 사용자에게 알립니다.

  • Amazon WorkMail 통합 작업 - Amazon WorkMail로 메일을 처리합니다. Amazon WorkMail이 설정을 처리하므로 일반적으로 이 작업을 직접 사용할 필요는 없습니다.

수신 규칙이 규칙 세트로 그룹화됩니다. 기존 규칙 세트가 없는 경우 수신 규칙 생성을 시작하기 전에 먼저 규칙 세트를 생성해야 합니다. AWS 계정에서 여러 규칙 세트를 정의할 수 있지만 한 번에 하나의 규칙 세트만 활성화됩니다. 다음 그림에서는 수신 규칙, 규칙 세트 및 작업이 서로 어떻게 관련되어 있는지 보여줍니다.


                인바운드 이메일 개요

IP 주소 필터를 사용한 IP 기반 제어

IP 주소 필터를 설정하여 메일 흐름을 제어할 수 있습니다. IP 주소 필터는 선택사항이며 특정 IP 주소 또는 특정 범위의 IP 주소에서 발신한 메일의 수락 또는 차단을 지정할 수 있게 합니다. IP 주소 필터에 차단 목록(수신 메일을 차단하려는 IP 주소) 및 허용 목록(항상 메일을 수락하려는 IP 주소)이 포함될 수 있습니다.

IP 주소 필터는 스팸을 차단하는 데 유용합니다. Amazon SES는 Spamhaus에 나열된 것을 포함하여 스팸을 보내는 것으로 알려진 IP 주소의 차단 목록을 자체적으로 유지합니다. 하지만 허용 목록에 추가하여 해당 IP 주소에서 메일을 받도록 선택할 수 있습니다. 차단된 IP 주소를 보여주는 로그가 없으므로 차단된 발신자가 관리자에게 관련 정보를 알려야 합니다. 또한 이를 통해 발신자는 자신의 IP 주소가 Spamhaus와 같은 차단 목록에 있는지 확인하고 목록에서 제외하도록 요청할 수 있습니다. 이렇게 하면 IP 주소 필터를 유지 관리할 필요가 없으며 이메일 전송 가능성이 향상된다는 점에서 관리자와 발신자 모두에게 도움이 됩니다.

참고
  • Amazon EC2 IP 주소에서 보낸 메일을 허용하려면 허용 목록에 추가해야 합니다. Amazon EC2에서 보낸 모든 메일은 기본적으로 차단됩니다.

  • 정해진 일부 IP 주소에서만 메일을 받고 싶다면 차단 목록에는 0.0.0.0/0를 입력하고, 허용 목록에는 신뢰하는 IP 주소를 입력하세요. 이 구성은 기본적으로 모든 IP 주소를 차단하고, 명시적으로 지정하는 IP 주소에서 발신하는 메일만 허용합니다.

이메일 수신 프로세스

Amazon SES가 도메인에 대한 이메일을 수신하면 다음과 같은 이벤트가 발생합니다.

  1. Amazon SES는 먼저 발신자의 IP 주소를 확인합니다. Amazon SES는 다음과 같은 경우를 제외하고 메일이 이 단계를 통과하도록 허용합니다.

    • IP 주소가 차단 목록에 존재합니다.

    • IP 주소가 Amazon SES 차단 목록에 있지만 허용 목록에는 없습니다.

  2. Amazon SES는 활성 규칙 세트를 검사하여 수신 규칙이 수신자 조건을 포함하고 있는지 확인합니다.

    • 수신자 조건이 있고 수신 이메일의 수신자 중 하나와 일치하는 경우 Amazon SES는 이메일을 수락합니다. 일치하는 항목이 없으면 Amazon SES는 이메일을 차단합니다.

    • 수신 규칙이 수신자 조건을 포함하지 않는 경우 Amazon SES는 메일을 수락합니다. 규칙의 모든 작업은 사용자가 소유한 확인된 모든 자격 증명에 적용됩니다.

  3. Amazon SES는 이메일을 인증하고 해당 콘텐츠에서 스팸 및 맬웨어를 검사합니다.

    • Amazon SES로 이메일을 전송한 원격 호스트의 IP 주소는 SMTP 트랜잭션 중에 사용된 MAIL FROM의 도메인에 지정된 SPF 정책에 따라 검사됩니다.

    • 이메일의 헤더 섹션에 있는 DKIM 서명이 검사됩니다.

    • 콘텐츠 검사가 활성화된 경우 이메일 콘텐츠에서 스팸 및 맬웨어가 있는지 검사합니다.

    • 수신 규칙 평가 중에 이메일 인증 및 콘텐츠 검색 결과를 사용할 수 있습니다.

    자세한 내용은 이메일 인증 및 맬웨어 탐지 섹션을 참조하세요.

  4. Amazon SES가 수락하는 이메일의 경우 활성 규칙 세트 내의 모든 수신 규칙이 사용자가 정의한 순서대로 적용됩니다. 각 수신 규칙 내에서 작업은 정의한 순서대로 실행됩니다.

Amazon SES 이메일 수신에 대한 사용 사례 및 제한

이 단원에서는 Amazon SES 이메일 수신에 대한 몇 가지 일반적인 고려 사항 및 사용 사례에 대해 설명합니다. 질문 및 답변 형식으로 제공되며, 이는 Amazon SES를 사용하여 사용자가 소유한 하나 이상의 확인된 도메인을 대신하여 이메일을 수신하고 관리하는 데 도움이 되는지 판단할 수 있는 자주 묻는 질문과 사실입니다.

리전별 가용성

Amazon SES가 해당 리전에서 이메일 수신을 지원합니까?

Amazon SES는 특정 AWS 리전에서만 이메일 수신을 지원합니다. 이메일 수신이 지원되는 리전의 전체 목록은 AWS 일반 참조의 Amazon Simple Email Service 엔드포인트 및 할당량을 참조하십시오.

POP 또는 IMAP 기반 이메일 클라이언트

수신 전자 메일을 받는 데 Microsoft Outlook을 사용할 수 있습니까?

Amazon SES에는 들어오는 이메일을 수신하기 위한 POP 또는 IMAP 서버가 포함되어 있지 않습니다. 즉, Microsoft Outlook과 같은 이메일 클라이언트를 사용하여 들어오는 이메일을 수신할 수 없습니다. 이메일 클라이언트를 사용하여 이메일을 전송하고 수신할 수 있는 해결 방법이 필요한 경우 Amazon WorkMail 사용을 고려해 보십시오.

다른 AWS 서비스 사용

권한을 적절히 설정하셨습니까?

메일을 S3 버킷으로 전송하거나 본인 소유가 아닌 Amazon SNS 주제로 게시하거나 Lambda 함수를 트리거하거나 사용자 지정 관리형 키를 사용하고자 하는 경우 Amazon SES에 해당 리소스에 대한 액세스 권한을 주어야 합니다. Amazon SES에 액세스 권한을 부여하려면 해당 AWS 서비스의 콘솔 또는 API에서 리소스 정책을 생성해야 합니다. 자세한 정보는 권한 부여하기 단원을 참조하십시오.

이메일 콘텐츠

Amazon SES가 이메일 콘텐츠를 어떻게 전달하기를 바라십니까?

Amazon SES는 이메일 콘텐츠를 두 가지 방식으로 전달합니다. 즉, 이메일을 사용자가 지정하는 S3 버킷에 저장하거나 이메일 사본이 포함된 Amazon SNS 알림을 전송합니다. Amazon SES는 수정되지 않은 원시 이메일을 다목적 인터넷 전자 우편(MIME) 형식으로 전송합니다. MIME 형식에 대한 자세한 내용은 RFC 2045를 참조하세요.

수신하게 될 이메일의 크기는 얼마나 됩니까?

S3 버킷에 이메일을 저장하는 경우 이메일(헤더 포함)의 최대 용량은 30MB입니다. Amazon SNS 알림을 통해 이메일을 수신하는 경우 이메일(헤더 포함)의 최대 용량은 150KB입니다.

메일 처리 프로세스를 어떻게 트리거하고자 하십니까?

메일을 수신한 후에는 자체 코드로 처리하고 싶을 것입니다. 예를 들어 사용자 애플리케이션이 Base64 인코딩의 이메일을 표시할 수 있는 형식으로 변환해서 최종 사용자가 이메일 클라이언트로 확인할 수 있도록 할 것입니다. 이 프로세스를 시작하는 두 가지 방법이 있습니다.

  • 이메일을 Amazon S3 버킷으로 전송하는 경우 애플리케이션이 S3 활동으로 발생하는 Amazon SNS 알림을 청취하고, 알림에서 이메일의 메시지 ID를 추출하고 이를 통해 Amazon S3에서 이메일을 가져오면 됩니다.

    또는 Lambda 함수를 작성하여 이메일 처리 프로세스를 수신 규칙에 포함시켜도 됩니다. 이 경우에는 수신 규칙이 우선 이메일을 Amazon S3에 쓴 다음 Lambda 함수를 트리거해야 합니다. Lambda 함수가 다른 작업의 실행에 영향을 미치는 결과물을 반환해야 하는지 여부에 따라서 수신 규칙 내에서 Lambda 작업을 동기식으로 또는 비동기식으로 실행할 수 있습니다. 해당 사용 사례에 반드시 동기식 실행이 필요한 경우가 아니라면 비동기식 실행 사용이 좋습니다. AWS Lambda에 대한 자세한 내용은 AWS Lambda 개발자 안내서 단원을 참조하세요.

  • 이메일을 SNS 작업을 사용해 Amazon SNS 알림으로 전송하는 경우 애플리케이션이 Amazon SNS 알림을 청취하고 알림에서 이메일 메시지를 추출하면 됩니다.

이메일을 암호화하고자 하십니까?

Amazon SES는 AWS Key Management Service(AWS KMS)를 사용해 S3 버킷에 작성하는 메일을 암호화할 수 있습니다. Amazon SES는 Amazon S3 작성하기 전에 이메일을 암호화하는 데 사용합니다. 따라서 Amazon S3에서 메일을 가져온 다음 사용자 측에서 콘텐츠를 해독해야 합니다. 이 AWS SDK for JavaAWS SDK for Ruby은(는) 암호 해독을 처리할 수 있는 클라이언트를 제공합니다. Amazon SES는 이메일을 S3 버킷으로 전송하는 경우에만 이메일을 암호화할 수 있습니다.

원치 않는 메일

이메일 수신 프로세스의 어느 시점에서 원치 않는 메일을 차단하고자 하십니까?

발신자가 수신자에게 이메일을 전송하려고 시도할 때 발신자의 이메일 서버는 수신자의 서버와 명령 시퀀스를 교환합니다. 이러한 시퀀스를 SMTP 대화라고 합니다.

이메일 수신 프로세스의 두 시점에서 수신되는 이메일을 차단할 수 있는데 SMTP 대화 중과 SMTP 대화 이후, 이렇게 두 시점입니다. SMTP 대화 중에는 IP 주소 필터를 사용하여 메시지를 차단하고, SMTP 대화 후에는 거부 규칙을 사용하여 이메일을 차단합니다.

IP 주소 필터를 사용하면 특정 IP 주소에서 발신된 이메일을 차단할 수 있습니다. IP 주소 필터를 사용하여 원치 않는 메일을 차단하면 SMTP 대화 중 차단된 메시지에는 비용이 청구되지 않는다는 이점이 있습니다. IP 주소 필터 사용의 단점은 메시지의 실제 내용을 분석하지 않고 지정한 IP 주소에서 발신된 이메일을 차단한다는 점입니다. IP 주소 필터에 대한 자세한 내용은 IP 주소 필터 생성 콘솔 연습 단원을 참조하세요.

거부 규칙을 사용하면 메시지가 전송된 주소(혹은 도메인 또는 하위 도메인)를 기반으로 이메일 발신자에게 반송 메일 알림을 보낼 수 있습니다. 거부 규칙을 사용하면 발신자에게 반송 메일 알림을 보내기 전에 수신되는 메시지에 대해 추가 분석을 수행할 수 있다는 이점이 있습니다. 예를 들어, 메시지가 DKIM 인증에 실패하거나 스팸으로 식별된 경우에만 AWS Lambda를 사용하여 반송 메일 알림을 보낼 수 있습니다. 하지만 거부 규칙을 사용하면 SMTP 대화 이후에 거부 규칙이 처리되기 때문에 수신한 각 메시지에 대해 비용이 청구된다는 단점이 있습니다. Lambda를 사용하여 수신되는 메시지의 내용을 분석하는 경우에도 비용이 청구될 수 있습니다. 수신 규칙에 대한 자세한 내용은 수신 규칙 생성 콘솔 연습 단원을 참조하세요. Lambda를 사용하여 수신되는 이메일 분석에 대한 자세한 내용은 Lambda 함수 예제 단원을 참조하십시오.

메일 스트림

메일 스트림을 어떻게 나누고 싶으십니까?

도메인은 다양한 종류의 메일을 수신합니다. 예를 들어 도메인이 수신하는 메일 중에서 user@example.com으로 가는 메일은 개인 수신함으로 들어가야 합니다. 한편 unsubscribe@example.com으로 가는 메일은 자동화 시스템으로 처리하는 것이 좋습니다. 이처럼 이메일을 종류에 따라 다르게 처리할 수 있도록 수신 규칙을 사용해 수신 메일을 분류할 수 있습니다. 수신 규칙 설정 방법에 대한 자세한 내용은 다음(수신 규칙 생성하기)을 참조하세요.

이메일 수신 인증 및 맬웨어 검사

Amazon SES는 수신된 각 이메일을 인증하고 해당 이메일 콘텐츠에서 스팸 및 맬웨어를 선택적으로 검사합니다. SES는 이메일 인증 또는 콘텐츠 검색 결과에 따라 수신된 이메일에 대해 어떠한 작업도 수행하지 않습니다. 그러나 이러한 작업의 결과는 Amazon SNS 알림 또는 Amazon S3로 전송된 메시지의 헤더와 같은 SES 수신 규칙 작업에서 사용할 수 있는 속성으로 제공됩니다.

이메일 인증

Amazon SES는 SPF, DKIM 및 DMARC를 사용하여 수신된 각 이메일을 인증합니다. 각 인증 메커니즘의 결과는 활성 수신 규칙 세트의 규칙을 평가하는 과정에서 SES가 발송하는 Amazon SNS 알림에 제공됩니다. 또한 Amazon S3의 이메일 사본을 수신하도록 선택한 경우 이메일 인증 결과는 SES가 이메일의 헤더 섹션에 추가하는 Authentication-Results 헤더에 캡처됩니다.

Authentication-Results: example.com; spf=pass (spfCheck: 10.0.0.1 is permitted by domain of example.com) client-ip=10.0.0.1; envelope-from=example@example.com; helo=10.0.0.1; dkim=pass header.i=example.com; dkim=permerror header.i=some-example.com; dmarc=pass header.from=example@example.com;

Authentication-Results 헤더는 RFC 8601에 설명되어 있습니다.

스팸 및 맬웨어 탐지를 위한 이메일 콘텐츠 검사

Amazon SES는 이메일과 일치하는 수신 규칙의 ScanEnabled(API) 또는스팸 및 바이러스 검사 속성 값에 따라 수신된 이메일 콘텐츠에서 맬웨어를 검사합니다. 기본적으로 SES는 수신된 이메일 콘텐츠에서 맬웨어를 검사합니다. 특정 수신 규칙과 일치하는 수신된 이메일에 대한 콘텐츠 검사를 비활성화하려면 API를 사용하는 경우 수신 규칙의 ScanEnabled 플래그를 false로 지정하거나 콘솔을 사용하는 경우 스팸 및 바이러스 검사 확인란을 선택 해제해야 합니다. 이메일과 일치하는 수신 규칙에 대한 검사를 활성화한 경우 콘텐츠 검색 결과는 활성 수신 규칙 세트의 규칙을 평가하는 과정에서 SES가 발송하는 Amazon SNS 알림에 제공됩니다. 또한 Amazon S3의 이메일 사본을 수신하도록 선택한 경우 콘텐츠 검사 결과는 SES가 이메일의 헤더 섹션에 추가하는 X-SES-Spam-VerdictX-SES-Virus-Verdict 헤더에 캡처됩니다.

X-SES-Spam-Verdict: PASS X-SES-Virus-Verdict: FAIL

위의 헤더에 사용할 수 있는 값은 다음에 나열되어 있습니다.

이제 이메일 수신 개념, 작동 방식 및 사용 사례에 대해 이해했으므로 이메일 수신 설정하기로 이동하여 시작할 수 있습니다.