【AWS】SSMパッチマネージャーを利用してEC2 Windows OSを管理する_パッチスキャン編


はじめに

AWSの管理ツールには、OSやソフトウェアのパッチ管理を簡単にする便利なサービス「AWS Systems Manager(SSM)」があります。その中でも「パッチマネージャー」は、WindowsやLinuxサーバーのパッチ状態をスキャンしたり、必要に応じて自動的にパッチ適用する機能を提供しています。

今回は初心者の方向けに、Windowsサーバーを対象としたパッチ管理についてご紹介します。
パッチ管理は『スキャン』と『パッチ適用』の2つのステップに分かれますが、今回は『スキャン』にフォーカスしたいと思います。

※「パッチ適用」については次回投稿したいと思います。

スキャンについて

スキャンとは、サーバーの現在の状態を確認し、適用が必要なパッチがあるかどうかを検出するプロセスです。
スキャンを行うことで、既存のセキュリティリスクや不足しているパッチを特定でき、パッチ適用前にシステムの現状を把握することができます。

特にスキャンだけであればシステムへの影響が少ないため、本番環境でも安心して実施できるのがメリットです。なぜなら、スキャンは情報を収集するだけで、システム構成や動作に直接影響を与えないためです。
まずはスキャンを実施して、自社のサーバーが最新の状態にあるかどうかを確認してみましょう。


前提

今回はすでにある程度AWS環境が構築済みであることを前提に進めたいと思います。
・EC2でWindowsインスタンスが起動中である
・EC2にSSMエージェントがインストールされている
    (ほとんどのWindowsインスタンスはSSMエージェントがプリインストールされています。確認が必要な方はこちら)
・EC2に適切なロールが付与されている
・EC2がNAT GatewayやInternet Gatewayを通してインターネットにアクセスできる
詳細な前提条件については、AWS公式のこちらを参考にいただければと思います。


パッチマネージャーの設定

パッチマネージャーを利用するための基本的なセットアップを行います。
ここでは、手軽に始められる「高速セットアップ」を使った方法をご紹介します。

1.高速セットアップにアクセス
AWSマネジメントコンソールにログインし、Systems Manager の「高速セットアップ」に移動します。

2.パッチマネージャーのセットアップを開始
検索窓に「patch」と入力すると、セットアップ一覧にPatch Managerが表示されます。「作成」をクリックします。

3.スキャン項目の設定
Patch Managerの設定項目を入力していきます。
設定名:適宜入力します。
スキャンとインストール:スキャンを選択してください
スキャンのスケジュール:カスタムスケジュールを選択
スキャンの頻度:日単位
毎日:12:00 (※ UTCなので気をつける)
例えば、JST(日本標準時)の午前9時に実行したい場合は、UTCで午前0時と設定します。
※今回はテスト実行ということもあり、実行時間はあまり意識せずに設定しました。本番環境などで利用する場合は実行時間を必ず検討するようにしましょう。

4.パッチベースラインの選択
パッチベースライン:推奨される既定値を使用を選択

※今回は、デフォルト設定(推奨される既定値を使用)にします。
ちなみに、カスタムパッチベースラインを選択すると以下のような画面になり、各OS単位でベースラインを選択できるようになります。独自のパッチベースラインを使用する場合はこちらを選択しましょう。

5.ログの設定
スキャン結果をログに残したい場合は、こちらを選択します。
適宜S3バケットを指定すると、スキャン結果のログがバケットに保存されます。

6.インスタンスの選択
スキャン対象のインスタンスを選択します。今回は、対象のインスタンスを「手動」で設定します。
リージョン:
既存のリージョン
ターゲット:手動
インスタンス:対象インスタンスにチェックを入れましょう

※今回はインスタンスを手動で選択してますが、タグを利用したり、リソースグループを選択することも可能です。ちなみにタグを利用する場合は以下のような感じにするとよいでしょう。タグの「キー」と「値」を指定する形になります。EC2インスタンスにはタグを付与することを忘れずに。

7.後続の設定
残りの設定をしていきます。
レート制御:
今回はデフォルト
インスタンスプロファイルのオプション:チェックを入れる
※この項目にチェックを入れるとパッチマネージャー実行に必要なポリシーがインスタンスに自動付与されます。

8.最終確認と登録
最下段で設定項目の最終確認ができます。
設定に問題なければ、「作成」をクリックします。

以上でスキャン設定は完了となります。
設定した時間になったらスキャンが開始されます。急いでスキャンをしたい方は、直前の時間を設定するとよいでしょう。

スキャン結果の確認

スキャンが完了したら、結果を確認しましょう。パッチ適用済み、未適用などインスタンスの現在の状態を確認できます。
スキャン結果はSSMのコンソールから簡単に確認ができます。

1. SSMコンソールから 結果を確認

SSMコンソール > パッチマネージャー >「コンプライアンスレポート」
を開きます。

・各サーバーのステータス(例: 準拠/非準拠)を一覧で確認できます。
・詳細な情報は個別サーバーをクリックすると表示されます。
※画像では指定してインスタンスが「非準拠」となっています。未適用のパッチがあることを示しています。

詳細を確認しましょう。
該当インスタンスにチェックを入れ、「詳細を表示」をクリックします。

適用済みパッチや未適用パッチ、重要度など一覧表示されます。パッチの名前はKB番号で表記されます。
中でも、画像のように「状態」がMissingなものを探します。未適用のパッチとして結果に表示されています。
画像をよく見ると、重要度もCriticalと表示されてますね。重要度が「Critical」や「Important」のものは特に注意する必要があります。適用を急いで検討しましょう。

KB番号を選択すると、該当するパッチの概要が表示されます。適用する判断の一つとして参考にしましょう。


2. S3バケットのログで結果を確認

パッチマネージャーの設定によっては、スキャン結果のログをS3バケットに保存することができます。以下の手順で結果のログを確認できます。

  • ログ出力の設定を行ったS3バケットを開きます。

  • 新たにディレクトリができているので、ディレクトリの階層をブレークダウンし、「stdout」ファイルを探します。stdoutファイルが実行結果のログです。適宜ダウンロードして内容を確認しましょう。ログには詳細なスキャン結果が記録されています。画像のようなjson形式のログです。


パッチ適用の検討

スキャン結果を基に「Missing」表記のパッチを適用するべきかを検討します。特に重要度が高いもの「Critical」や「Important」などは、システムの安定性やセキュリティを考慮し、早めのパッチ適用を検討しましょう。

すべてのパッチを一度に適用するのではなく、例えば、まずは重要度が高いものから適用し、問題が発生しないことを確認した上で他のパッチを適用するようにしましょう。適用前にバックアップを取得するのも一つですよね。
また、テスト環境で適用後の動作確認を行い、本番環境への影響を最小限に抑える手順を取り入れると安心です。


まとめ

今回の記事ではWindowsサーバのパッチスキャンの手順を紹介しました。
SSMパッチマネージャーを利用することで、Windowsサーバーのパッチ管理がより簡単になります。今回はスキャンにフォーカスしましたが、この手順を通じて自社環境のインスタンスの状況を把握することができます。
この記事が少しでもお役に立てば幸いです。次回はパッチ適用方法について解説したいと思います。


参考


関連記事


いいなと思ったら応援しよう!