기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Cognito 사용자 풀의 SMS 메시지 설정
사용자 풀에 대한 일부 Amazon Cognito 이벤트로 인해 Amazon Cognito가 사용자에게 SMS 문자 메시지를 보낼 수 있습니다. 예를 들어 전화 확인을 요구하도록 사용자 풀을 구성한 경우 사용자가 앱에서 새 계정을 등록하거나 암호를 다시 설정하면 Amazon Cognito에서 SMS 문자 메시지를 보냅니다. SMS 문자 메시지를 유발하는 작업에 따라 메시지에는 확인 코드, 임시 암호 또는 시작 메시지가 포함됩니다.
Amazon Cognito는 SMS 문자 메시지 전송에 Amazon Simple Notification Service(Amazon SNS)를 사용합니다. Amazon SNS는 SMS 메시지를에 전달합니다 AWS 최종 사용자 메시징 SMS. Amazon Cognito를 통해 처음으로 문자 메시지를 보내는 경우는 사용자를 샌드박스 환경에 AWS 최종 사용자 메시징 SMS 배치합니다. 샌드박스 환경에서는 애플리케이션에서 SMS 문자 메시지를 테스트할 수 있습니다. 샌드박스에서는 메시지 전송만 시뮬레이션할 수 있습니다.
참고
2024년 11월에에서 Amazon SNS SMS 메시징을 AWS 로 대체했습니다 AWS 최종 사용자 메시징 SMS. 현재 Amazon Cognito 콘솔은 Amazon SNS 리소스를 참조합니다. 사용자 풀은 패스스루인 Amazon SNS 게시 작업을 사용하여 SMS 메시지를 시작합니다 AWS 최종 사용자 메시징 SMS. 따라서가 sns:Publish
아닌에 대한 권한을 구성해야 합니다sms-voice:SendTextMessage
.
AWS 최종 사용자 메시징 SMS 는 SMS 문자 메시지에 대해 요금을 부과합니다. 자세한 내용은 AWS 최종 사용자 메시징 SMS 요금
Amazon Cognito는 사용자가 입력할 수 있는 코드와 함께 SMS 메시지를 사용자에게 보냅니다. 다음 표에서는 SMS 메시지를 생성할 수 있는 이벤트를 보여줍니다.
메시지 옵션
활동 | API 작업 | 전송 옵션 | 포맷 옵션 | 사용자 지정 가능 | 메시지 템플릿 |
---|---|---|---|---|---|
Forgot password | ForgotPassword, AdminResetUserPassword | Email, SMS | code | Yes | 검증 메시지 |
Invitation | AdminCreateUser | Email, SMS | code | Yes | 초대 메시지 |
Self-registration | SignUp, ResendConfirmationCode | Email, SMS | code, link | Yes | 검증 메시지 |
Email address or phone number verification | UpdateUserAttributes, AdminUpdateUserAttributes, GetUserAttributeVerificationCode | Email, SMS | code | Yes | 검증 메시지 |
Multi-factor authentication (MFA) | AdminInitiateAuth, InitiateAuth | Email¹, SMS, authenticator app | code | Yes² | MFA 메시지 |
One-time password authentication (OTP) | AdminInitiateAuth, InitiateAuth | Email¹, SMS | code | Yes | MFA 메시지³ |
1 Essentials 기능 계획 이상 및 Amazon SES 이메일 구성이 필요합니다.
² SMS 및 이메일 메시지의 경우.
3 사용자 풀에 MFA가 필요하거나 선택 사항인 경우에만 MFA 메시지 템플릿을 사용자 지정할 수 있습니다. MFA가 비활성화되면 Amazon Cognito는 기본 템플릿과 함께 일회용 암호를 전송합니다.
AWS 최종 사용자 메시징 SMS 는 SMS 메시지에 대해 요금을 부과합니다. 자세한 내용은 AWS 최종 사용자 메시징 SMS 요금
MFA에 대한 자세한 내용은 SMS 및 이메일 메시지 MFA 섹션을 참조하세요.
Amazon Cognito는 짧은 시간 내에 단일 대상으로 추가 이메일 또는 SMS 메시지를 전송하는 것을 방지할 수 있습니다. 사용자 풀이 영향을 받았다고 생각되면 로그에 메시지 전송 오류가 있는지 구성하고 검토한 다음 계정 팀에 문의하세요.
모범 사례
원치 않는 SMS 트래픽 양의 전 세계적 증가로 인해 일부 정부는 SMS 메시지 발신자와 수신자 사이에 장벽을 부과하고 있습니다. MFA와 사용자 업데이트에 SMS 메시지를 사용하는 경우 메시지가 전달되도록 추가 조치를 취해야 합니다. 또한 사용자가 거주할 수 있는 국가의 SMS 메시지 관련 규정을 모니터링하고 SMS 메시지 구성을 최신 상태로 유지해야 합니다. 자세한 내용은 AWS 최종 사용자 메시징 SMS 사용 설명서의 SMS 및 MMS 국가 기능 및 제한 사항을 참조하세요.
SMS 메시지를 사용한 사용자 인증과 확인은 보안 모범 사례가 아닙니다. 전화번호는 소유자가 바뀔 수 있으며, 사용자의 가지고 있는 것 MFA 요소를 확실히 대표하지 못할 수 있습니다. 대신 앱이나 서드 파티 IdP를 사용하여 TOTP MFA를 구현하세요. 사용자 정의 인증 챌린지 Lambda 트리거를 사용하여 추가 사용자 지정 인증 요소를 생성할 수도 있습니다.
SMS 메시지 전송 아키텍처 보안에 대한 자세한 내용은 다음 링크를 검토하세요.
Amazon Cognito 사용자 풀에서 처음으로 SMS 메시지 설정
Amazon Cognito는 Amazon SNS AWS 최종 사용자 메시징 SMS를 간접적으로 사용하여 사용자 풀에서 SMS 메시지를 보냅니다. 자체 리소스를 사용하는 사용자 지정 SMS 발신자 Lambda 트리거를 사용하여 SMS 메시지를 보낼 수도 있습니다. 특정에서 SMS 문자 메시지를 처음 설정하면가 해당 리전의 SMS 샌드박스 AWS 계정 에 AWS 리전 AWS 최종 사용자 메시징 SMS 배치됩니다.는 샌드박스를 AWS 최종 사용자 메시징 SMS 사용하여 사기 및 침해를 방지하고 규정 준수 요구 사항을 충족합니다. AWS 계정 가 샌드박스에 있는 경우는 몇 가지 제한을 AWS 최종 사용자 메시징 SMS 부과합니다. 예를 들어 발신 자격 증명이 있는 경우 최대 10개의 확인된 대상 번호로 문자 메시지를 보내거나 발신 자격 증명 없이 메시지 전송을 시뮬레이션할 수 있습니다. 가 샌드박스에 AWS 계정 있는 동안에는 프로덕션 환경에서 SMS 메시지를 보내지 마십시오. 샌드박스에서는 Amazon Cognito가 사용자의 전화 번호로 메시지를 보낼 수 없습니다.
주제
Amazon Cognito가 SMS 메시지를 보내는 데 사용할 수 있는 IAM 역할 준비 AWS 최종 사용자 메시징 SMS
사용자 풀에서 SMS 메시지를 보낼 때 Amazon Cognito는 계정에서 IAM 역할을 맡습니다. Amazon Cognito는 해당 역할에 할당된 sns:Publish
권한을 사용하여 사용자에게 SMS 메시지를 보냅니다. Amazon Cognito 콘솔에서 사용자 풀의 인증 방법 메뉴, SMS에서 IAM 역할 선택을 설정하거나 사용자 풀 생성 마법사 중에이 선택을 할 수 있습니다.
다음 예제에서는 IAM 역할 신뢰 정책은 Amazon Cognito 사용자 풀에 역할을 맡을 수 있는 제한된 권한을 부여합니다. Amazon Cognito는 다음 조건을 충족하는 경우에만 해당 역할을 수행할 수 있습니다.
-
assume-role 작업은
aws:SourceArn
조건의 사용자 풀을 대신하여 수행됩니다. -
assume-role 작업은
aws:SourceAccount
조건에 의해 설정된 AWS 계정 의 사용자 풀을 대신하여 수행됩니다. -
assume-role 작업에는
sts:externalId
조건에 외부 ID가 포함됩니다.
aws:SourceArn
조건 값에 정확한 사용자 풀 ARN 또는 와일드카드 ARN을 지정할 수 있습니다. DescribeUserPool API 요청을 사용하여 AWS Management Console 또는에서 사용자 풀의 ARNs을 조회합니다.
다중 인증에 대한 SMS 메시지를 보내려면 IAM 역할 신뢰 정책에 sts:ExternalId
조건이 있어야 합니다. 이 조건의 값은 사용자 풀의 SmsConfiguration의 ExternalId
속성과 일치해야 합니다. Amazon Cognito 콘솔에서 사용자 풀을 생성하는 중에 IAM 역할을 생성하면 Amazon Cognito는 역할 및 사용자 풀 설정에서 외부 ID를 구성합니다. 기존 IAM 역할을 사용할 때는 그렇지 않습니다.
UpdateUserPool API 요청에서 사용자 풀 ExternalId
파라미터를 업데이트하고 IAM 역할 신뢰 정책을 동일한 값의 sts:externalId
조건으로 업데이트해야 합니다. API를 사용하여 원래 구성을 보존하는 방식으로 사용자 풀을 업데이트하는 방법을 알아보려면 사용자 풀 및 앱 클라이언트 구성 업데이트 섹션을 참조하세요.
IAM 역할 및 신뢰 정책에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 역할 용어 및 개념을 참조하세요.
SMS 메시지 AWS 리전 용 선택
참고
이제의 SMS 메시지가에서 관리 AWS 됩니다AWS 최종 사용자 메시징 SMS
일부 리전에서는 Amazon Cognito SMS 메시지에 사용할 Amazon SNS 리소스가 포함된 리전을 선택할 AWS 리전수 있습니다. Amazon Cognito 아시아 태평양(서울)을 제외하고 Amazon Cognito를 사용할 수 AWS 리전 있는 AWS 리전 에서는 사용자 풀을 생성한에서 Amazon SNS 리소스를 사용할 수 있습니다. 리전을 선택할 때 SMS 메시징을 더 빠르고 안정적으로 만들려면 해당 사용자 풀과 동일한 리전에서 Amazon SNS 리소스를 사용합니다.
새 사용자 풀 마법사의 메시지 전송 구성(Configure message delivery) 단계에서 SMS 리소스에 대한 리전을 선택합니다. 기존 사용자 풀의 인증 방법 메뉴에서 SMS에서 편집을 선택할 수도 있습니다.
시작 시 일부의 경우 AWS 리전 Amazon Cognito는 대체 리전의 Amazon SNS 리소스와 함께 SMS 메시지를 보냈습니다. 선호하는 리전을 설정하려면 사용자 풀에 대한 SmsConfigurationType 객체의 SnsRegion
파라미터를 사용합니다. 다음 표의 Amazon Cognito 리전에서 Amazon Cognito 사용자 풀 리소스를 프로그래밍 방식으로 생성하고 SnsRegion
파라미터를 제공하지 않으면 사용자 풀이 레거시 Amazon SNS 리전에서 Amazon SNS 리소스와 함께 SMS 메시지를 보낼 수 있습니다.
아시아 태평양(서울)의 Amazon Cognito 사용자 풀 AWS 리전 은 아시아 태평양(도쿄) 리전에서 Amazon SNS 구성을 사용해야 합니다.
Amazon SNS(경유 AWS 최종 사용자 메시징 SMS)는 모든 신규 계정에 대한 지출 할당량을 매월 1.00 USD(USD)로 설정합니다. Amazon Cognito에서 사용하는에서 지출 한도를 늘렸 AWS 리전 을 수 있습니다. Amazon SNS SMS 메시지에 AWS 리전 대한를 변경하기 전에 AWS 지원 센터에서 할당량 증가 사례를 열어 새 리전의 한도를 늘립니다. 자세한 내용은 AWS 최종 사용자 메시징 SMS 사용 설명서의 AWS 최종 사용자 메시징 SMS MMS 및 음성 샌드박스에서 프로덕션으로 이동을 참조하세요.
다음 표의 모든 Amazon Cognito 리전에 대해 해당 SMS 메시지 리전의 AWS 최종 사용자 메시징 SMS 리소스와 함께 SMS 메시지를 보낼 수 있습니다.
Amazon Cognito 리전 | SMS 메시지 리전 |
---|---|
미국 동부(오하이오) |
미국 동부(오하이오), 미국 동부(버지니아 북부) |
미국 동부(버지니아 북부) |
미국 동부(버지니아 북부) |
미국 서부(캘리포니아 북부) |
미국 서부(캘리포니아 북부) |
미국 서부(오리건) |
미국 서부(오리건) |
캐나다(중부) |
캐나다(중부), 미국 동부(버지니아 북부) |
캐나다 서부(캘거리) |
캐나다 서부(캘거리) |
멕시코(중부) |
멕시코(중부) |
유럽(프랑크푸르트) |
유럽(프랑크푸르트), 유럽(아일랜드) |
유럽(런던) |
유럽(런던), 유럽(아일랜드) |
유럽(아일랜드) |
유럽(아일랜드) |
유럽(파리) |
유럽(파리) |
유럽(스톡홀름) |
유럽(스톡홀름) |
유럽(밀라노) |
유럽(밀라노) |
유럽(스페인) |
유럽(스페인) |
유럽(취리히) |
유럽(취리히) |
아시아 태평양(말레이시아) | 아시아 태평양(싱가포르) |
아시아 태평양(태국) |
아시아 태평양(뭄바이) |
아시아 태평양(뭄바이) |
아시아 태평양(뭄바이), 아시아 태평양(싱가포르) |
아시아 태평양(하이데라바드) |
아시아 태평양(하이데라바드) |
아시아 태평양(홍콩) |
아시아 태평양(싱가포르) |
아시아 태평양(서울) |
아시아 태평양(도쿄) |
아시아 태평양(싱가포르) |
아시아 태평양(싱가포르) |
아시아 태평양(시드니) |
아시아 태평양(시드니) |
아시아 태평양(도쿄) |
아시아 태평양(도쿄) |
아시아 태평양(자카르타) |
아시아 태평양(자카르타) |
아시아 태평양(오사카) |
아시아 태평양(오사카) |
아시아 태평양(멜버른) |
아시아 태평양(멜버른) |
중동(바레인) |
중동(바레인) |
중동(UAE) |
중동(UAE) |
남아메리카(상파울루) |
남아메리카(상파울루) |
이스라엘(텔아비브) |
이스라엘(텔아비브) |
아프리카(케이프타운) |
아프리카(케이프타운) |
미국 전화 번호로 SMS 메시지를 보내기 위한 발신 자격 증명 얻기
미국 전화 번호로 SMS 문자 메시지를 보내려는 경우 SMS 샌드박스 테스트 환경을 구축하거나 프로덕션 환경을 구축하는 경우 모두 발신 자격 증명을 얻어야 합니다.
미국 통신 사업자는 미국 전화번호로 메시지를 보내려면 발신 자격 증명이 필요합니다. 발신 자격 증명이 아직 없는 경우 받아야 합니다. 발신 자격 증명을 얻는 방법을 알아보려면 AWS 최종 사용자 메시징 SMS 사용 설명서의 전화번호 요청을 참조하세요.
동일한에 두 개 이상의 발신 자격 증명이 있는 경우 AWS 리전는 단축 코드, 10DLC, 수신자 부담 전화번호의 우선순위에 따라 발신 자격 증명 유형을 AWS 최종 사용자 메시징 SMS 선택합니다. 이 우선 순위는 변경할 수 없습니다. 자세한 내용은 AWS 최종 사용자 메시징 SMS
FAQ
환경이 SMS 샌드박스인지 확인합니다.
환경이 SMS 샌드박스인지 확인하려면 다음 절차를 따르세요. 프로덕션 Amazon Cognito 사용자 풀 AWS 리전 이 있는 각에 대해 반복합니다.
환경이 SMS 샌드박스인지 확인하려면
-
Amazon Cognito 콘솔
로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다. -
[사용자 풀(User Pools)]을 선택합니다.
-
목록에서 기존 사용자 풀을 선택합니다.
-
인증 방법 메뉴를 선택합니다.
-
[SMS 구성(SMS configuration)] 섹션에서 [Amazon SNS 프로덕션 환경으로 이동(Move to Amazon SNS production environment)]을 확장합니다. 계정이 SMS 샌드박스에 있는 경우 다음 메시지가 표시됩니다.
SMS 메시지 설정을 완료하도록 AWS 서비스 종속성 구성
이 메시지가 표시되지 않으면 해당 계정으로 이미 SMS 메시지를 설정한 다른 사용자가 있는 것입니다. Amazon Cognito에서 사용자 풀 설정 완료 섹션으로 이동하세요.
-
Amazon SNS
프로덕션 환경으로 이동에서 Amazon SNS 링크를 선택합니다. 이렇게 하면 Amazon SNS 콘솔이 새 탭에서 열립니다. -
샌드박스 환경에 있는지 확인합니다. 콘솔 메시지는 다음과 같이 샌드박스 상태와 AWS 리전를 나타냅니다.
This account is in the SMS sandbox in US East (N. Virginia).
계정을 샌드박스 밖으로 이동
프로덕션에서 앱을 사용하려면 계정을 SMS 샌드박스에서 프로덕션으로 이동합니다. Amazon Cognito에서 AWS 리전 사용할 AWS 최종 사용자 메시징 SMS 리소스가 포함된에서 발신 자격 증명을 구성한 후가 SMS 샌드박스에 AWS 계정 있는 동안 미국 전화번호를 확인할 수 있습니다. 환경이 프로덕션 상태일 때는 SMS 메시지를 보내기 전에 사용자 전화번호를 확인할 필요가 없습니다.
AWS 최종 사용자 메시징 SMS 콘솔 또는 Amazon SNS 콘솔에서 샌드박스를 종료하는 요청을 생성할 수 있습니다. 자세한 지침은 AWS 최종 사용자 메시징 SMS 사용 설명서의 SMS 샌드박스에서 이동을 참조하세요.
에서 시뮬레이터 번호 또는 확인된 전화번호 사용 AWS 최종 사용자 메시징 SMS
계정을 SMS 샌드박스 외부로 이동한 경우 이 단계를 건너뜁니다.
샌드박스에 있지만 발신 번호를 설정한 경우 확인된 대상 번호로 메시지를 보낼 수 있습니다. 확인된 대상을 설정하려면 AWS 최종 사용자 메시징 SMS 사용 설명서의 확인된 대상 전화번호 추가를 참조하세요.
시뮬레이션된 발신자 및 대상으로 메시지를 보낼 수도 있습니다. 시뮬레이터 메시지는 로그를 생성하지만 통신 사업자 네트워크를 통해 전송되지는 않습니다. 바로 가기 메뉴에서
Amazon Cognito에서 사용자 풀 설정 완료
사용자 풀을 생성하거나 편집한 브라우저 탭으로 돌아갑니다. 절차를 완료합니다. 사용자 풀에 SMS 구성을 성공적으로 추가하면 Amazon Cognito가 내부 전화번호에 테스트 메시지를 전송하여 구성이 제대로 작동하는지 확인합니다. Amazon SNS는 각 테스트 SMS 메시지에 대해 요금을 청구합니다.