Как настроить AWS Cloudwatch Events для события AssumeRole (для запуска уведомлений SNS) - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь настроить правило события Cloudwatch (для запуска уведомления SNS), когда кто-то выполняет определенную роль:

{
  "detail": {
    "eventName": [
      "AssumeRole"
    ],
    "eventSource": [
      "sts.amazonaws.com"
    ],
    "requestParameters": {
      "roleArn": [
        "arn:aws:iam::0000:role/the_role_name"
      ]
    }
  },
  "detail-type": [
    "AWS API Call via CloudTrail"
  ]
}

Где 0000 - идентификатор учетной записи, а the_role_name - это роль, о которой я хочу оповещать.

Это не приводит к запуску какого-либо уведомления, однако, когда я ищу в Cloudtrail Insights события:

filter eventName = 'AssumeRole'
| filter requestParameters.roleArn =~ 'the_role_name'
| sort @timestamp desc
| display @timestamp, requestParameters.roleSessionName, eventName, requestParameters.roleArn, userAgent, sourceIPAddress

Я действительно получаю результаты, которые ДОЛЖНЫ вызвать rule:

requestParameters.roleSessionName eventName   requestParameters.roleArn
my_username                       AssumeRole  arn:aws:iam::0000:role/the_role_name
...

Для того, чтобы попытаться замять вещи и поймать более широкий набор событий, я также попробовал следующее правило (которое бы перехватывало все события AssumeRole для любой роли):

{
  "detail": {
    "eventName": [
      "AssumeRole"
    ]
  },
  "detail-type": [
    "AWS API Call via CloudTrail"
  ]
}

Это правило также не запускается.

У кого-нибудь есть идеи о том, как настроить правила событий Cloudwatch для запуска событий AssumeRole?

Я прочитал этот связанный вопрос (который пытается добиться чего-то подобного), но у него не было решения: AWS События CloudWatch запускают SNS для роли STS, предполагая для кросс-аккаунта

1 Ответ

0 голосов
/ 06 февраля 2020

Прежде всего, убедитесь, что событие вызвано или нет, проверив показатели мониторинга для правила. Возможно, что это вызвано, но это не в состоянии вызвать цель. В этом случае вам следует проверить свои политики IAM.

Если он не запущен, могут возникнуть проблемы с доставкой журнала в Cloudwatch Logs. Убедитесь, что вы создали след в том же регионе, который доставляет события в журналы Cloudwatch.

У меня есть следующее правило в регионе us-east-1, которое отлично работает:

{
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "sts.amazonaws.com"
    ],
    "eventName": [
      "AssumeRole"
    ]
  },
  "source": [
    "aws.sts"
  ]
}
...