如何配置 Cloudwatch 事件以在 IAM API 调用时触发?

如何配置 Cloudwatch 事件以在 IAM API 调用时触发?

因此,我无法设置 Cloudwatch 事件来触发 Lambda 函数。在当前情况下,我希望当任何人/事物发生变化时触发 Lambda任何事物在 IAM 中。

目前我在北弗吉尼亚州有一个全球 Cloudtrail,它正在记录所有 IAM 事件,我可以非常清楚地看到它们。

然后我有一个 Cloudwatch 事件,其触发器设置为 Lambda。在任何其他服务(例如 EC2)上测试触发器时,lambda 都会正确触发。但是当使用 IAM 时,它会总是失败。

这是我正在使用的事件模式,它似乎是目前唯一可能出错的地方:

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

如果有人曾经尝试过设置这个,请帮忙。这让我很头疼。

答案1

要监控 IAM 的变更,您需要结合使用 CloudWatch、CloudWatch Logs 和 CloudTrail。请确保要监控的每个区域都启用了 CloudTrail。

CloudTrail 将记录对 IAM 的调用并存储在您的 CloudTrail 日志中。CloudTrail 将事件发布到 CloudWatch 日志。您在 CloudWatch 中设置过滤器以从 CloudTrail 事件生成 CloudWatch 指标。这些指标用于触发警报。

您的 CloudWach 过滤器如下所示:

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

本文将帮助您了解该过程。分步说明并附带屏幕截图。

如何在 IAM 配置发生变化时接收警报

答案2

所以我找到了问题所在,我尝试使用的模式要么没有提供足够小的范围,要么没有提供足够大的范围。以这种方式监控 IAM 需要遵循以下指南,当它告诉您要输入的事件模式作为 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"
    ]
  }
}

相关内容