Amazon EventBridgeを使用してPatchManagerのパッチ状況をSNS通知する

はじめに

前回はPatchManagerの全体の流れを把握しました。
今回はRun CommandでInstallが実行され、パッチ状態がインストール済み保留中(コンプライアンス非準拠)になるとSNS通知が行くようにしていきたいと思います。
※Installを実行せずにScanのみを実行しても、非準拠になります。

EC2作成

タイプ 設定値
OS windows server 2022 base
タイプ t2.micro
タグ Key:PatchTest Value:Watanabe

タグは任意で大丈夫です。
上記以外はデフォルトで設定してあります。

EventBridge作成

SNS通知が行くようにするためにEventBridgeを作成します。
SNSは事前に作成してください。

  1. EventBridge→左ペイン「ルール」→「ルールの作成」を押下します。
    設定値は以下の画像の通りです。
    file

  2. イベントソースは「その他」でサンプルイベントは今回はいらないのでデフォルトです
    file

  3. 作成のメソッドは「カスタムメソッド」を選択します。
    JSON形式で以下のコードを入力します。

    {
    "source": ["aws.ssm"],
    "detail-type": ["AWS API Call via CloudTrail"],
    "detail": {
    "requestParameters": {
      "items": {
        "status": ["NON_COMPLIANT"]
      }
    },
    "eventSource": ["ssm.amazonaws.com"],
    "eventName": ["PutComplianceItems"]
    }
    }

    file

  4. 次にターゲットを選択します。
    今回はSNSをターゲットにします。
    トピックには自分で作成したトピックを入れてください
    file

  5. タグ等は任意でつけて作成します

パッチポリシーの作成

EventBridgeが完成したらパッチポリシーの作成を行います。

  1. 設定名は任意です。
    今回は「スキャンとインストール」を選択します。
    スケジュールはテストなので現在の時間の+10分~20分くらいにしています。
    file

  2. ベースラインポリシーはデフォルトで大丈夫です。
    file

  3. ログは今回取得しないので「S3バケットに出力を書き込む」を無効にしています。
    リージョンは東京リージョンを指定しており、「ノードタグを指定」を選択し、タグはEC2作成時のタグを参照しています。
    file

  4. 他はデフォルトで作成します。
    file

SNS通知が送られたかの確認

以下の画像の様に「コンプライアンス」が「非準拠」になっていたらメール通知されます。
file
以下メール部分はJSON形式で送られてきます。(Lambdaなどで変更可能)
「status」が「NON_COMPLIANT」になっていることが確認できます。
file

まとめ

今回はPatchManagerで非準拠になったらSNS通知が行くようにしてみました。
これによりマネジメントコンソールに毎回アクセスせずにメールなどが来た段階で見に行けばいいので監視が楽になることが確認できました。

Last modified: 2023-05-19

Author