SMSの送信先を日本限定にしたい

0

日本国内でのみ利用可能なモバイルアプリサービスとなっていますが、海外からのSMS通知が多いため(攻撃の可能性高い)、SMS認証を日本以外(+81以外)へを禁止したいです。 SMS通知の上限枠を12月-1月ともに超えてしまい、運用面で非常に困っています。

  • こんにちは。
    タグに Amazon SNS が指定されてますが、運用されてるモバイルアプリサービスで何らかの SMS 認証機能 を有しているということですか?
    その場合、どのように SMS 認証機能を実現されているのか情報を補足してください。

質問済み 1年前535ビュー
1回答
0

お問い合わせありがとうございます。

お客様が運用されているモバイルアプリの SMS 通知の送信先を日本国内に限定されたいものと認識の上、以下にご案内させていただきます。 もし当方の認識に相違がございましたらご指摘いただけますと幸いです。

確認しましたところ、お客様のご期待に添うご案内とならず恐れ入りますが、 AWS コンソールより SMS 通知の送信先を特定の国に制限することはできません。 一方で、Amazon Pinpoint の電話番号検証サービスを用いた方法を使用して国コードを特定いただくことで、SMS 通知の送信先の管理が可能になるかと存じます。

解決策

電話番号を検証するには、Amazon Pinpoint API の /v1/phone/number/validate/ URI に 以下の HTTP POST リクエストを送信していただきます。 PhoneNumber パラメータには、検証したい電話番号を国コードも含めご入力ください。

POST /v1/phone/number/validate/ HTTP/1.1
Host: pinpoint.us-east-1.amazonaws.com (http://pinpoint.us-east-1.amazonaws.com/)
Content-Type: application/json
X-Amz-Date: 20190805T031042Z
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20190805/us-east-1/mobiletargeting/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=39df573629ddb283aea1fa2f7eef4106c0fb4826edf72e9934f03cf77example
Cache-Control: no-cache

{
    "PhoneNumber": "<国コード+携帯番号>"
}

上記の POST リクエストを送信しますと、有効な携帯電話番号の場合、以下のレスポンスが返ってきます。

{
    "NumberValidateResponse": {
        "Carrier": "ExampleCorp Mobile",
        "City": "Seattle",
        "CleansedPhoneNumberE164": "<国コード+携帯番号>",
        "CleansedPhoneNumberNational": "<携帯番号>",
        "Country": "United States",
        "CountryCodeIso2": "US",
        "CountryCodeNumeric": "1",
        "OriginalPhoneNumber": "<国コード+携帯番号>",
        "PhoneType": "MOBILE",
        "PhoneTypeCode": 0,
        "Timezone": "America/Los_Angeles",
        "ZipCode": "< xxxxx >"
    }
}

Country や CountryCodeIso2 の情報を基に、SMS 通知の送信先の管理が可能になるかと存じます。 無効な電話番号の場合は、以下のレスポンスが返ってきます

{
    "NumberValidateResponse": {
        "CleansedPhoneNumberE164": "<国コード+携帯番号>",
        "CleansedPhoneNumberNational": "<携帯番号>",
        "Country": "United Kingdom",
        "CountryCodeIso2": "GB",
        "CountryCodeNumeric": "44",
        "OriginalPhoneNumber": "<国コード+携帯番号>",
        "PhoneType": "INVALID",
        "PhoneTypeCode": 3
    }
}

この場合、PhoneType が INVALID となっており、電話番号に関連づけられた携帯電話会社または場所に関する情報が含まれておりません。 これらの番号は実際の受信者に属していないと思われるため、安全性の観点からSMS または音声メッセージを送信することは避けてください。

また、Amazon Pinpoint の電話番号検証サービスのご利用には追加料金が発生いたします。 詳細に関しましては、料金 - Amazon Pinpoint | AWS ( https://aws.amazon.com/jp/pinpoint/pricing/?nc1=h_ls ) をご確認ください。

関連情報

Amazon Pinpoint での電話番号の検証

https://docs.aws.amazon.com/ja_jp/pinpoint/latest/developerguide/validate-phone-numbers.html

Amazon Pinpoint API のレファレンス(英訳のみ)

https://docs.aws.amazon.com/ja_jp/pinpoint/latest/apireference/phone-number-validate.html

Amazon Pinpoint 料金

https://aws.amazon.com/jp/pinpoint/pricing/?nc1=h_ls

より具体的なサポートを必要とされる場合、是非以下のリンクよりサポートケースをご起票ください。

サポートケースの管理・作成

https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/case-management.html

AWS
Yuya_T
回答済み 9ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン