SMS 리전을 사용하여 SMS 악용으로부터 앱 보호
이 가이드에서는 SMS 리전을 사용하여 Identity Platform SMS 확인 사용 및 보기 사용 측정항목을 제한하는 방법을 설명합니다.
SMS 리전 개요
SMS 리전은 SMS 악용으로부터 앱 보호를 위해 사용할 수 있는 Identity Platform 기능입니다.
SMS 악용은 일반적으로 악의적인 행위자가 서비스에서 수익 공유 계약을 맺은 이동통신사를 통해 SMS를 보내도록 할 때 발생합니다. SMS 악용이 발생하면 비용이 증가하고 고객의 제품 평판에 손해를 입을 수 있습니다.
Identity Platform에서는 SMS 전화 승인이 허용되기 때문에 SMS 악용이 발생할 수 있습니다.
SMS 리전 기능을 사용하면 SMS 전화 승인을 받을 수 있는 리전을 설정할 수 있습니다.
이 기능은 다음을 제공합니다.
- SMS 리전 정책을 설정할 수 있는 Firebase Console 인터페이스입니다.
- SMS 리전 정책을 설정하는 API입니다.
- SMS 리전 정책 사용 결정을 알릴 수 있는 측정항목입니다.
리전 정책 설정
이 섹션에서는 Identity Platform 리전 정책에 대해 설명합니다. 다음 유형의 정책을 설정할 수 있으며, 하나만 활성화할 수 있습니다.
- 허용 목록만: 허용 목록에 지정하는 리전만 전화 승인 요청을 수신할 수 있습니다.
- 차단 목록만: 차단 목록에 지정한 리전을 제외한 모든 리전이 전화 승인 요청을 수신할 수 있습니다.
구성을 변경한 후 시스템에서 즉시 정책 시행을 시작합니다. 전화번호의 지역 코드를 기준으로 정책에서 허용하지 않는 리전의 전화 승인 요청을 차단합니다.
허용 목록만 정책
허용 목록만 정책을 설정하려면 다음 단계를 수행합니다.
Firebase Console
Firebase Console에서 Firebase 인증 설정 페이지로 이동합니다.
탐색창에서 SMS 리전 정책을 선택합니다.
허용을 선택합니다.
리전 선택을 클릭합니다.
SMS 메시지를 전송할 리전만 추가합니다. 목록에 없는 리전은 차단됩니다.
저장을 클릭합니다.
허용 목록이나 차단 목록 중 하나만 구성 가능하며, 둘 다 구성할 수는 없습니다. 이 경우 이전 구성을 덮어씁니다.
Identity Toolkit API
Google Cloud 콘솔에서 프로젝트의 액세스 토큰을 출력하기 위해 다음 명령어를 실행합니다.
gcloud auth print-access-token --project=
PROJECT_ID
Identity Toolkit API를 사용하여 새 정책을 포함하도록 프로젝트 구성을 업데이트합니다.
curl -X PATCH -d "{'sms_region_config':{'allowlist_only':{'allowed_regions':['REGION_LIST']}}}" \ -H 'Authorization: Bearer
ACCESS_TOKEN
' \ -H 'Content-Type: application/json' \ 'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID
/config?updateMask=sms_region_config'
다음을 바꿉니다.
ACCESS_TOKEN
: 이전에 생성한 액세스 토큰입니다.REGION_LIST
: 하나 이상의 리전입니다(예:IN
또는US
).PROJECT_ID
: 프로젝트 ID
다른 필드가 변경되지 않도록 하려면 업데이트 마스크를 제공해야 합니다.
차단 목록만 정책
차단 목록만 정책을 설정하려면 다음 단계를 수행합니다.
Firebase Console
Firebase Console에서 Firebase 인증 설정 페이지로 이동하고 탐색창에서 SMS 리전 정책을 선택합니다.
거부를 선택합니다.
리전 선택을 클릭합니다.
SMS 메시지 전송을 차단할 리전을 추가합니다. 목록에 없는 리전은 허용됩니다.
저장을 클릭합니다.
허용 목록이나 차단 목록 중 하나만 구성 가능하며, 둘 다 구성할 수는 없습니다. 이 경우 이전 구성을 덮어씁니다.
Identity Toolkit API
Google Cloud 콘솔에서 프로젝트의 액세스 토큰을 출력하기 위해 다음 명령어를 실행합니다.
gcloud auth print-access-token --project=
PROJECT_ID
Identity Toolkit API를 사용하여 새 정책을 포함하도록 프로젝트 구성을 업데이트합니다.
curl -X PATCH -d "{'sms_region_config':{'denylist_only':{'disallowed_regions':['REGION_LIST']}}}" \ -H 'Authorization: Bearer
ACCESS_TOKEN
' \ -H 'Content-Type: application/json' \ 'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID
/config?updateMask=sms_region_config'
다음을 바꿉니다.
ACCESS_TOKEN
: 이전에 생성한 액세스 토큰입니다.REGION_LIST
: 하나 이상의 리전입니다(예:IN
또는US
).PROJECT_ID
: 프로젝트 ID
다른 필드가 변경되지 않도록 하려면 업데이트 마스크를 제공해야 합니다.
리전별 SMS 사용 측정항목 액세스
이 섹션에서는 SMS 사용 측정항목을 보는 방법에 대해 설명합니다.
측정항목을 보려면 다음을 수행합니다.
Google Cloud 콘솔에서 Cloud Monitoring의 측정항목 탐색기 페이지로 이동합니다.
다음 필드를 선택합니다.
- identitytoolkit.googleapis.com/usage/sent_sms_count,
- identitytoolkit.googleapis.com/usage/blocked_sms_count,
- firebaseauth.googleapis.com/phone_auth/phone_verification_count.
측정항목에는 region_code 필드가 있습니다. 이 코드를 사용하여 SMS 승인을 수신하는 리전을 확인합니다.
특정 리전에서 인증 성공률을
verification_success_rate = phone_verification_count/sent_sms_count
로 계산합니다. 일반적으로 인증 성공률이 75%를 초과하면 허용 가능한 것으로 간주됩니다.
verification_success_rate
가 낮으면, 특히 사용자가 없을 것으로 예상되는 리전에서 악용이 표시될 수 있습니다. 일반적으로 인증 성공률이 75% 미만이면 낮은 것으로 간주됩니다.
SMS 악용이 의심되면 리전 정책을 설정할 수 있습니다.