はじめに
こんにちは、サメ映画をこよなく愛する梅木です。
今回は、AWS Systems Manager Patch Manager を利用したパッチスキャンについて、検証および検証手順をまとめます。
AWS Systems Manager Patch Manager とは
OSに対するパッチ運用を効率化するサービスです。 AWS Systems Manager の機能として提供されています。 事前に設定した条件に従って、パッチスキャン(適用されていないパッチの検出)およびパッチ適用を自動的に実施するサービスです。 適用すべきパッチの条件を細かく設定することができ、Windows と Linux の両方に対応しています。
用語
検証にあたり、AWS Systems Manager Patch Manager の用語を簡単にまとめます。
マネージドノード
- AWS Systems Manager で制御可能なEC2インスタンス
- Patch Manager の対象とするためには、マネージドノードである必要がある
パッチベースライン
- 適用対象のパッチをフィルタするための条件(OS、製品、分類、重要度など)
- AWS が事前定義しているパッチベースラインのほか、自ら定義したパッチベースラインを利用できる(カスタムベースライン)
パッチポリシー
- スキャン対象とパッチベースラインを紐づけるための設定
- AWS Systems Manager の Quick Setup を使用してセットアップし、Patch Manager を動作させるための一連の設定(State Manager)が自動設定される
コンプライアンスレポート
- パッチ適用状態を示すレポート
- パッチベースラインで定義した適用対象のうち、未インストールのパッチについては、コンプライアンスレポートから詳細(Windowsの場合はKB番号、Linuxの場合はパッケージ名)を確認することができます
準拠・非準拠
- マネージドノードのパッチ適用状況を表します
- パッチベースラインで定義した状態に適合していれば「準拠」、逸脱していれば「非準拠」となる
検証
それでは、実際に構築しながら、AWS Systems Manager Patch Manager でのパッチスキャンを行ってみます!

- EC2 (Windows Server 2022) を構築し AWS Systems Manager Patch Manager でパッチスキャンを行います
- EC2 は Private Subnet に配置することが多く、その場合は SSM VPC Endpoint の構築が必要となります
1. 準備
1-1. EC2の構築
パッチスキャン対象となる EC2 を構築・起動します。
ポイントは以下の通りです。
- インスタンスプロファイル
AmazonSSMManagedInstanceCoreを許可ポリシーに設定した IAM ロールを指定してください- マネージドノードとして扱うために必要となります
- AMI
- Amazon が提供する AMI には、既に SSM Agent がインストールされています
- SSM Agent はマネージドノードとして扱うために必要となり、 Amazon が提供する AMI を利用することで SSM Agent のインストールの手間を省くことができます
1-2. マネージドノードの確認
AWS マネジメントコンソールより、AWS Systems Manager > フリートマネージャー > マネージドノード を開きます。 さきほど構築した EC2 インスタンスが表示されていれば、マネージドノードとして認識されており、EC2側の準備は完了です!

2. パッチスキャン
AWS Systems Manager Patch Manager を設定します。
2-1. パッチベースラインの作成
システムごとに異なるルールに従いパッチスキャンを行うことを想定し、独自のルールとしてカスタムベースラインを作成します。
AWSマネジメントコンソールより、AWS Systems Manager > パッチマネージャー を開きます。 「パッチベースライン」タブ、「パッチベースラインを作成する」ボタンの順にクリックします。

パッチスキャンの要件に沿って、設定を行います。 今回は以下の通り設定しました。
- パッチベースラインの詳細
| パラメーター名 | 今回の設定値 | 説明 |
|---|---|---|
| 名前 | win2022-pbl | 名前を設定します |
| 説明 - オプション | なし | |
| オペレーティングシステム | Windows | スキャン対象のEC2のOS種類を設定します |
| 利用可能なセキュリティ更新のコンプライアンスステータス | 非準拠 | セキュリティに関するパッチが未適用の場合に非準拠として検出する機能です |
| デフォルトのパッチベースライン | チェック無し | 本ルールを「オペレーティングシステム」パラメーターで設定したOSのデフォルトのルールとして設定する機能です |
- オペレーティングシステムの承認ルール
| パラメーター名 | 今回の設定値 | 説明 |
|---|---|---|
| 製品 | Windows Server 2022 | スキャン対象のEC2に合わせて設定してください |
| 分類 | Critical Updates, Security Updates | 未インストールの場合に非準拠として表示する条件に従い設定してください |
| 重要度 | Critical, Important | 同上 |
| 自動承認 | 0日 | 今回はパッチスキャンのみに利用するため0日を設定します |
| コンプライアンスレポート | 未指定 | 未インストールの場合にコンプライアンスレポート上の重要度をどのように表示するか設定します |
各パラメータを設定後「カスタムベースラインの作成」ボタンをクリックします
2-2. パッチポリシーの作成
AWS マネジメントコンソールより AWS Systems Manager > パッチマネージャー を開きます。 「パッチポリシーを作成する」ボタンの順にクリックします。

