- 公開日
- 最終更新日
【Patch Manager】Patch Managerの構築方法と注意点
この記事を共有する
目次
はじめに
皆さんこんにちは!パーソル&サーバーワークスの小泉です。
今回はWindows Serverに対しての AWS Systems Manager Patch Manager (以下Patch Manager) の構築方法と検証内容及び注意点をまとめました。
Patch Manager は、マネージドノードに対してセキュリティ関連の更新プログラムやその他の種類の更新プログラムを自動的に検出及び適用するためのサービスです。
構成図
今回、Patch Managerでパッチの検証を行う際の構成図を以下に記載します。

Private Subnet にある EC2(Windows Server) で Patch Manager を利用する前提条件
Private Subnet 内に配置された EC2 インスタンス(Windows Server)で Patch Manager を利用するためには、次の前提条件を満たしている必要があります。
- EC2 インスタンスに SSM Agent が導入されていること
- インスタンスに関連付けられた IAM ロール が、SSM及びS3バケット※へのアクセス権限を持っていること
- VPC 内から SSM、S3 及び Windows Update Catalogに到達できる通信経路(NAT Gateway ,VPC エンドポイント など)が用意されていること
※パッチベースラインが格納されているS3バケット
VPC エンドポイントを利用する場合に必要な 4 種類
- com.amazonaws.
.ssm - com.amazonaws.
.ec2messages - com.amazonaws.
.ssmmessages - com.amazonaws.
.s3
※以下の構築方法ではVPC及びEC2などの構築を割愛します。
構築方法
パッチベースラインの作成
パッチベースラインとは
パッチベースラインとは、マネージドノードにどのパッチを適用するかを定義するルールセットです。パッチベースラインでは、以下の設定が可能です:
- 分類(Critical Updates,Security Updatesなど)
- 重要度
- パッチがリリースされてから自動承認されるまでの待機日数の設定
- 特定のパッチを明示的に承認または拒否する
Patch Managerは、各オペレーティングシステム向けに事前定義されたパッチベースラインを提供していますが、組織の要件に合わせてカスタムパッチベースラインを作成することもできます。
Windows Server向けの事前定義されたパッチベースラインには以下の3種類があります:
- AWS-DefaultPatchBaseline
- AWS-WindowsPredefinedPatchBaseline-OS
- AWS-WindowsPredefinedPatchBaseline-OS-Applications
カスタムパッチベースラインの作成手順
① AWS Management Consoleにサインインし、Systems Managerコンソールを開きます
② ナビゲーションペインで「Patch Manager」を選択します
③ 「パッチベースライン」タブを選択し、「パッチベースラインを作成する」をクリックします

④ 以下の通り、設定を行います


※赤枠の設定について後程解説します。
⑤ 「パッチベースラインの作成」をクリックして保存します

パッチポリシーの作成
パッチポリシーとは
パッチポリシーは、AWS Systems Manager Quick Setupを使用して設定でき、パッチ適用操作をより広範囲かつ一元的に制御できます。
パッチポリシーを使用すると、単一の構成で組織内のすべてのアカウントとリージョンのマネージドノードに対するパッチ適用を定義できます。
パッチポリシーの主な特徴は以下の通りです:
- 単一のセットアップ: すべてのパッチ適用操作を1つのウィザードで設定可能
- マルチアカウント/マルチリージョンのサポート: 組織内のすべてのAWSアカウントとリージョンに適用可能
- 簡素化されたパッチベースライン選択: 各OSタイプに使用するパッチベースラインを一覧から選択可能
パッチポリシーの作成手順
① AWS Management Consoleにサインインし、Systems Managerコンソールを開きます
② ナビゲーションペインで「Quick Setup」を選択します
③ 「ライブラリ」をクリックし、「Patch Manager Powered by Systems Manager」から作成をクリックします

④ 以下の通り、設定を行います


※赤枠では先ほど作成したパッチベースラインを設定します。



⑤ 「作成」をクリックして保存します

⑥デプロイが成功していたら完了です

