翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
双方向 SMS メッセージング
Amazon Pinpoint SMS には、双方向 SMS のサポートが含まれています。双方向 SMS を設定すると、お客様からの着信メッセージを受信することができます。また、双方向メッセージングを Lambda や Amazon Lex などの他の AWS サービスと併用して、インタラクティブなテキストメッセージング体験を作成することもできます。
顧客の 1 人が電話番号にメッセージを送信すると、メッセージ本文は処理のために Amazon SNS トピックまたは Amazon Connect インスタンスに送信されます。
注記
双方向 SMS は、特定の国や地域でのみ使用できます。国または地域でサポートされている双方向 SMS の詳細については、「SMS 国の機能と制限」を参照してください。
双方向 SMS 用の Amazon Connect は、Amazon Connect 「Amazon Connect 管理者ガイド」の「チャットメッセージング: SMS サブタイプ AWS リージョン 」に記載されている で利用できます。
Amazon SNS トピックの IAM ポリシー
Amazon Pinpoint SMS で既存の IAM ロールを使用する場合、または新しいロールを作成する場合は、Amazon Pinpoint SMS が引き受けられるように、そのロールに次のポリシーをアタッチします。ロールの信頼関係を変更する方法については、IAM ユーザーガイドの「ロールの変更」を参照してください。
以下は、IAM ロールの信頼ポリシーです。次の IAM ポリシーで、次の変更を加えます。
accountId
を AWS アカウントの一意の ID に置き換えます。
{ "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
は、Amazon Pinpoint SMS を使用する AWS パーティションに置き換えます。 -
region
AWS リージョン は、Amazon Pinpoint SMS を使用する に置き換えます。 -
accountId
を の一意の ID に置き換えます AWS アカウント。 -
を、メッセージを受信する Amazon SNS トピック
snsTopicArn
に置き換えます。
{ "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 トピックは、 TwoChannelWayRole
パラメータで指定されていない場合、Amazon Pinpoint SMS へのアクセスを許可する適切なトピックポリシーが必要です。
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "
snsTopicArn
" }
上の例に、以下の変更を加えます。
-
を、メッセージを送受信する Amazon SNS トピック
snsTopicArn
に置き換えます。
注記
Amazon SNS FIFO トピックはサポートされていません。
Amazon Pinpoint SMS データは暗号化されますが、セキュリティを強化するために AWS KMS キーを使用して暗号化された Amazon SNS トピックを使用できます。このようなセキュリティの強化は、プライベートなデータや機密性の高いデータを扱うアプリケーションに有効です。
暗号化された Amazon SNS トピックを双方向メッセージングで使用するには、いくつかの追加設定手順を実行する必要があります。
次のステートメント例では、「混乱した代理」問題を回避し、Amazon Pinpoint SMS 所有者アカウントのみがアクセスできるように、「オプションですが推奨されますSourceAccount
」および SourceArn
条件を使用しています。混乱した代理問題の詳細については、IAM ユーザーガイドの「混乱した代理問題」を参照してください。
まず、使用する鍵は対称である必要があります。暗号化された Amazon SNS トピックは、非対称 AWS KMS キーをサポートしていません。
次に、Amazon Pinpoint 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 のサービスからのイベントソースと暗号化されたトピック間の互換性を有効にする」を参照してください。
Amazon SNS トピックの双方向 SMS メッセージペイロードの例
番号が SMS メッセージを受信すると、Amazon Pinpoint SMS は指定した Amazon SNS トピックに JSON ペイロードを送信します。次の例にあるように、JSON ペイロードにはメッセージと関連するデータが含まれています。
{ "originationNumber":"+14255550182", "destinationNumber":"+12125550101", "messageKeyword":"JOIN", "messageBody":"EXAMPLE", "inboundMessageId":"cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
着信メッセージペイロードには、次の情報が含まれています。
プロパティ | 説明 |
---|---|
|
受信メッセージを送信した電話番号(つまり、お客様の電話番号)。 |
|
お客様がメッセージを送信した電話番号(専用の電話番号)。 |
|
専用電話番号に関連付けられている登録済みのキーワード。 |
|
お客様から送信されたメッセージ。 |
|
受信メッセージの一意の識別子。 |
|
お客様が応答しているメッセージの一意の識別子。 |
Amazon Connect の IAM ポリシー
Amazon Pinpoint SMS で既存の IAM ロールを使用する場合、または新しいロールを作成する場合は、Amazon Pinpoint SMS が引き受けられるように、そのロールに次のポリシーをアタッチします。ロールの既存の信頼関係を変更する方法については、IAM ユーザーガイドの「ロールの変更」を参照してください。
新しい IAM ポリシーを作成するには、次の手順を実行します。
-
「IAM ユーザーガイド」の「JSON エディタを使用したポリシーの作成」の指示に従って、新しいアクセス許可ポリシーを作成します。
-
ステップ 4 では、以下で定義されたアクセス許可ポリシーを使用します。
-
-
「IAM ユーザーガイド」の「カスタム信頼ポリシーを使用したロールの作成」の指示に従って、新しい信頼ポリシーを作成します。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html
-
ステップ 4 では、以下で定義された信頼ポリシーを使用します。
-
ステップ 11 では、前のステップで作成したアクセス許可ポリシーを追加します。
-
以下は、Amazon Connect への発行を許可する IAM ロールのアクセス許可ポリシーです。
{ "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
" } } } ] }