パッチスキャンのスケジュール等の要件に従い設定します。
主要なパラメータを以下に記載します。
- パッチポリシー名
| パラメーター名 | 今回の設定値 | 説明 |
|---|---|---|
| パッチポリシー名 | win2022-ppl |
- スキャンとインストール
| パラメーター名 | 今回の設定値 | 説明 |
|---|---|---|
| パッチオペレーション | スキャン | 「スキャン」または「スキャンおよびインストール」を選択します |
| スキャンのスケジュール | カスタムスキャンスケジュール | 「推奨される規定値を使用」または「カスタムスキャンスケジュール」を選択します |
| スキャンの頻度 | 日単位 | 「毎日hh:mm」または「CRON式」の形式でスケジュールを入力します。UTCとなりますのでご注意してください。 |
- パッチベースライン
| パラメーター名 | 今回の設定値 | 説明 |
|---|---|---|
| パッチベースライン | カスタムパッチベースライン | |
| ベースラインを選択 | Windows Server :作成したパッチベースラインを指定 | 作成したパッチベースラインを選択します |
- ターゲット
| パラメーター名 | 今回の設定値 | 説明 |
|---|---|---|
| リージョン | 現在のリージョン | 複数リージョンにデプロイする場合は対象リージョンを選択します |
| ターゲットノード | ノードタグを指定 | タグやリソースグループでターゲットを指定でき、スケーリングなどの要件がある場合にも対応できます |
その他、複数のインスタンスでサービス提供している場合は、「レートの制御」にてパッチスキャンの同時実行割合を定義することで、パッチスキャンによるシステム全体の負荷を低減することができます。
各パラメータを設定後「作成」ボタンをクリックします。
Patch Manager Quick Setup により自動セットアップが行われますので、完了まで待ちます。 (Systems Manager ステートマネージャーに複数の関連付けが作成され、Run Command が実行されるため時間を要します)
作成したパッチポリシーは AWS Systems Manager > Quick Setup(高速セットアップ)から確認できます。
2-3. パッチスキャンの実行
指定した時間になると、パッチスキャンが自動実行されます。
3. パッチスキャン結果の確認
コンプライアンスレポートを確認します。
AWSマネジメントコンソールより AWS Systems Manager > パッチマネージャー を開きます。 「コンプライアンスレポート」タブをクリックします。

件数をクリックすると、非準拠のパッチに関する詳細情報を確認できます。 非準拠と判定されたものは赤色で状態が表示されます。

4. パッチ適用
パッチ適用の方法には様々ありますが、今回は Cloud Automator でパッチを適用します。 Cloud Automator でジョブを作成し、バックアップ取得後、パッチ適用を行いました。
詳細は、以下の弊社ブログをご覧ください。
【Cloud Automator】ジョブワークフローを用いて、EC2インスタンス(Linux)へのパッチ適用を自動化する - サーバーワークスエンジニアブログ
5. パッチスキャン結果の再確認
パッチスキャン完了後、再度、AWSマネジメントコンソールより AWS Systems Manager > パッチマネージャー を開きます。 「コンプライアンスレポート」タブをクリックし、件数を確認します。 準拠状態と判断され、件数が0件となっています。

非準拠であったパッチに関しても、準拠として状態が緑色で表示されています。

さいごに
今回は、AWS Systems Manager Patch Manager の基礎編として、以下の点を検証しました。
- パッチスキャン設定方法
- コンプライアンスレポート表示方法(パッチインストール前後)
AWS Systems Manager Patch Manager は AWS Systems Manager の様々な機能と組み合わせて動作するため、理解が難しい側面もありますが、パッチ適用の効率化を図れる重要なツールです。 パッチ適用を効率化したい方は、ぜひ利用を検討してみてください!