Amazon SES에 대한 액세스 제어 - Amazon Simple Email Service

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Amazon SES에 대한 액세스 제어

AWS Identity and Access Management(IAM)에서 Amazon Simple Email Service(Amazon SES)를 사용하여 IAM 사용자, 그룹 또는 역할이 수행할 수 있는 Amazon SES API 작업을 지정할 수 있습니다. (이 주제에서 우리는 이러한 실체들을 집합적으로 사용자.) 또한 사용자가 이메일의 "보낸 사람", 수신자 및 "반송 경로" 주소에 사용할 수 있는 이메일 주소를 제어할 수 있습니다.

예를 들어, 조직의 사용자가 이메일은 보낼 수 있지만 전송 통계 확인 등의 관리 작업은 수행하지 못하도록 하는 IAM 정책을 만들 수 있습니다. 또 다른 예를 들면, 사용자가 계정에서 Amazon SES를 통해 이메일을 보낼 수 있지만 특정 "From" 주소를 사용하는 경우에만 허용하는 정책을 작성할 수 있습니다.

IAM을 사용하려면 권한을 명시적으로 정의하는 문서인 IAM 정책을 정의하고 사용자에게 해당 정책을 연결합니다. IAM 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서를 참조하십시오. 정책에서 설정하는 제한 사항의 적용 외에는 사용자가 Amazon SES와 상호 작용하는 방법 또는 Amazon SES에서 요청을 수행하는 방법이 변경되지 않습니다.

참고

또한 전송 권한 부여 정책을 사용하여 Amazon SES에 대한 액세스를 제어할 수 있습니다. IAM 정책은 개별 IAM 사용자가 수행할 수 있는 작업을 제한하지만 전송 권한 부여 정책은 확인된 개별 ID를 사용할 수 있는 방법을 제한합니다. 또한 전송 권한 부여 정책만 교차 계정 액세스 권한을 부여할 수 있습니다. 권한 부여 전송에 대한 자세한 내용은 Amazon SES에서 전송 권한 부여 사용 단원을 참조하십시오.

기존 IAM 사용자의 Amazon SES SMTP 자격 증명을 생성하는 방법에 대한 자세한 내용은 Amazon SES SMTP 자격 증명 받기 단원을 참조하십시오.

Amazon SES 액세스에 대한 IAM 정책 생성

이 단원에서는 특히 Amazon SES에서 IAM 정책을 사용하는 방법을 설명합니다. 일반적으로 IAM 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서를 참조하십시오.

다음 세 가지 이유로 Amazon SES에서 IAM을 사용할 수 있습니다.

  • 이메일 전송 작업을 제한하기 위해

  • 사용자가 전송하는 이메일의 "From", 수신자 및 "Return-Path" 주소를 제한하기 위해

  • 일반적인 API 사용을 제어하기 위해(예: 사용자가 사용 권한이 있는 API를 호출할 수 있는 시간)

작업 제한

사용자가 수행할 수 있는 Amazon SES 작업을 제어하려면 IAM 정책의 Action 요소를 사용합니다. 다음을 설정할 수 있습니다. Action 요소에서 Amazon SES API 이름 앞에 소문자 문자열을 붙여 API 작업 ses:. 예를 들어, Action 까지 ses:SendEmail, ses:GetSendStatistics, 또는 ses:* (모든 조치에 대해).

그런 다음 Action에 따라 Resource 요소를 다음과 같이 지정합니다.

만약 Action 요소는 이메일 전송 API(즉, ses:SendEmail 및/또는 ses:SendRawEmail):

  • 사용자가 AWS 계정의 모든 자격 증명에서 전송하도록 허용하려면 Resource를 *로 설정합니다.

  • 사용자가 전송할 수 있는 자격 증명을 제한하려면 Resource를 사용자가 사용할 수 있도록 허용한 자격 증명의 ARN으로 설정합니다.

만약 Action 요소는 모든 API에 대한 액세스를 허용합니다.

  • 사용자가 전송할 수 있는 자격 증명을 제한하지 않으려면 Resource를 *로 설정합니다.

  • 사용자가 전송할 수 있는 자격 증명을 제한하려면 다음과 같은 두 가지 정책(또는 한 정책 안에 두 가지 문)을 만들어야 합니다.

    • 허용되는 비 이메일 전송 API의 명시적 목록으로 설정된 Action과 *로 설정된 Resource가 포함된 정책

    • 이메일 전송 API(ses:SendEmail 및/또는 ses:SendRawEmail) 중 하나로 설정된 Action과 사용자가 사용할 수 있도록 허용한 자격 증명의 ARN으로 설정된 Resource가 포함된 정책

