本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
雙向SMS訊息
AWS 「一般使用者訊息」SMS 包含雙向支援SMS。當您設定雙向功能時SMS,您可以接收來自客戶的內送訊息。您也可以將雙向傳訊與其他 AWS 服務訊息 (例如 Lambda 和 Amazon Lex) 搭配使用,建立互動式文字簡訊體驗。
當您的其中一位客戶傳送訊息到您的電話號碼時,訊息內文就會傳送至 Amazon SNS 主題或 Amazon Connect 執行個體進行處理。
注意
雙向功能SMS僅在特定國家和地區提供。如需國家或地區雙向SMS支援的詳細資訊,請參閱SMS以及MMS國家的能力和限制。
亞馬遜雙向連SMS接可在 Amazon Connect 管理員指南中的聊天簡訊:SMS子類型中 AWS 區域 列出。
系統MMS不支援雙向功能,但您的電話號碼仍可接收傳入訊SMS息以回應輸出MMS訊息。
IAMAmazon SNS 主題政策
如果您希望 AWS 終端使用者訊息SMS使用現有IAM角色,或建立新角色,請將下列原則附加到該角色,以便一般使用 AWS 者通訊SMS可以承擔它。如需有關如何修改角色之信任關係的資訊,請參閱IAM使用指南中的修改角色。
以下是IAM角色的信任原則。在下列IAM原則中,進行下列變更:
Replace (取代)
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角色的權限原則。S SMSVoiceAllowSNSPublish
id 是允許發布到 Amazon SNS 主題的許可政策,S SMSVoiceAllowEncryptedSNSTopics
id 是加密 Amazon SNS 主題的一個選項。
在下列IAM權限原則中,進行下列變更:
-
Replace (取代)
partition
與您在中使用 AWS 終端使用者訊息的 AWS 分割SMS區。 -
Replace (取代)
region
與您在 AWS 區域 中使用 AWS 終端使用者訊息SMS的。 -
Replace (取代)
accountId
使用您的唯一 ID AWS 帳戶。 -
Replace (取代)
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題需要適當的主題政策來授與 AWS 終端使用者簡訊的存取權 (SMS如果未在中提供) TwoChannelWayRole
參數。
{ "Effect": "Allow", "Principal": { "Service": "sms-voice.amazonaws.com" }, "Action": "sns:Publish", "Resource": "
snsTopicArn
" }
在上述範例中,進行下列變更:
-
Replace (取代)
snsTopicArn
與 Amazon 主SNS題,將發送和接收消息。
注意
不支援 Amazon SNS FIFO 主題。
雖然 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 開發人員指南中的變更金鑰政策。
如需使用 AWS KMS 金鑰加密 Amazon SNS 主題的詳細資訊,請參閱 Amazon 簡單通知服務開發人員指南中的啟用 AWS 服務事件來源與加密主題之間的相容性。
Amazon SNS 主題的雙向SMS訊息承載範例
當您的號碼收到訊SMS息時,一 AWS 般使用者簡訊SMS會傳送JSON承載至您指定的 Amazon SNS 主題。JSON承載包含訊息和相關資料,如下列範例所示:
{ "originationNumber":"+14255550182", "destinationNumber":"+12125550101", "messageKeyword":"JOIN", "messageBody":"EXAMPLE", "inboundMessageId":"cae173d2-66b9-564c-8309-21f858e9fb84", "previousPublishedMessageId":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" }
傳入訊息承載包含以下資訊:
屬性 | 描述 |
---|---|
|
將傳入訊息傳送給您的電話號碼 (換句話說,即您客戶的電話號碼)。 |
|
客戶傳送訊息的目標電話號碼 (即您的專屬電話號碼)。 |
|
與您專屬電話號碼相關聯的已註冊關鍵字。 |
|
客戶傳送給您的訊息。 |
|
傳入訊息的唯一識別符。 |
|
客戶所回應訊息的唯一識別符。 |
IAMAmazon Connect 政策
如果您希望 AWS 終端使用者訊息SMS使用現有IAM角色,或建立新角色,請將下列原則附加到該角色,以便一般使用 AWS 者通訊SMS可以承擔它。如需如何修改角色現有信任關係的詳細資訊,請參閱IAM使用指南中的修改角色。
若要建立新IAM原則,請執行下列動作:
-
依照《使用IAM者指南》中的JSON編輯器建立原則中的指示,建立新的權限原則。
-
在步驟 4 中,使用以下定義的權限原則。
-
-
依照《使用IAM者指南》中的〈使用自訂信任原則建立角色〉中的指示,建立新的信任原則。
-
在步驟 4 中,使用下面定義的信任策略。
-
在步驟 11 中,新增您在上一個步驟中建立的權限原則。
-
以下是允許發佈到 Amazon Connect 的IAM角色的許可政策。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "connect:SendChatIntegrationEvent" ], "Resource": [ "*" ] } ] }
以下是對IAM角色的信任策略,進行以下更改:
-
Replace (取代)
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
" } } } ] }