EventBridge のルールにワイルドカードがサポートされました!
概要
EventBridge がより便利になるアップデートが行われました!
ルールの中でワイルドカード *
が使用できるようになり、より柔軟な条件を簡単に表現することが可能になりました。
公式ページ
検証内容
IAM で何かしらのリソースが作成されたら、監査人へ通知する仕組みを作成します。
CloudTrail より iam:create*
に該当する API コールを EventBridge で拾い、SNS 経由でメール通知します。
構築
SNS
まずは SNS トピックを作成します。タイプはスタンダードを選びます。その他の設定はデフォルトで問題ありません。
次にサブスクリプションの作成をします。プロトコルにEMAILを選び、メールアドレスを設定します。
確認メールが届くので、リンクをクリックします。ステータスが確認済みになればOKです。
EventBridge
次に EventBridge ルールを作成します。イベントバスは default
でOKです。
イベントソースは AWS イベントまたは EventBridge パートナーイベントを選択します。
イベントパターンは以下のように設定します。
ここが今回の肝で "eventName": [{"wildcard": "Create*"}]
と指定しています。
{
"source": ["aws.iam"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["iam.amazonaws.com"],
"eventName": [{
"wildcard": "Create*"
}]
}
}
ターゲットは作成済みの SNS トピックを選択します。
以上で構築は完了です!
動作確認
適当な IAM ロールを作成します。信頼されたエンティティに EC2 を選択し、ポリシーのアタッチはしません。
CloudTrail のイベント履歴を確認すると CreateRole
と CreateInstanceProfile
が呼び出されていることが分かります。
EC2 を信頼関係に選んだため、IntanceProfile も自動的に作成されます。
メールを確認すると Create
から始まる API の呼び出しについて 2 件の通知が届いています。成功です!
まとめ
EventBridge のルールでワイルドカードが使えるようになり、より簡単にイベント駆動型システムを組めるようになりそうです。
一方 IAM ポリシーの感覚で *
をつけるだけでは期待した動作とならないので注意が必要です。
Discussion