Amazon Cognito 사용자 풀에 대한 이메일 설정 - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Cognito 사용자 풀에 대한 이메일 설정

사용자 풀에 대한 클라이언트 앱의 특정 이벤트로 인해 Amazon Cognito에서 사용자에게 이메일을 보낼 수 있습니다. 예를 들어 이메일 확인을 요구하도록 사용자 풀을 구성한 경우 사용자가 앱에서 새 계정을 등록하거나 암호를 다시 설정하면 Amazon Cognito에서 이메일을 보냅니다. 이메일을 시작한 작업이 무엇인지에 따라 이메일에는 확인 코드가 들어가거나 임시 암호가 들어갑니다.

이메일 전송을 처리하려면 다음 옵션 중 하나를 사용할 수 있습니다.

사용자 풀을 생성한 후 전송 옵션을 변경할 수 있습니다.

Amazon Cognito는 사용자가 입력할 수 있는 코드나 선택할 수 있는 URL 링크가 포함된 이메일 메시지를 사용자에게 보냅니다. 다음 표에서는 이메일 메시지를 생성할 수 있는 이벤트를 보여줍니다.

메시지 옵션

활동 API 작업 전송 옵션 포맷 옵션 사용자 지정 가능 메시지 템플릿
Forgot password ForgotPassword Email, SMS code No N/A
Invitation AdminCreateUser Email, SMS code Yes 초대 메시지
Self-registration SignUp Email, SMS code, link Yes 검증 메시지
Email address or phone number verification UpdateUserAttributes Email, SMS code Yes 검증 메시지
Multi-factor authentication (MFA) AdminInitiateAuth, InitiateAuth SMS code Yes¹ MFA 메시지

¹ SMS 메시지의 경우.

Amazon SES는 이메일 메시지에 대해 요금을 부과합니다. 자세한 내용은 Amazon SES 요금을 참조하세요.

기본 이메일 기능

Amazon Cognito는 해당 기본 이메일 기능을 사용하여 이메일 전송을 처리할 수 있습니다 기본 옵션을 사용하면 Amazon Cognito는 사용자 풀에 대해 매일 제한된 수의 이메일 보내기만 허용합니다. 서비스 제한에 대한 자세한 내용은 Amazon Cognito의 할당량 섹션을 참조하세요. 일반적인 프로덕션 환경의 경우 기본 이메일 제한은 필수 전송 볼륨보다 적습니다. 더 많은 전송량을 활성화하려면 Amazon SES 이메일 구성을 사용할 수 있습니다.

기본 기능을 사용하는 경우 AWS 에서 관리하는 Amazon SES 리소스를 사용하여 이메일 메시지를 보낼 수 있습니다. Amazon SES는 하드 바운스를 반환하는 이메일 주소를 계정 수준 억제 목록 또는 글로벌 억제 목록에 추가합니다. 전달 불가능한 이메일 주소가 나중에 전달 가능한 이메일 주소가 되는 경우 사용자 풀이 기본 기능을 사용하도록 구성되어 있는 동안에는 제외 목록에서의 이메일 주소 제거를 제어할 수 없습니다. 이메일 주소는 AWS-managed 금지 목록에 무기한으로 남아 있을 수 있습니다. 전달 불가능한 이메일 주소를 관리하려면 다음 섹션의 설명대로 Amazon SES 이메일 구성을 계정 수준 억제 목록과 함께 사용합니다.

기본 이메일 구성을 사용하면 다음 이메일 주소 중 하나를 발신 주소로 사용할 수 있습니다.

  • 기본 이메일 주소 no-reply@verificationemail.com입니다.

  • 사용자 지정 이메일 주소. 자신의 이메일 주소를 사용하려면 먼저 Amazon SES로 확인해야 하며 이 주소를 사용할 수 있는 권한을 Amazon Cognito에 부여해야 합니다.

Amazon SES 이메일 구성

애플리케이션에 기본 옵션으로 제공되는 것보다 더 많은 전송 볼륨이 필요할 수도 있습니다. 가능한 전송량을 늘리려면 Amazon SES 리소스를 사용자 풀과 함께 사용하여 사용자에게 이메일을 보냅니다. 자체 Amazon SES 구성을 사용하여 이메일 메시지를 보낼 때 이메일 보내기 활동을 모니터링할 수도 있습니다.

