こんにちは。SCSKの坂木です。
さっそくですが、某人気アニメを捩ったタイトルにつられてこのページをクリックしてくれた方へ、本ブログは一切地球の運動を感じられないバチバチの技術ブログとなっております。
ただ、せっかく開いたことですし、このまま最後までお付き合いいただけると嬉しいです。
元々、Patch Manager目的で開いた方は目的どおりの記事となっておりますので、ご安心ください!
本ブログでは、AWS System ManagerのツールであるPatch Managerを用いたEC2インスタンスのスキャン及びパッチ適用の方法について説明します。
Patch Managerとは
AWS Systems Manager(SSM) の Patch Manager は、Amazon EC2 インスタンスやオンプレミスサーバーを含む、SSMで管理されるインスタンスのパッチ適用を自動化するサービスです。OS の脆弱性を修正するためのセキュリティパッチ適用や、その他のソフトウェア更新を効率的に実施できます。
事前設定について
本記事では、以下の環境にてPatch Managerでスキャンおよびパッチ適用するための基本的な設定を行います。
Patch Managerの実施にあたり、いくつか押さえておきたい設定がありますので、確認していきましょう!
パッチ適用するインスタンスのOS
Patch Managerでは利用できるOSに制限がありますので、対象のインスタンスがサポートされているか、こちらよりご確認ください。
SSM Agent のバージョン
対象インスタンスのSSM Agentのバージョンが2.0.834.0以降(2025/4時点)であることを確認します。
System Manager/フリートマネージャーより対象のインスタンスを選択することで、バージョンを確認できます。本環境では3.3.1611.0でした。
パッチソースへの接続
インスタンスがインターネットへ接続して、対象OSのレポジトリが保存されているサーバへアクセスできる必要があります。
セキュリティグループやネットワークACLの設定を確認し、インターネットへのアクセスが問題ないかご確認ください。
穴あけをしていない状態でPatch Managerを実行すると、XXXX.comへのアクセスができませんという旨のエラーが返されます。その情報から、穴あけが必要な最小限のIPを特定できるため、全開放ではなく最小限の開放のみで済みます。また、ポートはアウトバウンド通信で80か443、インバウンド通信でエフェメラルポートを開ける必要があります。
ちなみにですが、AWS Network ManagerのReachable Analyzerを用いることで、対象インスタンスからIGWや外部サーバへの通信が許可されているか確認できます。パッチソースへの接続に不安のある方は利用してみてください。
S3への接続
パッチ適用オペレーションの実施にあたっては、対象インスタンスからS3への接続を確保する必要があります。
前提条件より、S3へのアクセスにはエンドポイントを用いる必要がありそうなので、エンドポイントでの接続を設定します。
エンドポイントにはインタフェース型とゲートウェイ型がありますが、どちらのタイプでも問題はありません。本記事では無料で利用できるゲートウェイ型のインタフェースを利用します。
インスタンスのステータス
Patch Managerは起動しているインスタンスに対してのみ実行できるため、スキャンまたはパッチ適用時に対象のインスタンスの状態が、「実行中」であることを確認してください。
定期実行時に、EC2の状態が停止中になっており、スキャンやパッチ適用が行われない事象。あると思います。
手動実行
AWS System manager/Patch Manager/今すぐパッチ適用から、手動実行できます。
本記事では、インストールはせずにスキャンのみ実施したいと思います。
ターゲットの選択から、対象のインスタンスを選択します。今回はインスタンス名でターゲットを選択しましたが、タグやリソースグループ単位で選択することもできます。
実行結果はAWS System manager/Patch Manager/コンプライアンスレポートより確認できます。今回の結果ではセキュリティの非準拠数は0でコンプライアンスに準拠していましたが、非準拠の場合は「欠如している数」から欠如しているパッケージを確認することができます。
「スキャンとインストール」を選択した場合、欠如しているパッケージは自動的にインストールされますが、スキャンのみの場合はdnfコマンド等を使って手動でインストールする必要があります。
ちなみにですが、非準拠となった場合は以下の画像のように、非準拠数と欠如したパッケージが表示されます。(Ubuntuで試してみました)
定期実行
AWS System manager/Patch Manager/パッチポリシーを作成から、定期的な実行スケジュールを作成できます。
スキャンとインストール/カスタムスケジュールより、実行時刻を設定できます。
実行頻度は、日単位(毎日hh:mmに実行)またはcron形式で指定することができます。
パッチベースラインとは、承認されたパッチの集合を定義するものです。どのパッチをインスタンスに適用するかを制御するために使用されます。今回はAWS推奨の事前定義されたパッチベースラインを利用します。パッチベースについてはこちらをご確認ください。
さいごに
本記事では、AWS初心者に向けてPatch Managerの設定方法を説明しました。
Patch Managerは、大規模な環境で効率的かつ安全にパッチを適用するための強力なツールです。手動操作の負担を軽減し、コンプライアンスを維持するのに役立ちますので、是非使ってみてください。
他の記事も読んでもらえると、著者が小躍りして喜びます。
