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

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

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

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

이러한 설정은 되돌릴 수 있습니다. 필요한 경우 이러한 설정 사이를 전환하도록 사용자 풀을 업데이트할 수 있습니다.

기본 이메일 기능

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

기본 기능을 사용하는 경우 AWS에서 관리하는 Amazon SES 리소스를 사용하여 이메일 메시지를 보낼 수 있습니다. Amazon SES는 하드 바운스를 반환하는 이메일 주소를 계정 수준 억제 목록 또는 글로벌 억제 목록에 추가합니다. 전달 불가능한 이메일 주소가 나중에 전달 가능한 이메일 주소가 되는 경우 사용자 풀이 기본 기능을 사용하도록 구성되어 있는 동안에는 제외 목록에서의 이메일 주소 제거를 제어할 수 없습니다. 이메일 주소는 AWS에서 관리하는 억제 목록에 무기한 남아 있을 수 있습니다. 전달 불가능한 이메일 주소를 관리하려면 다음 섹션의 설명대로 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 리전을 선택하면 사용자 풀을 생성한 리전과 동일한 리전을 선택할 수 있습니다. 일부 리전에서 Amazon Cognito 사용자 풀을 사용하면 대체 리전인 미국 동부(버지니아 북부), 미국 서부(오레곤) 또는 유럽(아일랜드)에 있는 Amazon SES 리소스를 사용할 수도 있습니다.

이메일 작업을 보다 빠르고 안정적으로 수행하려면 사용자 풀이 생성된 AWS 리전에서 Amazon SES 구성을 사용합니다. Amazon Cognito의 리전 간 Amazon SES 구성을 지원하면 서비스가 시작될 때 Amazon Cognito 요구 사항을 준수하기 위해 생성된 사용자 풀 리소스에 대한 연속성이 제공됩니다. 해당 기간 동안 생성된 사용자 풀 리소스는 제한된 수 AWS 리전의 Amazon SES 리소스만 사용할 수 있습니다.

참고

AWS Management Console에서 새 Amazon Cognito 콘솔 환경으로 전환한 후에만 동일한 리전에서 Amazon SES 리소스를 사용할 수 있습니다.

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

다음 표는 Amazon SES 자격 증명을 Amazon Cognito와 함께 사용할 수 있는 AWS 리전을 보여줍니다.

Amazon Cognito 사용자 풀 AWS 리전 Amazon Simple Email Service 지원 AWS 리전

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

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

미국 동부(오하이오)

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

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

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

미국 서부(오리건)

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

캐나다(중부)

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

아시아 태평양(도쿄)

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

아시아 태평양(서울)

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

아시아 태평양(뭄바이)

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

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

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

아시아 태평양(시드니)

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

유럽(아일랜드)

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

유럽(런던)

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

유럽(파리)

유럽(파리)

유럽(프랑크푸르트)

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

유럽(스톡홀름)

유럽(스톡홀름)

중동(바레인)

중동(바레인)

남아메리카(상파울루)

남아메리카(상파울루)

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

사용자 풀에 대한 이메일 설정을 구성하려면 다음 단계를 완료하세요. 사용하는 설정에 따라 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를 처음 사용하는 사용자는 자신의 AWS 계정이 해당 리전에 대한 Amazon SES 샌드박스에 배치됩니다. Amazon SES는 사기 및 부정 사용을 방지하기 위해 샌드박스를 사용합니다. Amazon SES 구성을 사용하여 이메일 전송을 처리하는 경우 먼저 AWS 계정을 샌드박스 외부로 이동해야 Amazon Cognito가 사용자에게 이메일을 보낼 수 있습니다.

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

샌드박스에서 AWS 계정을 제거하려면 Amazon Simple Email Service 개발자 가이드에서 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 콘솔 또는 PutIdentityPolicy API를 사용하여 정책을 연결해야 합니다.

참고

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

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

예 전송 권한 부여 정책

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

{ "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>" } } } ] }

이 예제에서 "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가 이 역할을 생성하려면 먼저 사용자 풀을 설정하는 데 사용하는 IAM 권한에 iam:CreateServiceLinkedRole 작업을 포함해야 합니다. IAM에서 권한을 업데이트하는 방법에 대한 자세한 내용은 IAM 사용 설명서에서 IAM 사용자의 권한 변경을 참조하세요.

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

4단계: 사용자 풀 구성

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

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

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

  • Amazon SES 구성

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

Original console

사용자 지정 이메일 주소를 사용하도록 사용자 풀을 구성하려면

  1. https://console.aws.amazon.com/cognito에서 Amazon Cognito 콘솔을 엽니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. 사용자 풀 관리(Manage User Pools)를 선택합니다.

  3. 사용자 풀(Your User Pools) 페이지에서 구성할 사용자 풀을 선택합니다.

  4. 왼쪽의 탐색 메뉴에서 메시지 사용자 지정을 선택합니다.

  5. 사용자 지정 발신 주소를 사용하는 경우 사용자 지정 발신 주소 추가(Add custom FROM address)를 선택하고 다음 단계를 완료하세요.

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

    2. 소스 ARN에서 이메일 주소를 선택합니다. 선택한 리전의 Amazon SES에서 확인된 이메일 주소를 사용합니다.

    3. 발신 이메일 주소에서 이메일 주소를 선택합니다. 이메일 주소만 제공하거나, 이메일 주소와 친숙한 이름을 Jane Doe <janedoe@example.com> 포맷으로 제공할 수 있습니다.

  6. Amazon SES 구성을 통해 이메일을 보내시겠습니까? 아래에서 예 - Amazon SES를 사용합니다 또는 아니오 - Cognito(기본값)을 사용합니다를 선택합니다.

    Amazon SES를 사용하도록 선택한 경우 변경 사항이 저장된 후 Amazon Cognito에서 서비스 연결 역할을 생성합니다.

  7. 사용자 지정 회신 주소를 사용하는 경우 사용자 지정 회신 주소 추가를 선택합니다. 그런 다음 사용자가 발신 주소로 보내는 메시지를 수신하려는 이메일 주소를 입력합니다.

  8. 이메일 계정 옵션 설정을 마치면 변경 사항 저장을 선택합니다.

New console

사용자 지정 이메일 주소를 사용하도록 사용자 풀을 구성하려면

  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)을 선택합니다.

관련 주제