首页 > 解决方案 > 在模式不完全匹配时触发 SNS 的 Cloudwatch 规则

问题描述

当模式不完全匹配时,是否可以创建触发 SNS 的 CloudWatch 规则?

通过以下示例,我希望这个问题会更清楚:

{
 "source": [
  "aws.ec2"
 ],
 "detail": {
  "eventSource": [
   "ec2.amazonaws.com"
  ],
  "eventName": [
   "RunInstances"
  ]
 }
}

另外我想指定 region:"awsRegion": "eu-central-1"但是(这里是棘手的部分)希望 SNS 在awsRegionis NOT时被触发eu-central-1

想法是当有人犯错并在错误区域运行实例时收到通知。

一旦我知道该怎么做,也会添加更多规则,所以问题不完全是针对该地区的,而是针对一般性的。

提前致谢!

TeoVal

标签: amazon-web-servicesamazon-cloudwatch

解决方案


当前无法在模式不匹配时触发。

您将必须接收有关您的 SNS 主题的所有区域的通知,并使用订阅您的主题的 Lambda 函数(或直接以 Lambda 作为目标)实施您自己的逻辑。

另请注意,可以使用类似于以下的策略来限制用户在特定区域进行 API 调用(限制对us-east-1eu-central-1区域的调用):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RegionsRestriction",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "us-east-1",
                        "eu-central-1"
                    ]
                }
            }
        }
    ]
}

推荐阅读