Amazon SES 구성을 사용하려면 먼저 Amazon SES로 하나 이상의 이메일 주소 또는 도메인을 확인해야 합니다. 확인된 이메일 주소 또는 확인된 도메인에 속한 주소를 사용자 풀에 할당한 발신 이메일 주소로 사용합니다. Amazon Cognito에서 사용자에게 이메일을 보내면 Amazon SES가 호출되고 이메일 주소를 사용합니다.

Amazon SES 구성을 사용할 때 다음 조건이 적용됩니다.

  • 사용자 풀에 대한 이메일 전송 제한은 AWS 계정에서 Amazon SES 확인 이메일 주소에 적용되는 것과 동일한 제한입니다.

  • 글로벌 억제 목록을 재정의하는 Amazon SES의 계정 수준 억제 목록을 사용하여 전달 불가능한 이메일 주소에 대한 메시지를 관리할 수 있습니다. 계정 수준 억제 목록을 사용할 때 이메일 메시지 반송은 발신자로서의 계정 평판에 영향을 미칩니다. 자세한 내용은 Amazon Simple Email Service 개발자 안내서의 Amazon SES 계정 수준 금지 목록 사용을 참조하세요.

Amazon SES 이메일 구성 리전

Amazon Cognito 이메일 메시지에 사용할 Amazon SES 리소스가 AWS 리전 포함된 지역을 선택하면 일반적으로 사용자 풀을 생성한 지역과 동일한 지역을 선택할 수 있습니다. 가능한 경우 사용자 풀을 생성한 AWS 리전 곳에서 검증된 ID를 사용하십시오.

일부 리전에서 Amazon Cognito 사용자 풀을 사용하면 대체 리전인 미국 동부(버지니아 북부), 미국 서부(오레곤) 또는 유럽(아일랜드)에 있는 Amazon SES 리소스를 사용할 수도 있습니다. 이 기능은 서비스 시작 시 Amazon Cognito 요구 사항을 준수하기 위해 생성한 사용자 풀 리소스의 연속성을 지원합니다. 이 기간 동안 생성한 사용자 풀 리소스는 제한된 수의 Amazon SES 리소스만 사용할 수 AWS 리전있습니다.

Amazon SES를 사용할 수 없는 일부 다른 지역의 사용자 풀에서는 대체 지역에서만 검증된 ID를 가진 메시지를 보낼 수 있습니다. 이러한 지역에서는 Amazon SES 전송 권한 부여 정책이 지역별 Amazon Cognito 서비스 보안 주체를 신뢰해야 합니다. 자세한 설명은 기본 이메일 기능을 사용할 수 있는 권한을 부여하려면 섹션을 참조하세요.

AWS Command Line Interface, API 또는 AWS CloudFormation를 사용하여 Amazon Cognito 사용자 풀 리소스를 생성하는 경우, 사용자 풀은 EmailConfigurationType객체의 SourceArn 파라미터가 사용자 풀에 지정하는 Amazon SES ID와 함께 이메일 메시지를 보냅니다. Amazon SES ID는 지원되는 AWS 리전 ID를 차지해야 합니다. EmailSendingAccountCOGNITO_DEFAULT이고 SourceArn 파라미터가 지정되지 않은 경우 Amazon Cognito는 사용자 풀이 생성된 리전의 리소스를 사용하여 no-reply@verificationemail.com에서 이메일 메시지를 보냅니다.

다음 표는 Amazon Cognito에서 Amazon SES ID를 사용할 수 있는 AWS 리전 위치를 보여줍니다.

사용자 풀 지역 아마존 SES 지원 지역

미국 동부(버지니아 북부)

미국 서부(오레곤), 미국 동부(버지니아 북부), 유럽(아일랜드)

미국 동부(오하이오)

미국 서부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

미국 서부(캘리포니아 북부)

미국 서부(캘리포니아 북부)

미국 서부(오리건)

미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

캐나다(중부)

캐나다(중부), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

아시아 태평양(도쿄)

아시아 태평양(도쿄), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

아시아 태평양(서울)

아시아 태평양(서울), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

아시아 태평양(뭄바이)

아시아 태평양(뭄바이), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

아시아 태평양(싱가포르)

아시아 태평양(싱가포르), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

아시아 태평양(시드니)

아시아 태평양(시드니), 미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

유럽(아일랜드)

미국 동부(버지니아 북부), 미국 서부(오레곤), 유럽(아일랜드)

유럽(런던)

유럽(런던), 미국 동부(버니지아 북부), 미국 서부(오레곤), 유럽(아일랜드)

유럽(파리)

유럽(파리)

유럽(프랑크푸르트)

유럽(프랑크푸르트), 미국 동부(버니지아 북부), 미국 서부(오레곤), 유럽(아일랜드)

