

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

# 建立預算通知的 Amazon SNS 主題
<a name="budgets-sns-policy"></a>

建立預算以傳送通知到 Amazon Simple Notification Service (Amazon SNS) 主題時，您需要使用事先存在的 Amazon SNS 主題或是建立一個。Amazon SNS 主題可讓您透過電子郵件和 SNS 傳送通知。您的預算必須具有傳送通知給您主題的許可。

若要建立 Amazon SNS 主題並授予許可給您的預算，請使用 Amazon SNS 主控台。

**注意**  
Amazon SNS 主題必須與您正在設定的 Budgets 位於相同的帳戶中。不支援跨帳戶 Amazon SNS。

**建立 Amazon SNS 通知主題並授予許可**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 的 Amazon SNS 主控台。

1. 在導覽窗格中，選擇 **Topics (主題)**。

1. 請選擇**建立主題**。

1. 在 **Name (名稱)** 中輸入您通知主題的名稱。

1. (選用) 在 **Display name (顯示名稱)** 中輸入當您接收通知時想顯示的名稱。

1. 在**存取政策**中，選擇**進階**。

1. 在政策文字欄位中，**"Statement": [** 後面加入下列文字：

   ```
   {
     "Sid": "E.g., AWSBudgetsSNSPublishingPermissions",
     "Effect": "Allow",
     "Principal": {
       "Service": "budgets.amazonaws.com"
     },
     "Action": "SNS:Publish",
     "Resource": "your topic ARN",
      "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "<account-id>"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:budgets::<account-id>:*"
           }
         }
   }
   ```

1. 使用字串來替換 **E.g., AWSBudgetsSNSPublishingPermissions (例如，AWSBudgetsSNSPublishingPermissions)**。政策中，`Sid` 必須是唯一的。

1. 請選擇**建立主題**。

1. 在 **Details** (詳細資訊) 下，儲存您的 ARN。

1. 選擇**編輯**。

1. 在 **Access policy** (存取政策) 下，使用步驟 10 的 Amazon SNS 主題 ARN 取代*您的主題 ARN*。

1. 選擇**儲存變更**。

   您的主題現在會出現在 **Topics (主題)** 頁面的主題清單中。

## 疑難排解
<a name="budgets-sns-troubleshoot"></a>

在建立預算通知的 Amazon SNS 主題時，您可能會遇到下列錯誤訊息。

**請遵守 SNS ARN 格式**  
您取代的 ARN 中存在語法錯誤 (步驟 9)。確認 ARN 以取得正確的語法和格式化。

**無效 SNS 主題**  
AWS Budgets 無法存取 SNS 主題。在 SNS 主題的資源型政策中，確認您已允許 budgets.amazonaws.com 將訊息發佈至此 SNS 主題。

**SNS 主題已加密**  
您已啟用 SNS 主題上的 **encryption** (加密)。如果沒有額外的許可，SNS 主題將無法運作。停用主題上的加密，並重新整理 **Budget edit** (預算編輯)頁面。

## 檢查或重新傳送通知確認電子郵件
<a name="budgets-confirm-subscription"></a>

使用通知建立預算時，您也同時建立 Amazon SNS 通知。為了收到通知，您必須接受 Amazon SNS 通知主題的訂閱。

若要確認您的通知訂閱已被接受或要重新傳送訂閱確認電子郵件，請使用 Amazon SNS 主控台。

**若要查看您的通知狀態或重新傳送通知確認電子郵件**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)：// 開啟 Amazon SNS 主控台。

1. 在導覽窗格中，選擇**訂閱**。

1. 在 **Subscriptions (訂閱)** 頁面的 **Filter (篩選條件)** 中，輸入 `budget`。隨即顯示您的預算通知清單。

1. 檢查您通知的狀態。在 **Status (狀態)** 下，如果未接受和確認某個訂閱，則會出現`PendingConfirmation`。

1. (選用) 如果要重新傳送確認請求，請選取具有待定確認的訂閱，然後選擇 **Request confirmations** (請求確認)。Amazon SNS 會傳送確認請求至訂閱通知的端點。

   當端點的每個擁有者收到電子郵件，他們必須選擇 **Confirm subscription (確認訂閱)** 連結以啟用通知。

## 使用 SSE 和 保護您的 Amazon SNS 預算警示資料 AWS KMS
<a name="protect-sns-sse"></a>

您可以使用伺服器端加密 (SSE) 來在加密主題中傳輸敏感資料。SSE 使用 in AWS Key Management Service () 中管理的金鑰來保護 Amazon SNS 訊息AWS KMS。

若要使用 AWS 管理主控台 或 AWS 服務開發套件 (SDK) 管理 SSE，請參閱[《Amazon Simple Notification Service 入門指南》中的為 Amazon SNS 主題啟用伺服器端加密 (SSE)](https://docs.aws.amazon.com/sns/latest/dg/sns-tutorial-enable-encryption-for-topic.html)。 **

若要使用 建立加密主題 AWS CloudFormation，請參閱 [AWS CloudFormation 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

Amazon SNS 一收到訊息，SSE 就會將其加密。訊息會以加密的形式存放，並僅在訊息傳送時使用 Amazon SNS 來進行解密。

### 設定 AWS KMS 許可
<a name="configure-kms-perm"></a>

您必須先設定 AWS KMS 金鑰政策，才能使用 SSE。此組態可讓您加密主題，與加密和解密訊息。如需 AWS KMS 許可的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 [AWS KMS API 許可：動作和資源參考](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html)。

您也可以使用 IAM 政策來管理 AWS KMS 金鑰許可。如需詳細資訊，請參閱[搭配 使用 IAM 政策 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)。

**注意**  
雖然您可以設定全域許可來傳送和接收來自 Amazon SNS 的訊息，但 AWS KMS 會要求您在特定區域中命名 AWS KMS keys (KMS 金鑰） 的完整 ARN。您可以在 IAM 政策的 **Resource** (資源) 區段找到。  
您必須確定 KMS 金鑰的金鑰政策允許必要的許可。若要這樣做，請將在 Amazon SNS 中產生和消費加密訊息的委託人命名為 KMS 金鑰政策中的使用者。<a name="enable-compatiblility"></a>

**啟用 AWS Budgets 和加密 Amazon SNS 主題之間的相容性**

1. [建立 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-keys-console)。

1. 將以下文字新增至 KMS 金鑰政策。

1. [啟用 SNS 主題的 SSE](https://docs.aws.amazon.com/sns/latest/dg/sns-tutorial-enable-encryption-for-topic.html)。
**注意**  
請確定您使用的 KMS 金鑰與授予 AWS Budgets 發佈至加密 Amazon SNS 主題的許可相同。

1. 選擇 **Save Changes** (儲存變更)。