構築されるリソースについて
パッチポリシーを作成するとCloudFormationが実行され、以下のリソースが作成されます。
- S3バケット
- アクセスログ用のS3バケット(ログ出力の☑ボックスを外しても作成されます)
- パッチベースラインが格納されるS3バケット
- State Manager
- Lambda
- IAM ロール
スキャンの実施・結果確認
EC2(Windows Server 2022)に対して、上記で作成した内容でパッチのスキャンが実施されます。※
- 使用したAMI:ami-0153afb1558635672
- EC2のタグ key:[Name] value:[Patch]
※パッチポリシーをcron(0/30 * * * ? *)で設定しているため、30分おきにスキャンが実行されます
コンプライアンスレポートの確認
スキャン完了後、実行結果(コンプライアンスレポート)を確認します。


スキャンの結果以下のことがわかりました。
コンプラアンスの状況:非準拠
KB5063880:Missing
KB5063522:AvailableSecurityUpdate
Security Hub CSPMの確認
Security Hub CSPMには以下のイベントが検出されます。


赤枠のイベントの重大度とパッチベースラインで設定した重大度が一致します。
※Security Hub CSPMに検出結果が表示されない場合は、Patch Managerの設定からエクスポート設定が有効になっていることを確認してください。

検証内容
検証のゴール
コンプライアンスの状況を準拠にすることを本検証のゴールにします。
パッチの状態確認
まず検出されたパッチの状態「Missing」「AvailableSecurityUpdate」を調べます。
Missing:パッチベースラインで承認されているが、インストールされていないパッチ AvailableSecurityUpdate※:パッチベースラインで指定されたインストール基準を満たしていないため、使用可能ではあるものの承認されていないセキュリティパッチ
※AvailableSecurityUpdateは作成したパッチベースラインで今回は「非準拠」としましたが、「準拠」にすることが可能です。

このことから、以下の設定をすると準拠になることがわかります。
| KB番号 | ステータス | 準拠にする方法 |
|---|---|---|
| KB5063880 | Missing |
・パッチを適用する ・例外リストの拒否リストに設定する |
| KB5063522 | AvailableSecurityUpdate |
・パッチベースラインで準拠に設定する ・パッチを適用する ・例外リストの拒否リストに設定する※ |
※後述する注意点でも記載していますが、AvailableSecurityUpdateのパッチに関しては例外リストの拒否リストに設定しても準拠になりませんでした。
検証手順
では以下の対応方針で、実際に準拠になるか検証していきます。
| KB番号 | ステータス | 対応方針 |
|---|---|---|
| KB5063880 | Missing | ・例外リストの拒否リストに設定する |
| KB5063522 | AvailableSecurityUpdate | ・パッチベースラインで準拠に設定する |
例外リストの拒否リストにKB5063880を設定します。

パッチベースラインを準拠に設定します。

では、パッチのScan及び適用を行います。

無事に準拠になることが確認できました。

注意点
コンプライアンスレポートの注意点
以下公式ドキュメントにある通り、同じインスタンスに対して複数種類のスキャンを設定すると、コンプライアンスレポートは上書きされます。
コンプライアンスレポートの上書きについて
そのため、同一インスタンスに対して複数のパッチスキャン方法を使用している場合、最後に実行されたスキャンの結果がコンプライアンスデータとして表示されます。
パッチスキャンの注意点
検証の際に、AvailableSecurityUpdateのパッチを例外リストに入れた後に、スキャンを実施した結果、再度非準拠で検出されたのでPatch Managerを構築する際には入念な検証が必要と感じました。
| KB番号 | ステータス | 対応方針 |
|---|---|---|
| KB5063880 | Missing | ・例外リストの拒否リストに設定する |
| KB5063522 | AvailableSecurityUpdate | ・例外リストの拒否リストに設定する |
まとめ
Patch Managerを実際に構築することで以下のことが学べました!
- パッチポリシーの設計: スキャンとインストールのスケジュールを適切に設定し、業務への影響を最小限に抑える必要があること
- 複数のスキャン方法の回避: コンプライアンスデータの上書きを防ぐため、1つのスキャン方法のみを使用すること
- リソース管理の理解: パッチポリシーを作成すると、S3バケットやState Manager関連付けなど複数のリソースが自動的に作成されること
この記事は私が書きました
小泉 和貴
記事一覧全国を旅行することを目標に、仕事を頑張っています。