유럽(취리히)

유럽(프랑크푸르트)

유럽(스톡홀름)

유럽(스톡홀름)

유럽(밀라노) 유럽(밀라노)

중동(바레인)

중동(바레인)

중동(UAE)

유럽(프랑크푸르트)

남아메리카(상파울루)

남아메리카(상파울루)

아시아 태평양(오사카)

아시아 태평양(오사카)

아시아 태평양(자카르타)

아시아 태평양(자카르타)

이스라엘(텔아비브)

이스라엘(텔아비브)

아프리카(케이프타운)

아프리카(케이프타운)

사용자 풀에 대한 이메일 구성

사용자 풀에 대한 이메일 설정을 구성하려면 다음 단계를 완료하세요. 사용하는 설정에 따라 Amazon SES, AWS Identity and Access Management (IAM) 및 Amazon Cognito에서 IAM 권한이 필요할 수도 있습니다.

참고

이러한 단계에서 생성되는 리소스는 AWS 계정간에 공유할 수 없습니다. 예를 들어 사용자 풀을 구성한 한 계정을 다른 계정의 Amazon SES 이메일 주소로 사용할 수 없습니다. Amazon Cognito를 여러 계정에서 사용하는 경우 각 계정에 대해 이러한 단계를 반복합니다.

1단계: Amazon SES로 이메일 주소 또는 도메인 확인

사용자 풀을 구성하기 전에 다음 중 하나를 수행하려면 Amazon SES로 하나 이상의 도메인 또는 이메일 주소를 확인해야 합니다.

  • 자신의 이메일 주소를 발신 주소로 사용합니다.

  • Amazon SES 구성을 사용하여 이메일 전송을 처리합니다.

이메일 주소나 도메인을 확인하여 이메일 주소를 소유하고 있음을 확인하면 무단 사용을 방지하는 데 도움이 됩니다.

Amazon SES에서 이메일 확인에 관한 자세한 내용은 Amazon Simple Email Service 개발자 가이드에서 Amazon SES에서 이메일 주소 확인을 참조하세요. Amazon SES로 도메인을 확인하는 방법에 대한 자세한 내용은 도메인 확인을 참조하세요.

2단계: Amazon SES 샌드박스에서 계정 이동

기본 Amazon Cognito 이메일 기능을 사용하는 경우 이 단계를 건너뜁니다.

어느 곳에서든 AWS 리전 Amazon SES를 처음 사용하면 해당 지역의 Amazon SES 샌드박스에 배치됩니다. AWS 계정 Amazon SES는 사기 및 부정 사용을 방지하기 위해 샌드박스를 사용합니다. Amazon SES 구성을 사용하여 이메일 전송을 처리하는 경우 먼저 AWS 계정 을 샌드박스 외부로 이동해야 Amazon Cognito가 사용자에게 이메일을 보낼 수 있습니다.

샌드박스에서 Amazon SES는 전송할 수 있는 이메일 수와 전송할 수 있는 위치를 제한합니다. Amazon SES로 확인한 주소 및 도메인에만 이메일을 보내거나 Amazon SES 메일박스 시뮬레이터 주소로 이메일을 보낼 수 있습니다. 샌드박스에 있는 동안에는 프로덕션 중인 애플리케이션에 Amazon SES 구성을 사용하지 마십시오. AWS 계정 이 경우 Amazon Cognito에서 사용자의 이메일 주소로 메시지를 보낼 수 없습니다.

AWS 계정 샌드박스에서 사용자를 제거하려면 Amazon Simple 이메일 서비스 개발자 안내서의 Amazon SES 샌드박스에서 벗어나기를 참조하십시오.

3단계: Amazon Cognito에 이메일 권한 부여

사용자에게 이메일을 보내기 전에 특정 권한을 Amazon Cognito에 부여해야 할 수도 있습니다. 사용자가 부여하는 권한과 권한을 부여하는 데 사용하는 프로세스는 기본 이메일 기능을 사용하는지 아니면 Amazon SES 구성을 사용하는지에 따라 다릅니다.

기본 Amazon Cognito 이메일 기능을 사용하는 경우에만 이 단계를 건너뜁니다.

기본 Amazon Cognito'이메일' 기능을 사용하도록 사용자 풀을 구성하는 경우 Amazon Cognito가 사용자에게 이메일을 보내는 발신 주소로 다음 주소 중 하나를 사용할 수 있습니다.

  • 기본 주소

  • Amazon SES에서 확인된 이메일 주소 또는 확인된 도메인의 이메일 주소여야 하는 사용자 정의 주소

