

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

# Amazon SNS 主題的主題政策
<a name="two-way-sms-iam-policy-auto"></a>

Amazon SNS 主題需要適當的主題政策，才能在 *TwoChannelWayRole* 參數中未提供 AWS 最終使用者簡訊 SMS 的存取權。

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

在上述範例中，進行下列變更：
+ 將 *snsTopicArn* 取代為將傳送和接收訊息的 Amazon SNS 主題。

**注意**  
不支援 Amazon SNS FIFO 主題。

雖然 AWS 最終使用者簡訊 SMS 資料已加密，但您可以使用使用 AWS KMS 金鑰加密的 Amazon SNS 主題，以提高安全性。如果您的應用程式處理私有或敏感資料，多一層安全性將有幫助。

您需要執行額外的設定步驟，才能讓加密的 Amazon SNS 主題與雙向 SMS 一起使用。

下列範例陳述式使用 、選用但建議`SourceAccount``SourceArn`的條件，以避免混淆代理人問題，且只有 AWS 最終使用者傳訊簡訊擁有者帳戶可以存取。如需混淆代理人問題的詳細資訊，請參閱[《IAM 使用者指南》中的混淆代理人問題](https://docs.aws.amazon.com//IAM/latest/UserGuide/confused-deputy.html)。 *[https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)*

首先您使用的金鑰必須*對稱*。加密的 Amazon SNS 主題不支援非對稱 AWS KMS 金鑰。

其次，必須修改金鑰政策，以允許 AWS 最終使用者傳訊簡訊使用金鑰。在現有金鑰政策中加入以下權限：

```
{
    "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 開發人員指南*中的[變更金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)。

如需使用 AWS KMS 金鑰加密 Amazon SNS 主題的詳細資訊，請參閱《*Amazon Simple Notification Service 開發人員指南*》中的[啟用來自 AWS 服務和加密主題的事件來源之間的相容性](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services)。