1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IAMのイベントを検知して処理する(EventBridge→SNS→Lambda)

Posted at

少し前に以下の記事を書きました
https://qiita.com/kaikusakari/items/06b47a45de30107a2ab1

単独アカウントでIAMのイベントを取得する場合のケースでしたが、クロスアカウント環境下でIAMのイベントを集約して検知したい場合の手段になります。

前の記事に記載した通り、IAMのイベントは「us-east-1」リージョンにEventBridgeを作らないと取得できません。(他にもConfigを使うなど取得する手段はありますが、EventBridgeがお勧めです)

想定環境

・「ap-northeast-1」を主に使っている
・クロスアカウント
・1つのアカウントにログやイベントを集約して監視専用のアカウントとする

準備するもの

イベント送信先
ログ集約アカウント
・「ap-northeast-1」でLambdaを作り、イベントを検知してチャットアプリに通知する
・「us-east-1」から「ap-northeast-1」のLambdaをCallするためのSNSトピックを作成する
・「us-east-1」で各アカウントからIAMのイベントを受け取る用のイベントバス+ルールを作る

イベント送信元
各アカウント
・「us-east-1」でIAMイベント取得用のルールを作る

構築(イベント送信先)

Lambda
Lambda(Node)の実装例

index.js
exports.handler = async (event) => {
  const json = JSON.parse(event.Records[0].Sns.Message);
  console.log("account " + json.account);
  console.log("eventName " + json.detail.eventName);

    const response = {
        statusCode: 200,
        body: JSON.stringify('account ' + event.account + ' ' + event.name),
    };
    return response;
};

SNSのトピックを作成
上記Lambdaの名前をサブスクライブに指定する

EventBridge(イベントバス)
送信元アカウントの12桁数字を入力する

EventBridge(ルールの作成)
イベントパターンのイベント名に「Create*」のような指定はできません。

eventpattern
{
  "source": [
    "aws.iam"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "iam.amazonaws.com"
    ],
    "eventName": [
      "CreateUser",
      "CreatePolicy"
    ]
  }
}

構築(イベント送信元)

EventBridge(ルールの作成)
ターゲットにイベント送信先のイベントバスを指定します

eventpattern
{
  "source": [
    "aws.iam"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "iam.amazonaws.com"
    ],
    "eventName": [
      "CreateUser",
      "CreatePolicy"
    ]
  }
}

結果

CreateUser、CreatePolicyのイベント発生時にLambdaが動くのでチャットアプリなりに通知して適宜監視するなど利用できるかと存じます。
(EventBridgeはCloudtrail経由のため実際の操作から10分程度遅れて通知を受け取ることになります)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?