Правило Cloudwatch, которое запускает SNS в случае, если шаблон НЕ совпадает полностью - PullRequest
0 голосов
/ 07 мая 2019

Можно ли создать правило CloudWatch, которое запускает SNS, когда шаблон НЕ совпадает полностью?

На следующем примере я надеюсь, что вопрос будет более понятным:

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

Кроме того, я хочу указать регион: "awsRegion": "eu-central-1", но (здесь сложная часть) хочет, чтобы SNS запускался, когда awsRegion НЕ eu-central-1.

Идея состоит в том, чтобы получать уведомление, когда кто-то совершает ошибку и запускает экземпляр в неправильном регионе.

Также я добавлю больше правил, когда я знаю, как это сделать, так что вопрос не только для региона, но и для общего.

Заранее спасибо!

TeoVal

1 Ответ

0 голосов
/ 07 мая 2019

В настоящее время невозможно сработать, когда шаблон НЕ соответствует.

Вам нужно будет получать уведомления для всех регионов по теме SNS и реализовывать свою собственную логику с помощью функции Lambda, подписанной на вашу тему (или непосредственно с Lambda в качестве цели).

Также обратите внимание, что можно запретить пользователям выполнять вызовы API в определенном регионе, используя политику, аналогичную следующей (ограничивает вызов для us-east-1 и eu-central-1 регионов):

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