Amazon Pinpoint를 사용하여 일회용 암호(OTP) 생성 - Amazon Pinpoint

지원 종료 공지: 2026년 10월 30일에 AWS 는 Amazon Pinpoint에 대한 지원을 종료합니다. 2026년 10월 30일 이후에는 Amazon Pinpoint 콘솔 또는 Amazon Pinpoint 리소스(엔드포인트, 세그먼트, 캠페인, 여정 및 분석)에 더 이상 액세스할 수 없습니다. 자세한 내용은 Amazon Pinpoint 지원 종료를 참조하세요. 참고: SMS, 음성, 모바일 푸시, OTP 및 전화번호 검증과 관련된 APIs는이 변경의 영향을 받지 않으며 AWS 최종 사용자 메시징에서 지원됩니다.

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

Amazon Pinpoint를 사용하여 일회용 암호(OTP) 생성

Amazon Pinpoint에는 새 일회용 암호를 생성하고 수신자에게 SMS 메시지로 보내는 데 사용할 수 있는 일회용 암호(OTP) 관리 기능이 포함되어 있습니다.

중요

이 기능을 사용하려면 계정에 프로덕션 액세스 권한과 활성 발신 ID가 있어야 합니다. 자세한 내용은 AWS End User Messaging SMS 사용 설명서SMS/MMS 및 음성 샌드박스 정보전화번호 요청을 참조하세요.

일부 국가 및 지역에서는 SMS 메시지를 전송하려면 먼저 전용 전화번호 또는 발신 ID를 받아야 합니다. 예를 들어, 미국의 수신자에게 메시지를 전송할 때는 전용 수신자 부담 전화번호, 10DLC 번호 또는 단축 코드가 있어야 합니다. 인도의 수신자에게 메시지를 전송할 때는 등록된 발신자 ID가 있어야 합니다. 여기에는 보안 주체 엔터티 ID(PEID), 템플릿 ID가 포함됩니다. 이러한 요구 사항은 OTP 기능을 사용하는 경우에도 적용됩니다.

이 기능을 사용하려면 OTP 메시지를 전송 및 확인할 수 있는 권한이 필요합니다(일회용 암호 참조). 권한을 결정하는 데 도움이 필요한 경우 Amazon Pinpoint의 ID 및 액세스 관리에 대한 문제 해결 섹션을 참조하세요.

Amazon Pinpoint API의 SendOtpMessages 작업을 사용해 애플리케이션 사용자에게 OTP 코드를 전송할 수 있습니다. 이 API를 사용하면 Amazon Pinpoint가 무작위 코드를 생성하여 사용자에게 SMS 메시지로 전송합니다. 요청은 다음 파라미터를 포함해야 합니다.

  • Channel - OTP 코드가 전송되는 통신 채널입니다. 현재는 SMS 메시지만 지원되므로 허용되는 값은 SMS뿐입니다.

  • BrandName - OTP 코드와 연결된 브랜드, 회사 또는 제품의 이름입니다. 이 이름은 최대 20자를 포함할 수 있습니다.

    참고

    Amazon Pinpoint가 OTP 메시지를 전송할 때 브랜드 이름이 다음 메시지 템플릿에 자동으로 삽입됩니다.

    This is your One Time Password: {{otp}} from {{brand}}

    따라서 ExampleCorp를 브랜드 이름으로 지정하고 Amazon Pinpoint가 123456이라는 일회용 암호를 생성하면 사용자에게 다음과 같은 메시지가 전송됩니다.

    This is your One Time Password: 123456 from ExampleCorp
  • CodeLength - 수신자에게 전송되는 OTP 코드의 자릿수입니다. OTP 코드는 5~8자리 숫자를 포함할 수 있습니다.

  • ValidityPeriod - OTP 코드가 유효한 시간(분)입니다. 유효 기간은 5~60분입니다.

  • AllowedAttempts - 수신자가 OTP 확인을 시도할 수 있는 횟수입니다. 시도 횟수가 이 값을 초과하면 OTP는 자동으로 무효화됩니다. 허용되는 최대 시도 횟수는 5회입니다.

  • Language - 메시지를 전송할 때 사용할 IETF BCP-47 형식의 언어입니다. 사용 가능한 값은 다음과 같습니다.

    • de-DE - 독일어

    • en-GB - 영어(영국)

    • en-US - 영어(미국)

    • es-419 - 스페인어(남미)

    • es-ES - 스페인어

    • fr-CA - 프랑스어(캐나다)

    • fr-FR - 프랑스어

    • it-IT - 이탈리아어

    • ja-JP - 일본어

    • ko-KR - 한국어

    • pt-BR - 포르투갈어(브라질)

    • zh-CN - 중국어 간체

    • zh-TW - 중국어 번체

  • OriginationIdentity— OTP 코드를 전송하는 데 사용되는 발신 ID(예: 긴 코드, 단축 코드 또는 발신자 ID)입니다. 긴 코드 또는 수신자 부담 전화번호를 사용하여 OTP를 전송하는 경우 전화번호는 E.164 형식이어야 합니다.

  • DestinationIdentity - OTP 코드가 전송된 E.164 형식의 전화번호입니다.

  • ReferenceId - 요청의 고유한 참조 ID입니다. 참조 ID는 OTP를 확인할 때 제공하는 참조 ID와 정확히 일치합니다. 참조 ID는 1~48자를 포함할 수 있습니다.

  • EntityId - 규제 기관에 등록된 엔티티 ID입니다. 이 파라미터는 현재 인도에 있는 수신자에게 메시지를 전송할 때만 사용됩니다. 인도의 수신자에게 보내지 않는 경우에는 이 파라미터를 생략할 수 있습니다.

  • TemplateId - 규제 기관에 등록된 템플릿 ID입니다. 이 파라미터는 현재 인도에 있는 수신자에게 메시지를 전송할 때만 사용됩니다. 인도의 수신자에게 보내지 않는 경우에는 이 파라미터를 생략할 수 있습니다.

    참고

    인도의 수신자에게 메시지를 전송하기 위한 요구 사항에 대한 자세한 내용은 Amazon Pinpoint 사용 설명서인도 발신자 ID 등록 프로세스를 참조하세요.

