双方向SMSメッセージング - AWS エンドユーザーメッセージング SMS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

双方向SMSメッセージング

AWS エンドユーザーメッセージングSMSには、双方向 のサポートが含まれていますSMS。双方向 を設定するとSMS、顧客からの受信メッセージを受信できます。また、双方向メッセージングを Lambda や Amazon Lex などの他の AWS サービスと一緒に使用して、インタラクティブなテキストメッセージエクスペリエンスを作成することもできます。

顧客の 1 人が電話番号にメッセージを送信すると、メッセージ本文は処理のために Amazon SNSトピックまたは Amazon Connect に送信されます。

双方向SMSは、特定の国とリージョンでのみ利用できます。国または地域別の双方向SMSサポートの詳細については、「」を参照してくださいSMS とMMS国の機能と制限

送信者は双方向SMSメッセージングをサポートIDsしていません。

注記

双方向SMSは、特定の国とリージョンでのみ利用できます。国または地域別の双方向SMSサポートの詳細については、「」を参照してくださいSMS とMMS国の機能と制限

双方向MMSは使用できません。

Amazon Connect for 双方向SMSは、「Amazon Connect 管理者ガイド Amazon Connect」の AWS リージョン 「チャットメッセージング: SMSサブタイプ」に記載されている で利用できます。

Two-way SMS messaging (Console)

AWS エンドユーザーメッセージングSMSコンソールSMSを使用して双方向を有効にするには、次の手順に従います。

双方向を有効にする SMS
  1. で AWS エンドユーザーメッセージングSMSコンソールを開きますhttps://console.aws.amazon.com/sms-voice/

  2. ナビゲーションペインの設定 で、電話プール を選択します。

  3. 「電話プール」ページで、電話プールを選択します。

  4. 双方向SMSタブで、設定の編集 を選択します。

  5. 「設定の編集」ページで「双方向メッセージを有効にする」をオンにします。

  6. 送信先タイプ でAmazon SNS または Amazon Connectを選択します。

    • Amazon SNSでは、新しい Amazon SNSトピックまたは既存の Amazon SNSトピックを選択し、双方向チャネルロール では、既存のIAMロールを選択する または Amazon SNSトピックポリシーを使用する を選択します。

      • 新しい Amazon SNSトピック – このオプションを選択すると、 AWS エンドユーザーメッセージングによってアカウントにトピックSMSが作成されます。トピックは、必要なすべてのパーミッションがあれば、自動的に作成されます。Amazon SNSトピックの詳細については、「Amazon SNSSNSデベロッパーガイド」の「Amazon の設定」を参照してください。

      • 既存の Amazon SNSトピック – このオプションを選択した場合は、受信メッセージの宛先ドロップダウンから既存の Amazon SNSトピックを選択する必要があります。

      • 双方向チャネルロール で、次のいずれかを選択します。

        • 既存のIAMロールを選択する – Amazon SNSトピックに適用する既存のIAMポリシーを選択します。Amazon SNSポリシーの例については、「」を参照してくださいIAM Amazon SNSトピックの ポリシー

        • Amazon SNSトピックポリシーの使用 – Amazon SNSトピックでは、 AWS エンドユーザーメッセージング へのアクセスを許可するために、適切な Amazon SNSトピックポリシーが必要ですSMS。Amazon SNSポリシーの例については、「」を参照してくださいAmazon SNSトピックの Amazon SNSトピックポリシー

    • 双方向チャネルロール の Amazon Connect で、既存のIAMロールを選択 を選択します。

      • 「既存のIAMロール」ドロップダウンで、メッセージの送信先として既存のIAMロールを選択します。IAM ポリシーの例については、IAM Amazon Connect の ポリシー「」を参照してください。

  7. [変更の保存] を選択します。

Two-way SMS messaging (AWS CLI)

update-pool コマンドを使用して、双方向 を有効にできますSMS。

コマンドラインで以下のコマンドを入力します。

$ aws pinpoint-sms-voice-v2 update-pool \ > --pool-id poolid \ > --two-way-channel-arn TwoWayARN \ > --two-way-channel-role TwoChannelWayRole

上のコマンドに、以下の変更を加えます。

  • 置換 poolid 電話番号の PhonePoolID または Amazon リソースネーム (ARN) を指定します。

  • 置換 TwoWayARN 受信SMSメッセージを受信するための Amazon リソースネーム (ARN) を指定します。Amazon SNSポリシーの例については、「」を参照してくださいAmazon SNSトピックの Amazon SNSトピックポリシー。Amazon Connect をインバウンド送信先セットとして設定するには TwoWayARN connect.region.amazonaws.com に送信します。置換 region Amazon Connect インスタンス AWS リージョン がホストされている 。

  • 置換 TwoChannelWayRole は、使用するIAMロールの Amazon リソースネーム (ARN) を使用します。アクセスSNS許可ポリシーの例についてはIAM Amazon SNSトピックの ポリシー「」を、Amazon Connect ポリシーの例については「」を参照してくださいIAM Amazon Connect の ポリシー。このパラメータは、IAMアクセス許可ポリシーを使用する場合にのみ必要です。

IAM Amazon SNSトピックの ポリシー

AWS エンドユーザーメッセージングSMSで既存のIAMロールを使用する場合、または新しいロールを作成する場合は、 AWS エンドユーザーメッセージングでロールをSMS引き受けられるように、そのロールに次のポリシーをアタッチします。ロールの信頼関係を変更する方法については、ユーザーガイドの「ロールの変更IAM」を参照してください。

IAM ロールの信頼ポリシーを次に示します。次の変更を加えます。

  • 置換 accountId に、 の一意の ID を入力します AWS アカウント。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }

