キーワードで検索

今日を知り、明日を変えるシステム運用メディア

【第12回】AWS Systems Manager攻略マニュアル「PatchManager実践編 コンプライアンスレポート、AWS Security Hub 連携」

【第12回】AWS Systems Manager攻略マニュアル「PatchManager実践編 コンプライアンスレポート、AWS Security Hub 連携」

Ops Todayでは「面倒なAWSシステム運用を効率化しよう!」をテーマに、AWSリソースを含むシステムの運用をする際に便利なサービス「AWS Systems Manager」に関する記事を複数回にわたってご紹介しています。(記事一覧はこちら

今回は、 Patch Manager の便利な機能として、「コンプライアンスレポート」と「AWS Security Hub 連携」について解説します。

コンプライアンスレポートの特徴

Patch Managerには、各マネージドノードにおけるパッチコンプライアンスの準拠状況をCSV形式のレポートとして出力する機能が用意されています。コンプライアンスレポートには、次の特徴があります。

  • CSV形式でパッチコンプライアンス準拠状況を出力できる
  • レポートをS3バケットに出力できる
  • オンデマンドでのレポート生成、スケジュールでのレポート自動生成ができる

コンプライアンスレポートの種類

コンプライアンスレポートは、次の2種類に分けることができます。

  • 全てのノードを対象とするレポート
  • 単一ノードを対象とするレポート

全てのノードを対象とするレポート

全てのノードを対象とするレポートでは、全マネージドノードについて、次の情報を出力します。

レポートに出力される項目名称概要
Indexインスタンス ID
Instance nameインスタンス名
Instance IPインスタンスのプライベートIPアドレス
Platform nameプラットフォーム名
Platform versionプラットフォームのバージョン
SSM Agent versionSSM Agent のバージョン
Patch baselineパッチベースライン
Patch groupパッチグループ
Compliance statusコンプライアンス状況
Compliance severityコンプライアンスの重要度
Noncompliant Critical severity patch count非準拠のパッチ数 (重大)
Noncompliant High severity patch count非準拠のパッチ数 (高)
Noncompliant Medium severity patch count非準拠のパッチ数 (中)
Noncompliant Low severity patch count非準拠のパッチ数 (低)
Noncompliant Informational severity patch
count
非準拠のパッチ数 (情報)
Noncompliant Unspecified severity patch
count
非準拠のパッチ数 (指定なし)

単一ノードを対象とするレポート

単一ノードを対象とするレポートにおいても、選択した単一ノードについて、全てのノードのレポートと同じ情報を出力します。

それに加えて、詳細情報として次の情報を出力します。

レポートに出力される項目名称概要
Indexインデックス(項番)
Instance IDインスタンス ID
Instance nameインスタンス名
Patch nameパッチ名
KB ID/Patch IDKB ID(Windows)/パッチ ID
Patch stateパッチ状態
Last report time最終レポート時刻
Compliance levelコンプライアンスレベル
Patch severityパッチの重大度
Patch classificationパッチの分類
CVE ID共通脆弱性識別子
Patch baselineパッチベースライン
Logs URLログ URL
Instance IPインスタンスのプライベートIPアドレス
Platform nameプラットフォーム名
Platform versionプラットフォームバージョン

全てのノードのレポート出力設定手順

Patch Managerコンソールの「コンプライアンスレポート」画面で、「S3へエクスポート」をクリックします。
※この手順では、全てのノードのエクスポートしかできないため、ラジオボタンでノードを選択する必要はありません。

「S3へエクスポート」画面が表示されるので、各項目を設定します。

「パッチレポートの詳細」セクションでは、「レポート名」と「レポートの頻度」について設定します。
「レポート名」は、csvファイルのファイル名になることを想定して指定します。
「レポート頻度」は、「オンデマンド」と「スケジュールどおり」のいずれかを選択します。

「オンデマンド」は1回限りの出力をする場合に選択し、「スケジュールどおり」はスケジュールによる定期出力を行う場合に選択します。
「スケジュールどおり」を選択すると、「スケジュールタイプ」、「レポート頻度」の設定項目が表示されます。

スケジュールタイプで「rate式」を選択すると、次の間隔でレポートを定期出力する設定が可能です(値は整数のみで指定します)。

  • ~分毎(minutes)
  • ~時間毎(hours)
  • ~日毎(days)

「cron式」を選択すると、メンテナンスウィンドウのCRON式でスケジュール指定が可能です。
メンテナンスウィンドウのCRON式については前回記事で解説しているので、そちらを参考にしてください。

「ターゲットS3バケット」セクションでは、レポートの保存先とする既存のS3バケットを指定します。
この画面からバケットを作成したりカスタマイズすることはできないため、独自の名前で出力先S3バケットを用意したい場合は、あらかじめS3サービス側で作成しておく必要があります。

「SNSトピック」セクションでは、レポート生成時にAmazon SNSサービスによる通知を行うことができます。
Amazon SNSによる通知を行う場合は、プルダウンリストより利用するSNSトピックのARNを選択します。通知をしない場合は、「No SNS topic」を選択します(既定値)。
S3バケットと同様、SNSトピックもこの画面からは作成できないため、必要に応じてAmazon SNS側で準備しておきましょう。

設定項目は以上です。
一通り設定を終えたら、画面右下の「送信」をクリックします。

クリック直後、レポートのエクスポート処理が開始し、「送信」ボタンのすぐ上に次のメッセージが表示されます。

※「スケジュール」を選択した場合、エクスポート処理に失敗して次のメッセージが表示されることがあります(2025年2月時点)。

これは、「レポート名」の文字数制限を超過しているため、エクスポート処理開始時のパラメータチェックに引っかかっていることを意味しています。

「レポート名」に指定可能な文字数は最大50字ですが、「スケジュール」を選択した場合のみ、指定したレポート名の頭に AWS-SystemsManager-PatchManager-PatchReport という文字列が付与されるため、文字数超過に至っている可能性があります。

この付与される文字列(43字)を含め、64字以内に収まるように「レポート名」を指定し直して、再度エクスポート処理を試みてください。エクスポート処理が完了すると、「すべてのS3エクスポートを表示」画面が表示されます。

オンデマンドでの生成を選択した場合は、次の画像のように「Export history」タブの画面が表示され、レポートの出力履歴が記録されていることを確認できます。

スケジュールによる生成を選択した場合は、次の画像のように「Report schedule rules」タブの画面が表示され、作成したレポートスケジュールが表示されます。

※スケジュール生成の場合も、オンデマンドで確認した出力履歴が「Export history」に記録されます。

出力先として指定したS3バケットについて、Amazon S3のコンソールで確認するとCSVファイルが生成されていることを確認できます。

レポートをスケジュールで出力するように設定した場合は、同一ファイルへの上書きとなります。最初にS3バケットに出力されたCSVファイルの内容が、スケジュールに沿って更新されていきます。

単一ノードのレポート出力設定手順

単一ノードのレポート出力は、パッチコンプライアンス状況が非準拠のノードに対してのみ実施できます。

Patch Managerコンソールの「コンプライアンスレポート」画面で、ノードの一覧より対象ノードにおける「重要な非準拠の数」列、「セキュリティの非準拠の数」列、「その他の非準拠の数」列のうち、カウントが上がっているいずれかのリンクをクリックします。

対象ノードの「パッチの概要」画面が開くので、「S3へエクスポート」をクリックします。
※パッチのラジオボタンの選択に関わらず、準拠あるいは非準拠のパッチ情報はすべてレポートに出力されるので、ラジオボタンの操作は不要です。

前章で説明した、「全てのノードのレポート出力設定手順」の「S3へエクスポート」画面が表示されます。内容も全く同じですので、設定項目の詳細は前章の内容をご参照ください。

一通り設定を入力し終えたら、「送信」をクリックします。
「送信」をクリックした後の「オンデマンド」、「スケジュール」の選択におけるそれぞれの挙動についても、「全てのノードのレポート出力設定手順」と差異はありません。

レポートスケジュールルールの削除手順

コンプライアンスレポートの出力スケジュールを無効化するには、レポートスケジュールルールを削除します。

Patch Managerコンソールの「コンプライアンスレポート」画面で、「すべてのS3エクスポートを表示」をクリックします。

「Report schedule rules」タブをクリックし、「レポートスケジュールルール」画面を表示します。ルールの一覧が表示されるので、削除したいルールのラジオボタンをクリックし、画面右上の「削除」をクリックします。
※「削除」をクリックした後、削除を実行してもよいか再確認するオペレーションは無く、ただちにルールの削除が行われるので注意してください。

ただちにルールの削除が完了し、次の画像のように選択したルールがリストから削除されます。

※S3バケットに出力されたレポートは消えないので、レポートファイルも削除する場合はAmazon S3のコンソールより削除操作を行ってください。

※「Report schedule rules」画面からレポートスケジュールルールの編集も実行できますが、編集はAmazon EventBridgeサービスから行うことになります(「編集」をクリックするとAmazon EventBridgeコンソール画面が起動し、そこで編集操作を行います)。
Systems Managerと直接関連の無い内容であるうえ手順も長いため、今回は詳細な操作説明を割愛します。

Patch Managerは、AWS Security Hubと連携可能

Patch Managerは、AWS Security Hubと連携することが可能です。WS Security Hubは、「AWS環境全体のセキュリティチェック自動化」と「セキュリティに関する通知の集約」を実現できるAWSのサービスです。Patch Managerとの連携は、後者の機能に関連します。

簡単に説明すると、AWS Security Hubは、AWS CloudTrail や AWS Config、Amazon CloudWatchといった様々なサービスに報告されるセキュリティ関連のアラートを集約し、それらのセキュリティアラートを統合的に可視化できるコンソールを提供してくれるのですが、そこにPatch Managerからの報告も集約させることができます。

AWS Security Hubとの連携手順

連携設定は、Patch Managerのコンソールから行います。

Patch Managerのページへ移動し、「設定」タブをクリックします。

「Security Hub を開く」をクリックします。

「Security Hub の有効化」画面が表示されます。

上から順に表示内容を確認してみます。

AWS Config の有効化

AWS Security Hubを有効化する前に、AWS Configのリソース記録機能を有効化する必要がある旨が説明されています。これは、AWS Security HubがAWS Configで定義したルールを用いて、AWS環境のセキュリティチェックおよび結果を得ているためです。

ただ、AWS Configを有効化する際は、コスト(料金)に気を付ける必要があります。リソース記録は、様々なステータス変更やパラメータ変更をトリガーとして記録が行われるため、適当に設定してしまうとコストが膨大になってしまう恐れがあるためです。

そこで、今回はPatch Managerが関連する最小限の範囲に限定して、AWS Configを有効化します。

AWS Configの設定詳細は投稿のメインテーマと関係ないので割愛しますが、以下のようにPatch Managerに関するリソースのみを対象としてセットアップしてみました。

セットアップ項目設定値
記録するリソースタイプAWS SSM PatchCompliance
適用するAWS Config ルールec2-managedinstance-patch-compliance-status-check

ご覧の通り、Patch Managerに関するルールは1つしかありません。このルールは、マネージドノードEC2インスタンスのパッチコンプライアンス状況が準拠しているかをチェックします。つまり、AWS Security Hubに連携されるのは、ノードのパッチコンプライアンス状況のみであるということです。

既に AWS Configを利用している環境の場合は、上記のリソースタイプとルールについてAWS Configの設定を確認してみてください。

AWS Config 初回セットアップ内容確認画面のキャプチャ

セキュリティ基準

AWS Security Hubで行うAWS環境のセキュリティチェックに対して、どの基準を用いるか選択します。
デフォルトで「AWS 基礎セキュリティのベストプラクティス v1.0.0」と「CIS AWS Foundations Benchmark v1.2.0」を有効化するチェックボックスがオンになっています。

この設定は後で変更することも可能なため、今回はデフォルトのまま先に進むこととします。

ちなみに、各セキュリティ基準の概要は次の通りです。

セキュリティ基準の名称概要
AWS基礎セキュリティのベストプラクティスAWSおよび業界の専門家によって開発された基準
AWS リソースタグ付け標準AWS リソースに適用するタグの追跡に役立つ
CIS AWS Foundations BenchmarkAWSリソースの設定ガイドライン
NIST Special Publication 800-53 Revision 5アメリカの連邦機関または連邦情報システムと
連携する際に適用する基準
PCI DSSカード所有者データを保存、処理、
または送信する組織向けの基準

AWS 統合

これは、AWS Security Hubを有効化することで、AWS Security Hubが各AWSサービスから結果を受け取るためのアクセス制御設定変更が自動的に行われる旨を説明しています。
Patch Managerに限った話ではないので、今回は詳細を説明しません。

したがって、AWS Configの設定とセキュリティ基準の選択を終えたら、AWS Security Hubの有効化を行います。
画面右下にある「Security Hub の有効化」をクリックして下さい。

クリック直後、以下のようにAWS Security Hubの「概要」画面が表示されれば完了です。

AWS Security Hubとの連携が有効化されている場合、Patch Managerの「設定」画面には、次のように連携「有効」の文字が表示されます。

AWS Security Hubでできること

AWS Security Hub側で連携結果を確認してみましょう。

AWS Security Hubサービスへのアクセスは、AWSマネジメントコンソール画面上部の検索ウィンドウに “Security” などと入力して表示される検索候補のリンクより移動できます。

AWS Security Hubのページへ移動すると、「概要」画面が表示されます。
画面左ペインにある「検出結果」をクリックすることで、詳細を確認することができます。

「検出結果」画面では、Patch Managerだけでなく、Secuirty Hubに集約された全てのセキュリティアラートが表示されます。
その数はかなり多くなりますが、フィルターをうまく活用することで、確認したいアラートを探し易くなります。

フィルターの掛け方に決まりはありませんが、Patch Managerに関するセキュリティアラートに絞り込む場合は、「製品名」フィルターを使うと便利だと思います。

「フィルターを追加」ウィンドウをクリックすると、フィルターのリストが表示されます。
リストをスクロールして、「製品名」をクリックします。

フィルターを選択すると、そのフィルターの条件設定ウィンドウが表示されます。
今回選択した「製品名」フィルターは、指定した値「と同じ」、「ではない」、「で始まる」、「で始まらない」といういずれかの条件でフィルターを適用できます。

今回は、製品名が 値 「”Systems Manager Patch Manager” と同じ」条件を指定しました。
フィルター条件を設定したら、「適用」をクリックすることでフィルターが追加されます。
※「~を含む」という条件指定ができない点で、使い勝手が悪いと感じました。”Systems Manager Patch Manager と同じ” か “Systems Manager で始まる” で指定しなければいけないのは手間ですよね。

フィルターを適用した結果、Patch Managerに関するセキュリティアラートは1件のみヒットしました。

この検出結果リストでは、「アラートタイトル(検出結果)」、「重大度」、「ワークフローのステータス」、「リージョン」、「アカウントID」、「製品」、「リソース」、「コンプライアンスのステータス」、「更新日時」を確認できます。

アラートタイトル(検出結果列)のリンクをクリックしてみましょう。

次の画像のように、アラートのより詳細な情報が画面右ペインに表示されます。

このウィンドウ上で、ワークフローのステータス変更(新規、通知済み、抑制済み、解決済み)や検出結果のコピーといった、アラート対応関連の運用オペレーションを実施できます。

「履歴」セクションではアラートに関する操作履歴を確認でき、「是正」セクションではアラートへの対応や参考となるAWSドキュメントのリンクを案内してくれます。

AWS Security Hubの無効化

Security Hubとの連携は、この「設定」画面右端にある「編集」をクリックして表示されるページより、いつでも連携解除できます。

連携解除が正常に完了すると、Patch Managerコンソールの画面上部に次のメッセージが表示されます。

Patch Manager 設定画面では、Security Hub へのエクスポート状態が「無効」と表示されます。

なお、Patch Managerと連携解除しても、連携時に有効化した AWS Security Hubは有効のままです。AWS Security Hubも無効化するには、AWS Security Hubの「一般」画面より「AWS Security Hubの無効化」を実行してください。
※AWS Security Hubに集約されるセキュリティアラートには、Patch Manager以外のサービスのものが含まれるので、機能無効化を実施する際は、よく検討したうえで実施するようにしてください。

次のポップアップメッセージが表示されます。無効化を実行する場合は、「AWS Security Hub の無効化」をクリックします。

以下のように、AWS Security Hub サービスの Home画面が表示されれば、機能無効化は完了です。

さいごに

今回は「AWS Systems Managerフル攻略マニュアル」の第12回ということで、Patch Managerの便利な機能として、「パッチコンプライアンスレポートの出力」と「AWS Security Hubとの連携」について解説しました。

パッチコンプライアンスレポートの出力は、日々のパッチ運用状況を自動的に記録できる便利な機能だと思います。また、AWS Security Hubとの連携についても簡単に設定できるので、AWS Configを使用する環境であれば導入を検討してみてください。

サーバエンジニア歴7年、ネットワークエンジニア歴4年。 長らくSI業界のインフラ部隊に勤め、基本設計から導入まで一通りの経験あり。

この記事を含む特集

AWS Systems Manager攻略マニュアル

面倒なAWSシステム運用を効率化!AWS Systems Manager攻略マニュアル

最新情報をお届けします!

最新のITトレンドやセキュリティ対策の情報を、メルマガでいち早く受け取りませんか?ぜひご登録ください

メルマガ登録

最新情報をお届けします!

最新のITトレンドやセキュリティ対策の情報を、メルマガでいち早く受け取りませんか?ぜひご登録ください

メルマガ登録