Amazon Pinpoint 계정이 OTP 메시지를 전송하도록 올바르게 구성되었는지 확인하려면 AWS CLI 를 사용하여 테스트 메시지를 보낼 수 있습니다. 에 대한 자세한 내용은 AWS Command Line Interface 사용 설명서를 AWS CLI참조하세요.

를 사용하여 테스트 OTP 메시지를 보내려면 터미널에서 send-otp-message 명령을 AWS CLI실행합니다.

aws pinpoint send-otp-message --application-id 7353f53e6885409fa32d07cedexample --send-otp-message-request-parameters Channel=SMS,BrandName=ExampleCorp,CodeLength=5,ValidityPeriod=20,AllowedAttempts=5,OriginationIdentity=+18555550142,DestinationIdentity=+12065550007,ReferenceId=SampleReferenceId

위의 명령에서 다음을 수행합니다.

  • 7353f53e6885409fa32d07cedexample을 애플리케이션 ID로 바꿉니다.

  • ExampleCorp를 회사 이름으로 바꿉니다.

  • CodeLegth5를 수신자에게 전송되는 OTP 코드의 자릿수로 바꿉니다.

  • ValidityPeriod20을 OTP 코드가 유효한 분 단위의 시간으로 바꿉니다.

  • AllowedAttempts5를 수신자가 OTP 확인을 시도했지만 실패할 수 있는 횟수로 바꿉니다.

  • OriginationIdentity+18555550142을 OTP 코드를 보내는 데 사용되는 발신 ID로 바꿉니다.

  • DestinationIdentity+12065550007을 OTP 코드를 보낼 전화번호로 바꿉니다.

  • ReferenceIdSampleReferenceId를 요청에 대한 고유한 참조 ID로 바꿉니다.

SendOtpMessage 응답

OTP 메시지를 성공적으로 전송하면 다음 예시와 유사한 응답을 받게 됩니다.

{ "MessageResponse": { "ApplicationId": "7353f53e6885409fa32d07cedexample", "RequestId": "255d15ea-75fe-4040-b919-096f2example", "Result": { "+12065550007": { "DeliveryStatus": "SUCCESSFUL", "MessageId": "nvrmgq9kq4en96qgp0tlqli3og1at6aexample", "StatusCode": 200, "StatusMessage": "MessageId: nvrmgq9kq4en96qgp0tlqli3og1at6aexample" } } } }