IAM ロールのアクセス許可ポリシーを次に示します。SMSVoiceAllowSNSPublish Sid は Amazon SNSトピックへの発行を許可するアクセス許可ポリシーであり、Sid SMSVoiceAllowEncryptedSNSTopics は暗号化された Amazon SNSトピックのオプションです。

次のIAMアクセス許可ポリシーで、次の変更を加えます。

  • 置換 partition エンドユーザーメッセージングを使用する AWS パーティションSMSを持つ AWS 。

  • 置換 region エンドユーザーメッセージング AWS リージョン を使用する AWS SMSを使用します。

  • 置換 accountId に、 の一意の ID を入力します AWS アカウント。

  • 置換 snsTopicArn メッセージを受信する Amazon SNSトピックを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoiceAllowSNSPublish", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:partition:sns:region:accountId:snsTopicArn", "Condition": { "StringEquals": { "aws:ResourceAccount": "accountId" } } }, { "Sid": "SMSVoiceAllowEncryptedSNSTopics", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:sns:topicArn": "arn:partition:sns:region:accountId:snsTopicArn", "aws:CalledViaLast": "sns.amazonaws.com" } } } ] }

Amazon SNSトピックの Amazon SNSトピックポリシー

Amazon SNSトピックでは、 で提供SMSされていない場合、 AWS エンドユーザーメッセージングへのアクセスを許可する適切なトピックポリシーが必要です。TwoChannelWayRole パラメータ。

{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "snsTopicArn" }

上の例に、以下の変更を加えます。

  • 置換 snsTopicArn メッセージを送受信する Amazon SNSトピック。

注記

Amazon SNSFIFOトピックはサポートされていません。

AWS エンドユーザーメッセージングSMSデータは暗号化されますが、セキュリティを強化するために AWS KMS キーを使用して暗号化された Amazon SNSトピックを使用できます。このようなセキュリティの強化は、プライベートなデータや機密性の高いデータを扱うアプリケーションに有効です。

双方向メッセージングで暗号化された Amazon SNSトピックを使用するには、追加のセットアップ手順を実行する必要があります。

次のステートメント例では、「オプションですが推奨SourceAccount」およびSourceArn「」条件を使用して、混乱した代理問題を回避し、 AWS エンドユーザーメッセージングSMS所有者アカウントのみがアクセスできます。混乱した代理問題の詳細については、ユーザーガイドの「混乱した代理問題」を参照してくださいIAM

まず、使用する鍵は対称である必要があります。暗号化された Amazon SNSトピックは非対称 AWS KMS キーをサポートしていません。

次に、 AWS エンドユーザーメッセージングがキーを使用できるようにSMSキーポリシーを変更する必要があります。既存のキーポリシーに以下の権限を追加します。

{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" }, "ArnLike": { "aws:SourceArn": "arn:aws:sms-voice:region:accountId:*" } } }

キーポリシーの編集の詳細については、『AWS Key Management Service デベロッパーガイド』の「Changing a key policy」を参照してください。

AWS KMS キーを使用した Amazon SNSトピックの暗号化の詳細については、Amazon Simple Notification Service デベロッパーガイドの AWS 「 のサービスからのイベントソースと暗号化されたトピック間の互換性を有効にする」を参照してください。

双方向SMSメッセージペイロードの例

番号がSMSメッセージを受信すると、 AWS エンドユーザーメッセージングは指定した Amazon SNSトピックにJSONペイロードSMSを送信します。JSON ペイロードには、次の例のように、メッセージと関連するデータが含まれます。

{ "originationNumber":"+14255550182", "destinationNumber":"+12125550101", "messageKeyword":"JOIN", "messageBody":"EXAMPLE", "inboundMessageId":"cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }

着信メッセージペイロードには、次の情報が含まれています。

プロパティ 説明

originationNumber

受信メッセージを送信した電話番号(つまり、お客様の電話番号)。

destinationNumber

お客様がメッセージを送信した電話番号(専用の電話番号)。

messageKeyword

専用電話番号に関連付けられている登録済みのキーワード。

messageBody

お客様から送信されたメッセージ。

inboundMessageId

受信メッセージの一意の識別子。

previousPublishedMessageId

お客様が応答しているメッセージの一意の識別子。

IAM Amazon Connect の ポリシー

AWS エンドユーザーメッセージングSMSで既存のIAMロールを使用する場合、または新しいロールを作成する場合は、 AWS エンドユーザーメッセージングでロールをSMS引き受けられるように、そのロールに次のポリシーをアタッチします。ロールの既存の信頼関係を変更する方法については、ユーザーガイドの「ロールの変更」を参照してくださいIAM

新しいIAMポリシーを作成するには、次の手順を実行します。

  1. 「 IAMユーザーガイド」の「エディタを使用したポリシーの作成」の指示に従って、新しいアクセス許可ポリシーを作成します。 JSON

    1. ステップ 4 では、以下で定義されているアクセス許可ポリシーを使用します。

  2. 「 ユーザーガイド」の「カスタム信頼ポリシーを使用してロールを作成するIAM」の指示に従って、新しい信頼ポリシーを作成します。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html

    1. ステップ 4 では、以下で定義されている信頼ポリシーを使用します。

    2. ステップ 11 で、前のステップで作成したアクセス許可ポリシーを追加します。

以下は、 IAMロールのアクセス許可ポリシーです。 が Amazon Connect への発行を許可するには、 を使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "connect:SendChatIntegrationEvent" ], "Resource": [ "*" ] } ] }

IAM ロールの信頼ポリシーを次に示します。次の変更を加えます。

  • 置換 accountId に の一意の ID を入力します AWS アカウント。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMSVoice", "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountId" } } } ] }