사용할 수 있는 Amazon SES 작업의 목록은 Amazon Simple Email Service API Reference 단원을 참조하십시오. IAM 사용자가 SMTP 인터페이스를 사용할 경우 ses:SendRawEmail에 대한 액세스를 최소로 허용해야 합니다.

이메일 주소 제한

특정 이메일 주소로 사용자를 제한하려면 Condition 블록을 사용하면 됩니다. Condition 블록에서 IAM 사용 설명서의 설명과 같이 조건 키를 사용하여 조건을 지정합니다. 조건 키를 사용하여 다음과 같은 이메일 주소를 제어할 수 있습니다.

참고

이러한 이메일 주소 조건 키는 아래 표에 나와 있는 API에만 적용됩니다.

조건 키

설명

API

ses:Recipients

To:, "CC" 및 "BCC" 주소가 포함된 수신자 주소를 제한합니다.

SendEmail, SendRawEmail

ses:FromAddress

"From" 주소를 제한합니다.

SendEmail, SendRawEmail, SendBounce

ses:FromDisplayName

표시 이름으로 사용된 "From" 주소를 제한합니다.

SendEmail, SendRawEmail

ses:FeedbackAddress

이메일 피드백 전달로 반송 메일과 불만 제기를 전송할 수 있는 주소인 "Return-Path" 주소를 제한합니다. 이메일 피드백 전달에 대한 자세한 내용은 이메일로 보낸 Amazon SES 알림 단원을 참조하십시오.

SendEmail, SendRawEmail

일반 API 사용 제한

AWS 차원 조건 키를 사용하여 사용자가 API에 액세스할 수 있는 날짜와 시간 등의 요소를 기반으로 Amazon SES에 대한 액세스를 제한할 수 있습니다. Amazon SES는 다음과 같은 AWS 차원 정책 키만 구현합니다.

  • aws:CurrentTime

  • aws:EpochTime

  • aws:SecureTransport

  • aws:SourceIp

  • aws:UserAgent

이 키에 대한 자세한 내용은 IAM 사용 설명서를 참조하십시오.

Amazon SES에 대한 IAM 정책의 예

이 주제에서는 사용자의 Amazon SES에 대한 액세스를 특정 조건에서만 허용하는 정책 예를 다룹니다.

모든 Amazon SES 작업에 대한 모든 액세스 허용

다음 정책은 사용자가 모든 Amazon SES 작업을 호출할 수 있도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:*" ], "Resource":"*" } ] }

이메일 전송 작업에 대한 액세스만 허용

다음 정책은 사용자가 Amazon SES를 사용하여 이메일을 전송하는 것을 허용하지만 Amazon SES 전송 통계에 액세스하는 것과 같은 관리 작업을 수행하는 것은 허용하지 않습니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*" } ] }

전송 기간 제한

다음 정책은 사용자가 2018년 9월에만 Amazon SES 이메일 전송 API를 호출하도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ] }

수신자 주소 제한

다음 정책은 수신자 주소의 도메인이 example.com인 경우에만 사용자가 Amazon SES 이메일 전송 API를 호출하도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":[ "*@example.com" ] } } } ] }

"From" 주소 제한

다음 정책은 "From" 주소가 marketing@example.com인 경우에만 사용자가 Amazon SES 이메일 전송 API를 호출하도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"marketing@example.com" } } } ] }

다음 정책은 사용자가 반송 전송 "보낸 사람" 주소가 bounce@예시.com.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendBounce" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FromAddress":"bounce@example.com" } } } ] }

이메일 발신자의 표시 이름 제한

다음 정책은 "From" 주소의 표시 이름에 Marketing이 포함되어 있는 경우에만 사용자가 Amazon SES 이메일 전송 API를 호출하도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ] }

반송 메일 및 수신 거부 피드백 대상 제한

다음 정책은 이메일의 "Return-Path"가 feedback@example.com으로 설정되어 있는 경우에만 사용자가 Amazon SES 이메일 전송 API를 호출하도록 허용합니다.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Resource":"*", "Condition":{ "StringEquals":{ "ses:FeedbackAddress":"feedback@example.com" } } } ] }

Amazon SES에 관련된 다양한 주제에 대한 정보와 토론은 AWS 메시징 및 타게팅 블로그를 참조하십시오. 질문을 찾아보거나 게시하려면 Amazon SES 포럼으로 이동하십시오.