Amazon Simple Email Service
개발자 안내서

Amazon SES 전송 권한 부여 정책 예제

전송 권한 부여에서는 사용자가 위임 발신자에게 사용자를 대신하여 이메일을 전송하도록 허용하는 세부 조건을 지정할 수 있습니다.

위임 발신자 지정

사용자가 권한을 부여하는 엔터티인 보안 주체는 AWS 계정, AWS Identity and Access Management(IAM) 사용자 또는 AWS 서비스일 수 있습니다.

다음 예제는 AWS ID 123456789012에 확인된 자격 증명 example.com(AWS 계정 888888888888 소유)에서 이메일을 전송하도록 허용하는 간단한 정책을 보여줍니다. 이 정책의 Condition 문은 위임자(즉, AWS ID 123456789012)가 주소 marketing+.*@example.com에서만 이메일을 보내도록 허용합니다. 여기서 .*는 발신자가 marketing+ 다음에 추가하려는 임의의 문자열입니다.

{ "Id":"SampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeMarketer", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"marketing+.*@example.com" } } } ] }

다음 정책 예제는 두 IAM 사용자에게 자격 증명 example.com에서 이메일을 전송할 수 있는 권한을 부여합니다. IAM 사용자는 Amazon 리소스 이름(ARN)을 사용하여 지정됩니다.

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeIAMUser", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::444455556666:user/Jane" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ] }

다음 정책 예제는 Amazon Cognito에게 자격 증명 example.com에서 이메일을 전송할 수 있는 권한을 부여합니다.

{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeService", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "Service":[ "cognito-idp.amazonaws.com" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ] } ] }

"From" 주소 제한

확인된 도메인을 사용하면 위임 발신자만 지정된 이메일 주소에서 전송하도록 허용하는 정책을 생성할 수 있습니다. "From" 주소를 제한하려면 ses:FromAddress 키에서 조건을 설정합니다. 다음 정책은 AWS 계정 ID 123456789012가 자격 증명 example.com에서 이메일을 전송하도록 허용하지만 이메일 주소 sender@example.com만 사용하도록 한정합니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringEquals":{ "ses:FromAddress":"sender@example.com" } } } ] }

위임자가 이메일을 전송할 수 있는 시간 제한

위임 발신자가 특정 시간대 또는 특정 날짜 범위 내에서만 이메일을 전송할 수 있도록 발신자 권한 부여 정책을 구성할 수도 있습니다. 예를 들어 이메일 캠페인 전송이 2018년 9월 한 달 동안 예정되어 있는 경우 다음 정책을 사용하여 위임자가 해당 월에만 이메일을 전송할 수 있도록 제한할 수 있습니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlTimePeriod", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2018-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2018-10-01T12:00Z" } } } ] }

이메일 전송 작업 제한

발신자가 Amazon SES에서 이메일을 전송할 수 있는 작업은 발신자가 이메일의 형식을 어느 정도 제어하기를 원하는가에 따라 SendEmailSendRawEmail의 두 가지가 있습니다. 전송 권한 부여 정책을 통해 위임 발신자가 두 작업 중 하나만 사용하도록 제한할 수 있습니다. 하지만 많은 자격 증명 소유자는 이메일 전송 호출의 세부 정보를 위임 발신자가 선택할 수 있도록 정책에서 두 작업을 모두 활성화합니다.

참고

위임 발신자가 SMTP 인터페이스를 통해 Amazon SES에 액세스하도록 허용하려면 최소한 SendRawEmail을 선택해야 합니다.

작업을 제한하려는 사용 사례라면 전송 권한 부여 정책에 작업 중 하나만 포함시킵니다. 다음 예제는 작업을 SendRawEmail로 제한하는 방법을 보여줍니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlAction", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendRawEmail" ] } ] }

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

일부 이메일 클라이언트는 실제 "From" 주소가 아니라 이메일 발신자의 "대화명" 이름을 표시합니다(이메일 헤더가 제공하는 경우). 예를 들어 "John Doe <johndoe@example.com>"의 표시 이름은 John Doe입니다. 예를 들어 user@example.com에서 이메일을 전송하지만 수신자에게는 user@example.com이 아니라 Marketing이 보낸 이메일로 표시되기를 원할 수 있습니다. 다음 정책은 AWS 계정 ID 123456789012가 자격 증명 example.com에서 이메일을 전송하도록 허용하지만 "발신" 주소의 표시 이름에 Marketing이 포함되도록 한정합니다.

{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ] }

복수의 문 사용

전송 권한 부여 정책에는 여러 문이 포함될 수 있습니다. 다음의 정책 예제에는 문이 2개입니다. 첫 번째 문은 2개의 AWS 계정이 "발신" 주소 및 피드백 주소가 모두 도메인 example.com에 속하는 주소여야 한다는 조건으로 sender@example.com에서 이메일을 전송하도록 권한을 부여합니다. 두 번째 문은 IAM 사용자가 example.com 도메인에 속하는 수신자의 이메일 주소인 조건으로 sender@example.com에서 이메일을 전송하도록 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAWS", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/sender@example.com", "Principal":{ "AWS":[ "111111111111", "222222222222" ] }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"*@example.com", "ses:FeedbackAddress":"*@example.com" } } }, { "Sid":"AuthorizeInternal", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/sender@example.com", "Principal":{ "AWS":"arn:aws:iam::333333333333:user/Jane" }, "Action":[ "SES:SendEmail", "SES:SendRawEmail" ], "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":"*@example.com" } } } ] }