跳至內容

如何使用 CloudWatch 警示調用跨帳戶的 Amazon SNS 主題?

2 分的閱讀內容
0

我想跨不同的 AWS 帳戶,使用 Amazon CloudWatch 警示調用 Amazon Simple Notification Service (Amazon SNS) 主題。

解決方法

**注意:**以下解決方法使用兩個帳戶。

使用帳戶 A 建立 CloudWatch 警示,並使用帳戶 B 建立 Amazon SNS 主題。接著,更新 SNS 主題的存取政策,以允許帳戶 A 的警示發佈訊息。

在帳戶 B 中建立 SNS 主題

完成以下步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Topics (主題),然後選擇 Create topic (建立主題)。
  3. 在主題類型選擇 Standard (標準),然後提供主題名稱。
  4. 選擇 Create topic (建立主題),然後複製該主題的 Amazon Resource Name (ARN)。
  5. 在導覽窗格中,選擇 Subscriptions (訂閱),然後選擇 Create subscription (建立訂閱)。
  6. Topic ARN (主題 ARN) 區段中新增主題的 ARN,然後選擇 Email (電子郵件) 作為通訊協定。
  7. 選擇 Create subscription (建立訂閱),然後檢查您的電子郵件以確認訂閱。

在帳戶 A 中建立 CloudWatch 警示

完成以下步驟:

  1. 開啟 CloudWatch console (CloudWatch 主控台)。
  2. 在導覽窗格中,選擇 Alarms (警示),然後選擇 Create alarm (建立警示)。
  3. 選取您的指標,然後提供閾值與比較參數的詳細資訊。
  4. Configure Actions (設定動作) 的 Notifications (通知) 底下,選擇 Use topic ARN to notify other accounts (使用主題 ARN 通知其他帳戶),然後輸入來自帳戶 B 的主題 ARN。
  5. 建立警示名稱,然後選擇 Create alarm (建立警示)。

更新帳戶 B 中 SNS 主題的存取政策

當您更新帳戶 B 中 SNS 主題的存取政策時,這會允許警示發佈訊息。

完成以下步驟:

  1. 開啟 SNS console (SNS 主控台)。

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

  3. 選擇 Edit (編輯),然後將以下陳述式新增至政策中:

    {
        "Statement": [{
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudwatch.amazonaws.com"
            },
            "Action": "SNS:Publish",
            "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                }
            }
        }]
    }

    **注意:**在前述政策中,請將範例值替換為您的值。

測試警示

若要測試警示,請根據指標資料點變更警示閾值,或執行 set-alarm-state 命令。當您變更警示閾值或警示狀態時,您會收到電子郵件通知。

相關資訊

允許任何 CloudWatch 警示發佈至不同帳戶中的主題

為什麼我沒有收到 CloudWatch 警示觸發的 SNS 通知?