IAM API 呼び出しでトリガーされるように Cloudwatch イベントを構成する方法を教えてください。

IAM API 呼び出しでトリガーされるように Cloudwatch イベントを構成する方法を教えてください。

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"
    ]
  }
}

関連情報