사용자 정의 주소를 사용하는 경우 Amazon Cognito에 추가 권한이 있어야 해당 주소에서 사용자에게 이메일을 보낼 수 있습니다. 이러한 권한은 Amazon SES의 주소나 도메인에 연결된 전송 권한 부여 정책을 통해 부여됩니다. Amazon Cognito 콘솔을 사용하여 사용자 풀에 사용자 정의 주소를 추가하는 경우 정책이 Amazon SES 확인 이메일 주소에 자동으로 연결됩니다. 하지만 AWS CLI 또는 Amazon Cognito API를 사용하는 등 콘솔 외부에서 사용자 풀을 구성하는 경우 Amazon SES 콘솔 또는 API를 사용하여 정책을 연결해야 합니다. PutIdentityPolicy

참고

AWS CLI 또는 Amazon Cognito API를 사용하여 확인된 도메인의 FROM 주소만 구성할 수 있습니다.

전송 권한 부여 정책은 Amazon Cognito를 사용하여 Amazon SES를 호출하는 계정 리소스를 기준으로 액세스를 허용하거나 거부합니다. 리소스 기반 정책에 대한 자세한 내용은 IAM 사용 설명서를 참조하세요. Amazon SES 개발자 가이드에서 리소스 기반 정책의 예제도 찾아볼 수 있습니다.

예 전송 권한 부여 정책

다음 전송 권한 부여 정책 예제는 Amazon Cognito에 Amazon SES 확인 자격 증명을 사용할 수 있는 제한적인 권한을 부여합니다. Amazon Cognito는 aws:SourceArn 조건의 사용자 풀과 aws:SourceAccount 조건의 계정을 둘 다 대신하는 경우에만 이메일 메시지를 전송할 수 있습니다.

Regions with Amazon SES

사용자 풀 지역 또는 대체 지역의 전송 권한 부여 정책은 Amazon Cognito 서비스 주체가 이메일 메시지를 보낼 수 있도록 허용해야 합니다. 자세한 내용은 지역 표를 참조하십시오. 사용자 풀 지역이 Amazon SES 지역의 하나 이상의 값과 일치하는 경우, 다음 예제에서 글로벌 서비스 보안 주체를 사용하여 전송 권한 부여 정책을 구성하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "stmnt1234567891234", "Effect": "Allow", "Principal": { "Service": [ "email.cognito-idp.amazonaws.com" ] }, "Action": [ "SES:SendEmail", "SES:SendRawEmail" ], "Resource": "<your SES identity ARN>", "Condition": { "StringEquals": { "aws:SourceAccount": "<your account number>" }, "ArnLike": { "aws:SourceArn": "<your user pool ARN>" } } } ] }
Opt-in Regions without Amazon SES

Amazon Cognito를 사용할 수 있는 경우 모든 옵트인에서 Amazon SES를 사용할 수 AWS 리전 있는 것은 아닙니다. 중동 (UAE) 을 예로 들 수 있으며, 유럽 (프랑크푸르트) () 에서는 확인된 ID를 가진 이메일만 보낼 수 있습니다. eu-central-1 대체 지역의 전송 권한 부여 정책은 옵트인 지역의 Amazon Cognito 서비스 주체가 이메일 메시지를 보낼 수 있도록 허용해야 합니다. 자세한 내용은 지역 표를 참조하십시오. 사용자 풀 지역에 다른 Amazon SES 지역이 표시되는 경우, 다음 예와 같이 지역 서비스 보안 주체를 사용하여 전송 권한 부여 정책을 구성하십시오. 필요에 따라 예제 지역 식별자 me-central-1을 필수 지역 ID로 교체하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "stmnt1234567891234", "Effect": "Allow", "Principal": { "Service": [ "cognito-idp.me-central-1.amazonaws.com" ] }, "Action": [ "SES:SendEmail", "SES:SendRawEmail" ], "Resource": "<your SES identity ARN>", "Condition": { "StringEquals": { "aws:SourceAccount": "<your account number>" }, "ArnLike": { "aws:SourceArn": "<your user pool ARN>" } } } ] }

이 예제에서 "Sid" 값은 명령문을 고유하게 식별하는 임의 문자열입니다.

정책 구문에 대한 자세한 내용은 Amazon Simple Email Service 개발자 가이드에서 Amazon SES 전송 권한 부여 정책을 참조하세요.

자세한 내용은 Amazon Simple Email Service 개발자 가이드에서 Amazon SES 전송 권한 부여 정책 예제를 참조하세요.

