雙向SMS訊息 - AWS 終端使用者訊息 SMS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

雙向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訊息。

Two-way SMS messaging (Console)

若要啟SMS用使用 AWS 者通訊SMS主控台的雙向功能,請依照下列步驟執行:

啟用雙向 SMS
  1. 在開啟「一 AWS 般使用者通訊SMS主控台」https://console.aws.amazon.com/sms-voice/

  2. 在導覽窗格中,在配置下,選擇電話號碼

  3. 在 [電話號碼] 頁面上,選擇電話號碼。

  4. 在 SMS「雙向」頁籤上,選擇「編輯設定」按鈕。

  5. 在 [編輯設定] 頁面上,選擇 [啟用雙向訊息]。

  6. 對於目的地類型,選擇 Amazon SNSAmazon Connect

    • 對於 Amazon SNS 選擇新的 Amazon SNS 主題現有的 Amazon SNS 主題,然後選擇雙向通道角色,選擇選擇現有IAM角色使用 Amazon SNS 主題政策

      • Amazon 新SNS主題 — 如果您選擇此選項,使用 AWS 者簡訊SMS會在您的帳戶中建立主題。系統將自動建立主題,並授予所有必要的許可。如需 Amazon SNS 主題的詳細資訊,請參閱 Amazon 簡單通知服務開發人員指南SNS中的設定 Amazon。

      • 現有的 Amazon SNS 主題 — 如果選擇此選項,則必須從傳入訊息目的地下拉清單中選擇現有的 Amazon SNS 主題。

      • 對於雙向通道角色,請選擇以下任一項

        • 選擇現有IAM角色 — 選擇要套用至 Amazon SNS 主題的現有IAM政策。例如,Amazon SNS 政策請參閱IAMAmazon SNS 主題政策

        • 使用 Amazon SNS 主題政策 — Amazon SNS 主題需要適當的 Amazon 主SNS題政策,才能授予 AWS 最終使用者簡訊的存取權SMS。例如,Amazon SNS 政策,請參閱Amazon SNS 主題 Amazon SNS 主題政策

    • 對於 Amazon Connect,在雙向通道角色中,選擇選擇現有IAM角色

      • 在 [現有IAM角色] 下拉式清單中,選擇現有的IAM角色做為郵件目的地。如需IAM原則範例,請參閱IAMAmazon Connect 政策

  7. 選擇 Save changes (儲存變更)。

  8. (選擇性) 如果您選擇 Amazon Connect 作為目的地類型,則在「將電話號碼匯入 Amazon Connect」視窗中:

    1. 對於內送訊息目的地下拉式清單,選擇將接收傳入訊息的 Amazon Connect 執行個體。

    2. 選擇匯入電話號碼

Two-way SMS messaging (AWS CLI)

您可以使用指update-phone-number令來啟用雙向功能SMS。

在命令列中輸入以下命令:

$ aws pinpoint-sms-voice-v2 update-phone-number \ > --phone-number-id PhoneNumber \ > --two-way-enabled True \ > --two-way-channel-arn TwoWayARN \ > --two-way-channel-role TwoChannelWayRole

在上述命令中,進行下列變更:

  • Replace (取代) PhoneNumber 與電話號碼的 PhoneNumber ID 或 Amazon 資源名稱(ARN)。

  • Replace (取代) TwoWayARN 與 Amazon 資源名稱(ARN)接收傳入的SMS消息。例如,Amazon SNS 政策,請參閱Amazon SNS 主題 Amazon SNS 主題政策。將 Amazon Connect 設置為入站目的地集 TwoWayARNconnect.region.amazonaws.com。Replace (取代) region 與 Amazon Connect 實例託管在. AWS 區域

  • Replace (取代) TwoChannelWayRole 與角色的 Amazon 資源名稱(ARN)使IAM用。如需SNS權限政策範例,請參閱IAMAmazon SNS 主題政策和例如 Amazon Connect 政策,請參閱IAMAmazon Connect 政策。只有當您選擇使用IAM權限原則時,才需要此參數。

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 主題與雙向簡訊搭配使用。

下列範例陳述式會使用選擇性但建議的SourceAccountSourceArn條件,以避免混淆的副問題,而且只有一般使用 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" }

傳入訊息承載包含以下資訊:

屬性 描述

originationNumber

將傳入訊息傳送給您的電話號碼 (換句話說,即您客戶的電話號碼)。

destinationNumber

客戶傳送訊息的目標電話號碼 (即您的專屬電話號碼)。

messageKeyword

與您專屬電話號碼相關聯的已註冊關鍵字。

messageBody

客戶傳送給您的訊息。

inboundMessageId

傳入訊息的唯一識別符。

previousPublishedMessageId

客戶所回應訊息的唯一識別符。

IAMAmazon Connect 政策

如果您希望 AWS 終端使用者訊息SMS使用現有IAM角色,或建立新角色,請將下列原則附加到該角色,以便一般使用 AWS 者通訊SMS可以承擔它。如需如何修改角色現有信任關係的詳細資訊,請參閱IAM使用指南中的修改角色

若要建立新IAM原則,請執行下列動作:

  1. 依照《使用IAM者指南》中的JSON編輯器建立原則中的指示,建立新的權限原則。

    1. 在步驟 4 中,使用以下定義的權限原則

  2. 依照《使用IAM者指南》中的〈使用自訂信任原則建立角色〉中的指示,建立新的信任原則

    1. 在步驟 4 中,使用下面定義的信任策略

    2. 在步驟 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" } } } ] }