Chatbotで通知できる対象が大幅に増えたけど、試したらコレジャナイ感。
はじめに
アップデートの内容については、DevelopersIOの記事を読むと良いと思います。
ざっくり言うと、Chatbotは一部のサービスの通知しかできなかったけど、EventBridgeと連携できるようになった事で通知できるサービスが大幅に増えました!という事です。
今までSlackに通知するだけのLambdaを書く事がそれなりにありましたが、今後はかなり少なくなるでしょう。
と思っていました…
要点
- とりあえず通知できるようになっただけ。通知される情報は不十分かも。
- サービス次第では、イベントの情報が全くと言っていいほど分からない。
- 通知内容は各サービス1つ1つ試してみないと分からない。
使えたら良いなくらいに思って、あまり期待しない方がいいと思います。
Amazon EventBridgeについて
そもそもEventBridgeはサードパーティのイベントが処理できるらしい、という事くらいしか知らなかったので調べました。
CloudWatch Eventsはそれなりに使っていましたが。
ですが、ほとんど考える必要は無かったです。
EventBridgeではイベントバスというものでイベントが大きく分類され、その下にルールがぶら下がるのですが、AWSサービスのイベントはdefault
イベントバスに入ってきます。
AWSサービスのイベントを処理する分には、イベントルールの上にdefault
イベントバスがある以外はCloudWatch Eventsと変わりません。
加えて言うと、CloudWatchのコンソールで作ったルールは、EventBridgeコンソールでも表示されます。逆もまたしかり
CloudWatch Eventsがこれ
EventBridgeがこっち
今回の用途では、全く同じものと考えて良さそうです。
検証内容
ECRイメージスキャンの結果をLambdaでSlack通知していたので、変更できないか検証しました。
設定
下記のイベントパターンをChatBot用のSNSに飛ばすように設定します。
|
|
イベントの詳細については、こちらのドキュメントの「完了したイメージスキャンのイベント」に記載がありますが、以下の様な形式です。
|
|
手順は前述の、DevelopersIOの記事の内容と同じなので割愛します。
通知結果
以下のようにSlackに通知されました。
なんか、情報少ないのですが?これで全量ですよ。
元のイベントはスキャンの結果、finding-severity-counts
のところに脆弱性の重大度毎の件数が出力されます。
ここ重要なとこなのですが、↑では、要するに「このリポジトリでスキャンがされました!キリッ」って報告してるわけです。
えっ結果はよ…?
"finding-severity-counts": {
"CRITICAL": 10,
"MEDIUM": 9
},
なお、全く同じイベントをSNSでメール通知すると当然全部通知されます。Chatbotが情報を削っているという事です。
どうして…
この時点で、だいぶ悲しい雰囲気が漂ってるのですが…もしかしたら設定で変更できたりしないかなと思ってAWSサポートに問い合わせた結果分かった事。
finding-severity-counts
の内容が通知されないのは仕様。- 通知される情報はサービス毎に異なる。※
- サービス毎に通知される情報はドキュメント等には記載なし。
※最初、detail
以下の情報は通知されない仕様なのかなと思っていたのですが、前述のDevelopersIOの記事では、detail
の情報が通知されていますね1。
「イベント内容ぽいっちょ捨てるのねん。情報多いと分かり辛いのねん♪」というAWSさんの粋な計らいなのでしょうが
「やめろ、それは必要な情報じゃないか!!」と。
判断できないものはとりあえず全通知の方がマシだったんじゃないですかね…
終わりに
今回の件に限らないですが、新しいサービスやアップデートは引いて見るくらいが良いですね。
おぉ!っと盛り上がってしまってショックも大きかったです。反省