Amazon SES 구성을 사용하도록 사용자 풀을 구성한 경우 Amazon Cognito는 사용자에게 이메일을 보낼 때 사용자 대신 Amazon SES를 호출할 수 있는 추가 권한이 필요합니다. 이 권한은 IAM 서비스를 사용하여 부여됩니다.

이 옵션으로 사용자 풀을 구성하면 Amazon Cognito가 AWS 계정에서 IAM 역할 유형인 서비스 연결 역할을 생성합니다. 이 역할에는 Amazon Cognito에서 Amazon SES에 액세스하여 귀하의 주소로 이메일 전송을 허용하는 권한이 포함되어 있습니다.

Amazon Cognito는 구성을 설정하는 사용자 세션의 AWS 자격 증명을 사용하여 서비스 연결 역할을 생성합니다. 이 세션의 IAM 권한에는 iam:CreateServiceLinkedRole 작업이 포함되어야 합니다. IAM의 권한에 대한 자세한 내용은 IAM 사용 설명서의 AWS 리소스 액세스 관리를 참조하십시오.

Amazon Cognito가 생성하는 서비스 연결 역할에 대한 자세한 내용은 Amazon Cognito에 서비스 연결 역할 사용 섹션을 참조하세요.

4단계: 사용자 풀 구성

다음 중 하나를 사용하여 사용자 풀을 구성하려면 다음 단계를 완료하세요.

  • 이메일 발신자로 표시되는 사용자 지정 발신 주소

  • 사용자가 발신 주소로 보낸 메시지를 받는 사용자 지정 회신 주소

  • Amazon SES 구성

참고

확인된 자격 증명이 이메일 주소인 경우 Amazon Cognito는 기본적으로 해당 이메일 주소를 FROM 및 REPLY-TO 이메일 주소로 설정합니다. 하지만 확인된 자격 증명이 도메인인 경우 FROM 및 REPLY-TO 이메일 주소의 값을 제공해야 합니다. 예를 들어 확인된 도메인이 example.com인 경우 no-reply@example.com 을 FROM 이메일 주소와 REPLY-TO 이메일 주소로 설정할 수 있습니다.

기본 Amazon Cognito 이메일 기능 및 주소를 사용하는 경우 이 절차를 생략합니다.

사용자 지정 이메일 주소를 사용하도록 사용자 풀을 구성하려면
  1. Amazon Cognito 콘솔로 이동합니다. 메시지가 표시되면 자격 증명을 입력합니다. AWS

  2. 사용자 풀(User Pools)을 선택합니다.

  3. 목록에서 기존 사용자 풀을 선택합니다.

  4. [메시징(Messaging)] 탭을 선택하고 [이메일 구성(Email configuration)]을 찾은 다음, [편집(Edit)]을 선택합니다.

  5. [이메일 구성 편집(Edit email configuration)] 페이지에서 [Amazon SES SES에서 이메일 전송(Send email from Amazon SES)] 또는 [Amazon Cognito로 이메일 전송(Send email with Amazon Cognito)]을 선택합니다. [Amazon SES에서 이메일 전송(Send email from Amazon SES)]을 선택한 경우에만 SES 리전(SES Region), 구성 집합(Configuration Set), FROM 발신자 이름(FROM sender name)을 사용자 정의할 수 있습니다.

  6. 사용자 정의 FROM 주소를 사용하려면 다음 단계를 완료합니다.

    1. [SES 리전(SES Region)]에서 확인된 이메일 주소가 포함된 리전을 선택합니다.

    2. 발신 이메일 주소(FROM email address)에서 이메일 주소를 선택합니다. Amazon SES에서 확인된 이메일 주소를 사용합니다.

    3. (선택 사항) 구성 세트(Configuration set)에서 Amazon SES에 사용할 구성 세트를 선택합니다. 이 변경 사항을 수행하고 저장하면 서비스 연결 역할이 생성됩니다.

    4. (선택 사항) 발신 발신자 주소(FROM sender address) 아래에 이메일 주소를 입력합니다. 이메일 주소만 제공하거나, 이메일 주소와 친숙한 이름을 Jane Doe <janedoe@example.com> 포맷으로 제공할 수 있습니다.

    5. (선택 사항) [REPLY-TO 이메일 주소(REPLY-TO email address)] 아래에 사용자가 FROM 주소로 보내는 메시지를 받으려는 이메일 주소를 입력합니다.

  7. 변경 사항 저장(Save changes)을 선택합니다.

관련 주제