IAM API 호출에서 트리거되도록 Cloudwatch 이벤트를 구성하는 방법은 무엇입니까?

IAM API 호출에서 트리거되도록 Cloudwatch 이벤트를 구성하는 방법은 무엇입니까?

그래서 Lambda 함수를 트리거하기 위해 Cloudwatch 이벤트를 설정하는 데 문제가 있습니다. 현재 시나리오에서는 누군가/사물이 변경되면 Lambda를 트리거하고 싶습니다.아무것IAM에서.

현재 저는 버지니아 북부에 모든 IAM 이벤트를 기록하는 글로벌 Cloudtrail을 보유하고 있으며 이를 매우 명확하게 볼 수 있습니다.

그런 다음 트리거가 Lambda로 설정된 Cloudwatch 이벤트가 있습니다. EC2와 같은 다른 서비스에서 트리거를 테스트할 때 람다가 올바르게 트리거됩니다. 그러나 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 로그에 이벤트를 게시합니다. CloudTrail 이벤트에서 CloudWatch 지표를 생성하려면 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"
    ]
  }
}

관련 정보