AWSパッチマネージャーで Windows Server のパッチ適用

## この記事は

AWS のパッチマネージャを勉強した過程の記録

## パッチマネージャとは

AWS の機能の１つで、名前から分かる通り
EC2 などサーバに対してパッチをいい感じに適用し、管理しやすくするモノです

### パッチポリシー（まだまだ新人）

[パッチマネージャの公式](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/patch-manager.html)で早々に**重要**と書かれている
移り変わりが激しいので、キャプっておこう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/ae3dc55a-e015-4f57-98b6-e441b932429e.png)

パッチポリシーは2022年12月末リリースとのこと

> AWS では、パッチポリシーを使用して組織と AWS アカウントのパッチ適用を設定することが推奨されています。パッチポリシーは、2022 年 12 月に Patch Manager に導入されました。
> [Quick Setup でのパッチポリシー設定](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/patch-manager-policies.html)

- 2023年2月
  - [AWS Systems Managerのパッチ設定はパッチポリシーの登場でどう変わった?](https://dev.classmethod.jp/articles/aws-patch-management-with-patch-policy-made-easy/)
- 2023年6月
  - [Today, we are excited to announce the release of Quick Setup Patch Policies](https://aws.amazon.com/jp/blogs/mt/centrally-deploy-patching-operations-across-your-aws-organization-using-systems-manager-quick-setup/) ←やっと俺たちはパッチポリシークイックセットアップのことを発表できて嬉しいぜ！っていう記事です

パッチポリシーを使っていったほうがよさそうな雰囲気
Google検索では、2022年より前の記事もバンバンヒットするから、選別が必要

#### CloudFormation template

こちらが IaC Template のサンプル: [aws-management-and-governance-samples
](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSSystemsManager/Quick-Setup-API/patch-policy-examples/patch-policy-cfn-template.yaml)
そしてこちらが、リファレンス: [AWS Systems Manager Quick Setup resource type reference](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/AWS_SSMQuickSetup.html)

## Windows Server 2019 の初期状態

EC2 で Windows Server 2019 をたてて、実際のアップデート状況を確認する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/50eb4abc-9201-0623-e17e-835464ba339c.png)

2025年1月15日の日付で、KB番号が2つ適用されている（2025年2月10日現在）
)

[Microsoft®Update カタログ](https://www.catalog.update.microsoft.com/)

- 2025-01 Cumulative Update for Windows Server 2019 for x64-based Systems (KB5050008)
- 2025-01 Cumulative Update for .NET Framework 3.5 and 4.8 for Windows Server 2019 for x64 (KB5049615)

### 2月も下旬になった頃

[2025年2月度のセキュリティアップデート](https://www.catalog.update.microsoft.com/Search.aspx?q=KB5052000)がやってきましたよ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/219077b1-79e2-455f-8c99-f57e12c7fedc.png)

2月26日に起動したEC2インスタンスでは、もちろん最新パッチがあたっている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/1d8ec239-5722-423f-803e-34238442741a.png)

## パッチポリシーを作成する

AWSのGUIがイマイチ分かりにくいのだけれども
パッチポリシーは Quick Setup のページで一覧を見ることができる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/fdb4e5fb-fae5-4aee-8a16-e2bd794a5f28.png)

### パッチ適用状況をスキャンする

パッチポリシーを作ったら、パッチマネージャーに移動する
「今すぐパッチ適用」ボタンを押す
スキャンするだけの目的であろうが、このボタンを押さざるを得ないのが気持ち悪い

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/05e48191-a946-4b6f-84c2-7cdb7af36cbe.png)

末尾の`cb006r`は、パッチポリシーのリソースコードと対になっている

わざと最新のパッチをアンインストールしたEC2を用意したので
今回のスキャン結果では、コンプライアンス非準拠、パッチが欠落しているノードが１になっている

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/cc704a9f-9ff7-4454-b0d6-6847d4d7120b.png)

### パッチを適用する（最新パッチのインストール）

先ほどはスキャンだけだったけど、スキャンとインストールをしてみる
するとEC2には 3/8 の日付で[2025年2月のパッチ](https://support.microsoft.com/ja-jp/topic/2025-%E5%B9%B4-2-%E6%9C%88-11-%E6%97%A5-kb5052000-os-%E3%83%93%E3%83%AB%E3%83%89-17763-6893-2197b079-9a41-4e07-95c5-9ebce5fe20ec)のパッチが適用されたことがわかる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/52a8312a-6fd7-4d40-8227-5d6251b588e8.png)

ダッシュボードの結果も更新されており
パッチが欠落しているノードが０になった
UTC時刻で3/8にインストールが成功していることもわかる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272511/0dc2e7cb-9898-433a-a977-a7312ecd0811.png)

## おわりに

今回は１つのEC2に対して試しただけなので
今後は複数のEC2を立てて、パッチを適用する／しないをコントロールしてみようと思う

## 参考

### Patch Manager 関連 日付降順

- [【AWS Patch Manager】OSパッチ適用を自動化しよう](https://devlog.arksystems.co.jp/2023/04/13/18013/) - 2023年4月13日
  - ※パッチポリシーに関する記載は無い
- [AWS Systems Manager のパッチマネージャーを利用した OS パッケージの更新 (Amazon Linux 2 編)](https://sid-fm.com/blog/archive/entry/20211006.html) - 2021年10月6日
- [【脆弱性対応】AWS Systems Manager Patch Manager を使ったパッチ戦略の例](https://dev.classmethod.jp/articles/ssm-patch-manager-patterns/) - 2021.04.07

### AWS全般について

- [VPCエンドポイント経由でのSSMを用いたEC2への接続を図で整理する](https://qiita.com/takeITeasy7/items/34ac261658ac62b85c53)