Назад | Перейти на главную страницу

Как настроить события Cloudwatch для срабатывания при вызовах IAM API?

Поэтому у меня проблемы с настройкой событий Cloudwatch для запуска функции Lambda. В текущем сценарии я хочу запускать лямбду, когда кто-то / вещь меняется что-нибудь в IAM.

В настоящее время у меня есть глобальный Cloudtrail в Северной Вирджинии, который регистрирует все события IAM, и я могу их очень четко видеть.

Затем у меня есть событие Cloudwatch с триггером, настроенным на Lambda. При тестировании триггера на любом другом сервисе, скажем EC2, лямбда срабатывает правильно. Однако при использовании IAM он будет всегда потерпеть поражение.

Вот шаблон событий, который я использую, и это, кажется, единственное, что может быть неправильным на данный момент:

{
   "detail-type": [
     "AWS API Call via CloudTrail"
   ],
   "detail": {
     "eventSource": [
       "iam.amazonaws.com"
     ]
   }
}

Если кто-то пробовал это настраивать раньше, помогите пожалуйста. Это меня заводит.

Итак, я выяснил, в чем проблема: шаблоны, которые я пытался использовать, либо не обеспечивали маленькую, либо достаточно большую область действия. Такой мониторинг IAM требует следующих этот Guide, и когда он сообщает вам шаблон событий для ввода в качестве шаблона событий Cloudwatch, вам необходимо указать ТОЧНО имена событий, которые вам требуются.

Он довольно длинный, но демонстрирует, насколько тщательными вам нужно быть и что подстановка не поддерживается, вот шаблон, с которым я закончил:

{
  "source": [
    "aws.iam"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "iam.amazonaws.com"
    ],
    "eventName": [
      "AddClientIDToOpenIDConnectProvider",
      "AddRoleToInstanceProfile",
      "AddUserToGroup",
      "ChangePassword",
      "CreateAccessKey",
      "CreateAccountAlias",
      "CreateInstanceProfile",
      "CreateLoginProfile",
      "CreateOpenIDConnectProvider",
      "CreateRole",
      "CreateSAMLProvider",
      "CreateServiceLinkedRole",
      "CreateServiceSpecificCredential",
      "CreateUser",
      "CreateVirtualMFADevice",
      "DeactivateMFADevice",
      "DeleteVirtualMFADevice",
      "EnableMFADevice",
      "ResyncMFADevice",
      "UpdateAccessKey",
      "UpdateAccountPasswordPolicy",
      "UpdateGroup",
      "UpdateLoginProfile",
      "UpdateOpenIDConnectProviderThumbprint",
      "UpdateRoleDescription",
      "UpdateSAMLProvider",
      "UpdateServerCertificate",
      "UpdateServiceSpecificCredential",
      "UpdateSigningCertificate",
      "UpdateSSHPublicKey",
      "UpdateUser",
      "UploadServerCertificate",
      "UploadSigningCertificate",
      "UploadSSHPublicKey",
      "AttachGroupPolicy",
      "AttachRolePolicy",
      "AttachUserPolicy",
      "CreatePolicy",
      "CreatePolicyVersion",
      "DeleteAccountPasswordPolicy",
      "DeleteGroupPolicy",
      "DeletePolicy",
      "DeletePolicyVersion",
      "DeleteRolePolicy",
      "DeleteUserPolicy",
      "DetachGroupPolicy",
      "DetachRolePolicy",
      "DetachUserPolicy",
      "PutGroupPolicy",
      "PutRolePolicy",
      "PutUserPolicy",
      "SetDefaultPolicyVersion",
      "UpdateAssumeRolePolicy"
    ]
  }
}

Чтобы отслеживать изменения в IAM, вам необходимо использовать комбинацию CloudWatch, CloudWatch Logs и CloudTrail. Убедитесь, что CloudTrail включен для каждого региона, который вы хотите отслеживать.

CloudTrail будет записывать звонки в IAM и сохранять их в журналах CloudTrail. CloudTrail будет публиковать события в журналах CloudWatch. Вы настраиваете фильтр в CloudWatch для генерации метрик CloudWatch на основе событий CloudTrail. Эти показатели используются для активации сигналов тревоги.

Ваш фильтр CloudWach выглядит так:

{ ($.eventSource = "iam.amazonaws.com") }

Эта статья поможет вам разобраться в этом процессе. Пошаговая инструкция со скриншотами.

Как получать оповещения при изменении конфигурации IAM