Amazon-Web-Services
如何配置 Cloudwatch 事件以觸發 IAM API 呼叫?
因此,我無法設置 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") }
本文將幫助您了解該過程。一步一步的截圖。