建立預算通知的 Amazon SNS 主題 - AWS 成本管理

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

建立預算通知的 Amazon SNS 主題

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

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

注意

Amazon SNS 主題必須與您設定的預算位於相同的帳戶中。不支援 Amazon SNS 帳戶的多個帳戶。

建立 Amazon SNS 通知主題並授予許可
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/sns/v3/home 開啟 Amazon SNS 主控台。

  2. 在導覽窗格中,選擇 Topics (主題)

  3. 請選擇 Create topic (建立主題)。

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

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

  6. Access policy (存取原則) 中,選擇 Advanced (進階)

  7. 在政策文字欄位中,"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>:*" } } }
  8. Replace例如 AWSBudgetsSNSPublishingPermissions用一個字串。政策中,Sid 必須是唯一的。

  9. 請選擇 Create topic (建立主題)。

  10. Details (詳細資訊) 下,儲存您的 ARN。

  11. 選擇 Edit (編輯)

  12. Access policy (存取政策) 下,使用步驟 10 的 Amazon SNS 主題 ARN 取代您的主題 ARN

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

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

故障診斷

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

請遵守 SNS ARN 格式

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

無效 SNS 主題

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

SNS 主題已加密

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

檢查或重新傳送通知確認電子郵件

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

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

若要查看您的通知狀態或重新傳送通知確認電子郵件
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/sns/v3/home 開啟 Amazon SNS 主控台。

  2. 在導覽窗格中,選擇 Subscriptions (訂閱)

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

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

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

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

使用 SSE 和 AWS KMS 來保護 Amazon SNS 預算提醒資料

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

若要使用 AWS Management Console 或 AWS 服務開發套件 (SDK) 管理 SSE,請參閱 Amazon Simple Notification Service 入門指南中的對 Amazon SNS 主題啟用伺服器端加密 (SSE)

若要使用 AWS CloudFormation 建立加密主題,請參閱 AWS CloudFormation 使用者指南

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

設定 AWS KMS 許可

您必須在使用 SSE 前設定 AWS KMS 金鑰政策。此組態可讓您加密主題,與加密和解密訊息。如需相關詳細資訊AWS KMS權限,請參閱AWS KMSAPI 許可:動作和資源參考中的AWS Key Management Service開發人員指南

您也可以使用 IAM 政策來管理 AWS KMS 金鑰許可。如需詳細資訊,請參閱搭配 AWS KMS 使用 IAM 政策

注意

雖然您可以設定從 Amazon SNS 傳送和接收訊息的全域許可,AWS KMS 會要求您在指定區域中指定 AWS KMS keys (KMS 金鑰) 的完整 ARN。您可以在 IAM 政策的 Resource (資源) 區段找到。

您必須確定 KMS 金鑰的金鑰政策允許必要的許可。若要這樣做,請將在 Amazon SNS 中產生和消費加密訊息的委託人命名為 KMS 金鑰政策中的使用者。

啟用 AWS Budgets 和加密 Amazon SNS 主題的相容性
  1. 建立 KMS 金鑰

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "budgets.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:budgets::<account-id>:*" } } } ] }
  3. 啟用 SNS 主題的 SSE

    注意

    請確定您使用的 KMS 金鑰與授予 AWS Budgets 發佈至加密 Amazon SNS 主題之許可的 KMS 金鑰相同。

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