You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CloudWatch Alarm能否向跨区域SNS主题发通知?保存告警遇错误

解决跨区域CloudWatch告警触发不同区域SNS主题的问题

Hey there, great question—cross-region CloudWatch alarm notifications are absolutely achievable, that error you're seeing is almost always a permissions issue or an ARN formatting misstep. Let's walk through how to fix this:

1. 修正SNS主题的访问策略(最可能的问题根源)

核心问题在于你的俄勒冈(us-west-2)SNS主题没有显式允许北加州(us-west-1)的CloudWatch服务向它发送消息。跨区域的AWS服务调用需要明确的权限授权,所以我们需要更新主题的访问策略:

  1. 进入俄勒冈(us-west-2)区域的SNS控制台,找到你的目标主题,切换到「访问策略」标签页。
  2. 在现有策略中添加或替换以下语句(记得替换成你实际的AWS账号ID和主题名称):
{
  "Version": "2008-10-17",
  "Id": "CloudWatchCrossRegionAccess",
  "Statement": [
    {
      "Sid": "AllowUsWest1CloudWatchToPublish",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudwatch.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:us-west-2:YOUR_ACCOUNT_ID:YOUR_TOPIC_NAME",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "YOUR_ACCOUNT_ID"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:cloudwatch:us-west-1:YOUR_ACCOUNT_ID:alarm:*"
        }
      }
    }
  ]
}

这个策略的作用:

  • 允许CloudWatch服务主体调用sns:Publish接口向你的俄勒冈主题发送消息
  • 仅限制北加州(us-west-1)区域、你自己账号下的CloudWatch告警才能触发这个权限,保证安全性

2. 检查ARN格式是否正确

当你选择「enter list」输入跨区域ARN时,必须确保格式完全准确。正确的ARN格式为:
arn:aws:sns:us-west-2:123456789012:your-topic-name

  • 确认区域代码正确(us-west-2对应俄勒冈)
  • 核对12位AWS账号ID无误
  • 确保主题名称与俄勒冈SNS控制台中的名称完全一致

3. 测试与进一步排查

更新策略并验证ARN后:

  • 返回北加州的CloudWatch告警页面,重新输入ARN尝试保存。
  • 如果仍然报错,查看AWS CloudTrail中的sns:Publish失败事件——这里会显示拒绝请求的具体原因(比如权限缺失、ARN错误等)。
  • 另外要注意:俄勒冈SNS主题的邮件/SMS订阅者必须完成确认流程,否则即使告警触发,消息也无法正常投递。

内容的提问来源于stack exchange,提问作者Kyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:06:26