翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
双方向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サブタイプ」に記載されている で利用できます。
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" }
着信メッセージペイロードには、次の情報が含まれています。
プロパティ | 説明 |
---|---|
|
受信メッセージを送信した電話番号(つまり、お客様の電話番号)。 |
|
お客様がメッセージを送信した電話番号(専用の電話番号)。 |
|
専用電話番号に関連付けられている登録済みのキーワード。 |
|
お客様から送信されたメッセージ。 |
|
受信メッセージの一意の識別子。 |
|
お客様が応答しているメッセージの一意の識別子。 |
IAM Amazon Connect の ポリシー
AWS エンドユーザーメッセージングSMSで既存のIAMロールを使用する場合、または新しいロールを作成する場合は、 AWS エンドユーザーメッセージングでロールをSMS引き受けられるように、そのロールに次のポリシーをアタッチします。ロールの既存の信頼関係を変更する方法については、ユーザーガイドの「ロールの変更」を参照してくださいIAM。
新しいIAMポリシーを作成するには、次の手順を実行します。
-
「 IAMユーザーガイド」の「エディタを使用したポリシーの作成」の指示に従って、新しいアクセス許可ポリシーを作成します。 JSON
-
ステップ 4 では、以下で定義されているアクセス許可ポリシーを使用します。
-
-
「 ユーザーガイド」の「カスタム信頼ポリシーを使用してロールを作成するIAM」の指示に従って、新しい信頼ポリシーを作成します。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html
-
ステップ 4 では、以下で定義されている信頼ポリシーを使用します。
-
ステップ 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
" } } } ] }