Amazon-Web-Services

如何配置 Cloudwatch 事件以觸發 IAM API 呼叫?

  • July 3, 2020

因此,我無法設置 Cloudwatch 事件來觸發 Lambda 函式。在目前場景中,當任何人/事物更改IAM 中的任何內容時,我想觸發 Lambda 。

目前,我在弗吉尼亞北部有一個全球 Cloudtrail,它正在記錄所有 IAM 事件,我可以非常清楚地看到它們。

然後我有一個 Cloudwatch 事件,其觸發器設置為 Lambda。在任何其他服務上測試觸發器時,比如 EC2,lambda 被正確觸發。然而,當使用 IAM 時,它總是會失敗。

這是我正在使用的事件模式,這似乎是目前唯一可能出錯的事情:

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

如果有人之前嘗試過設置,請提供幫助。這讓我很生氣。

所以我發現了問題所在,我嘗試使用的模式要麼沒有提供足夠小的範圍,要麼沒有提供足夠大的範圍。以這種方式監控 IAM 需要遵循指南,當它告訴您將事件模式輸入為 Cloudwatch 事件模式時,您需要準確指定所需的事件名稱。

它相當長,但展示了您需要做到多麼徹底,並且不支持 globbing,這是我最終得到的模式:

{
 "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 中設置一個過濾器以從 CloudTrail 事件生成 CloudWatch 指標。這些指標用於觸發警報。

您的 CloudWach 過濾器如下所示:

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

本文將幫助您了解該過程。一步一步的截圖。

如何在您的 IAM 配置更改時接收警報

引用自:https://serverfault.com/questions/887956