我建立的成本異常偵測監視器未傳送通知至 Amazon Simple Notification Service (Amazon SNS) 主題。
簡短說明
當成本異常偵測監視器偵測到異常時,會向 Amazon SNS 主題發佈通知。然後,Amazon SNS 通常會透過電子郵件將通知傳送到已訂閱的端點。由於以下原因,通知可能無法到達相關端點:
- 成本異常偵測通知未到達 SNS 主題。這可能是因為在主題上啟用加密時缺少主題存取政策或 KMS 金鑰政策的許可。
- SNS 主題無法將通知傳遞給已訂閱的端點。
解決方法
檢閱 SNS NumberOfMessagesPublished 指標
檢閱 SNS NumberOfMessagesPublished指標,以確認異常偵測歷程記錄中的事件是否具有已發佈通知的對應資料點。此指標表示通知是否已成功發佈至您的主題。
SNS NumberOfMessagesPublished 指標沒有資料點
設定必要的許可
確認您授與 AWS 成本異常偵測服務所需的許可,以便將訊息發佈到您的主題。
下列範例 SNS 主題存取政策允許 AWS 成本異常偵測將訊息發佈到 Amazon SNS 主題:
{
"Sid": "E.g., AWSAnomalyDetectionSNSPublishingPermissions",
"Effect": "Allow",
"Principal": {
"Service": "costalerts.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "your topic ARN"
}
如需詳細資訊,請參閱針對異常通知建立 Amazon SNS 主題。
啟動伺服器端加密
檢查您是否在主題上啟動了服務器端加密。發佈到主題時,確認您已將 AWS 金鑰管理 (AWS KMS) 許可的 AWS 成本異常偵測服務授與給金鑰。
您的 Amazon SNS 主題必須使用由客戶管理的 AWS KMS 金鑰。此 KMS 金鑰必須包含允許 AWS 成本異常偵測服務執行 **kms:GenerateDataKey **和 kms:Decrypt 動作的自訂金鑰政策 。如需詳細資訊,請參閱設定 AWS KMS 許可。
下列 IAM 政策陳述式範例允許 AWS 成本異常偵測將訊息發佈到加密的 Amazon SNS 主題:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": "costalerts.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*"
}]
}
SNS NumberOfMessagesPublished 指標已填入,但您仍然未收到通知
請依照下列步驟疑難排解問題:
- 確認您訂閱的端點處於已確認狀態。
- 確認已發佈 **NumberOfNotificationsDelivered 和 NumberOfNotificationsFailed **指標通知並成功傳遞至端點。
- 檢查已訂閱端點上是否存在篩選政策。檢查 NumberOfNotificationsFilteredOut 指標,以查看訊息是否被篩選掉。如果訊息遭到篩選,請參閱如何疑難排解 Amazon SNS 中的訂閱篩選政策問題?
- 檢查主題的訂閱端點是否為電子郵件通訊協定。檢查 NumberOfNotificationsDelivered 指標是否表示通知已成功傳遞,但未到達電子郵件收件匣。如需詳細資訊,請參閱為什麼我無法接收來自 Amazon SNS 主題的電子郵件通知?
- 訊息可能無法到達下列其他已訂閱端點:
- HTTP
- Amazon Kinesis Data Firehose
- AWS Lambda
- 平台應用程式端點
- Amazon Simple Queue Service
- 短訊服務 (SMS)
開啟 Amazon SNS 主題傳送狀態記錄以進一步解決問題。日誌中的** ProviderResponse **屬性會說明傳遞失敗的原因。
**注意:**若要確保記錄每個訊息傳遞狀態,請將成功取樣率設定為 100%。如果使用較低的百分比,SNS 只會針對已傳遞或失敗訊息的指定百分比產生傳遞記錄。