はじめに
こんにちは、サメ映画をこよなく愛する梅木です。最近のお気に入りは複数頭のサメが一気に押し寄せるタイプのサメ映画です。
前回のブログでは、AWS Systems Manager Patch Manager を利用したパッチスキャンの自動化と、コンプライアンスレポートでの「準拠・非準拠」の確認方法をご紹介しました。
パッチスキャンを自動化できたのは良いのですが、 「パッチスキャンの都度AWSマネジメントコンソールに見に行くのは面倒…適用されていないパッチが検出された時だけ教えてほしい!」 といった、通知機能が欲しくなります。
そこで今回は、前回の設定の続きとして、Patch Manager のスキャン結果が「非準拠(NON_COMPLIANT)」で更新されたことをトリガーにして、メール通知を行う仕組みを作ってみたいと思います。
今回のブログでは基礎編として、簡易に設定できる シンプルな通知 方法をご紹介します。
Patch Manager とは
EC2 OS へのパッチ適用を自動化するマネージドサービスです。詳しくは以下記事をご覧ください。
その他、抑えておきたい用語は以下の通りです。
コンプライアンスレポート
- パッチ適用状態を示すレポート
- パッチベースラインで定義した適用対象のうち、未インストールのパッチについては、コンプライアンスレポートから詳細(Windowsの場合はKB番号、Linuxの場合はパッケージ名)を確認することができます
準拠・非準拠
- マネージドノードのパッチ適用状況を表します
- パッチベースラインで定義した状態に適合していれば「準拠」、逸脱していれば「非準拠」となります
EventBridge × SNS でシンプルに通知してみる
最もシンプルで、マネージドサービスの組合せのみで実装できる基本パターンをご紹介します。
構成

| No | 内容 | 詳細 |
|---|---|---|
| 1 | コンプライアンスレポート更新 | Patch Manager のスキャンによってインスタンスのコンプライアンスレポートが「非準拠(NON_COMPLIANT)」として更新される |
| 2 | 検知 | Amazon EventBridge ルールで上記を検知 |
| 3 | 通知 | Amazon SNS 経由でメールを送信する |
設定のポイント
EventBridge ルールのイベントパターンは、以下のように設定しました。
これによりコンプライアンスレポートが更新され、かつ結果が「非準拠」である場合のみを検知できます。
{ "source": ["aws.ssm"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "requestParameters": { "items": { "status": ["NON_COMPLIANT"] }, "executionSummary": { "executionType": ["PatchPolicy"] } }, "eventSource": ["ssm.amazonaws.com"], "eventName": ["PutComplianceItems"] } }
また、ターゲットの設定で「入力トランスフォーマー」を使用し、通知文面をカスタマイズします。
今回は以下のような設定としました。
- 入力パス
{ "account": "$.account", "region": "$.region", "resourceId": "$.detail.requestParameters.resourceId" }
- 入力テンプレート
"パッチ非準拠を検出しました" "アカウント : <account>" "リージョン : <region>" "インスタンスID : <resourceId>"
なお、他にどのような情報を通知できるか確認したい場合は、以下からご確認ください。
- CloudTrail
- イベント履歴 > ルックアップ属性を「イベント名」にし「PutComplianceItems」を検索
- 表示されたイベント名をクリックし「イベントレコード」に含まれる jsonレコードを参照する
メリットとデメリット
- メリット: *AWSコンソール上の設定だけで容易に構築できます。
- デメリット: * EventBridgeの標準イベントから取得できる情報には限界があり、メール本文には「どのインスタンス(ID)が非準拠になったか」までしか記載できません。
- そのため、今回の通知方法では 「具体的にどのパッチが適用漏れしているのか(内訳)」を知るには、AWSマネジメントコンソールにログインし、前回ご紹介したコンプライアンスレポートを確認する必要があります。
さいごに
今回は、AWS Systems Manager Patch Manager でパッチが「非準拠」となった場合に、簡易にメール通知を行う仕組みをご紹介しました。
- 作りこみをせず通知だけ受け取りたい場合は シンプルな通知編(EventBridge + SNS) をご検討ください。
それでは、また次回の記事でお会いしましょう!