パッチ適用のための SSM コマンドドキュメント: AWS-RunPatchBaselineWithHooks
AWS Systems Manager は、AWS Systems Manager の一機能である Patch Manager 用の Systems Manager ドキュメント (SSM ドキュメント) である AWS-RunPatchBaselineWithHooks
をサポートしています。この SSM ドキュメントでは、セキュリティ関連および他のタイプの更新の両方について、マネージドノードにパッチ適用オペレーションを実行します。
AWS-RunPatchBaselineWithHooks
は、次の点で AWS-RunPatchBaseline
とは異なります。
-
ラッパードキュメント –
AWS-RunPatchBaselineWithHooks
は、AWS-RunPatchBaseline
のラッパーであり、そのオペレーションの一部でAWS-RunPatchBaseline
に依存しています。 -
Install
オペレーション –AWS-RunPatchBaselineWithHooks
では、マネージドノードのパッチ適用中に指定されたポイントで実行されるライフサイクルフックがサポートされます。パッチのインストールにはマネージドノードの再起動が必要になる場合があるため、パッチ適用オペレーションは 2 つのイベントに分割され、合計 3 つのフックでカスタム機能をサポートします。最初のフックはInstall with NoReboot
オペレーションの前です。2 番目のフックはInstall with NoReboot
オペレーションの後です。3 番目のフックは、マネージドノードの再起動後に使用できます。 -
カスタムパッチリストはサポートしません –
AWS-RunPatchBaselineWithHooks
では、InstallOverrideList
パラメータはサポートされません。 -
SSM Agent サポート –
AWS-RunPatchBaselineWithHooks
では、パッチを適用するために SSM Agent 3.0.502 以降をマネージドノードにインストールする必要があります。
パッチグループが指定されていない場合、ドキュメントを実行すると、オペレーティングシステムタイプの「デフォルト」として現在指定されているパッチベースラインが使用されます。それ以外の場合は、パッチグループに関連付けられているパッチベースラインが使用されます。パッチグループの詳細については、「パッチグループ」を参照してください。
ドキュメント AWS-RunPatchBaselineWithHooks
を使用して、オペレーティングシステムとアプリケーションの両方にパッチを適用することができます。(Windows Server では、アプリケーションのサポートは、Microsoft がリリースしたアプリケーションの更新に制限されています)。
このドキュメントでは、Linux および Windows Server マネージドノードをサポートしています。ドキュメントは、プラットフォーム別に適切なアクションを実行します。
注記
AWS-RunPatchBaselineWithHooks
は macOS ではサポートされていません。
各スナップショットは、AWS アカウント 、パッチグループ、オペレーティングシステム、スナップショット ID に固有のものです。スナップショットは、署名付きの Amazon Simple Storage Service (Amazon S3) URL を介して配信されます。この URL は、スナップショットが作成されてから 24 時間後に期限切れになります。ただし、URL の有効期限が切れた後に、同じスナップショットコンテンツを他のマネージドノードに適用する場合は、スナップショットを作成してから 3 日以内であれば新しい署名付き Amazon S3 URL を生成できます。これを行うには、get-deployable-patch-snapshot-for-instance コマンドを使用します。
すべての承認済みで適用可能な更新プログラムがインストールされ、必要に応じて再起動されると、パッチのコンプライアンス情報がマネージドノードで生成されて Patch Manager にレポートされます。
注記
AWS-RunPatchBaselineWithHooks
ドキュメントで RebootOption
パラメータが NoReboot
に設定されている場合、Patch Manager の実行後、マネージドノードは再起動されません。詳細については、「パラメータ名: RebootOption」を参照してください。
パッチコンプライアンスデータの表示方法については、「パッチコンプライアンスについて」を参照してください。
AWS-RunPatchBaselineWithHooks
オペレーションステップ
AWS-RunPatchBaselineWithHooks
が実行されると、次の手順が実行されます。
-
スキャン -
Scan
を使用したAWS-RunPatchBaseline
オペレーションがマネージドノードで実行され、コンプライアンスレポートが生成され、アップロードされます。 -
ローカルパッチ状態の確認 - スクリプトを実行して、選択したオペレーションとステップ 1 の
Scan
結果に基づいて実行されるステップを決定します。-
選択したオペレーションが
Scan
の場合、そのオペレーションは完了としてマークされます。オペレーションは終了します。 -
選択したオペレーションが
Install
の場合、Patch Manager はステップ 1 のScan
結果を評価し、次に実行するオペレーションを決定します。-
パッチの欠落が検出されず、保留中の再起動が必要ない場合は、オペレーションは最後のステップ (ステップ 8) に直接進みます。これには、指定したフックが含まれます。その間のステップはすべてスキップされます。
-
パッチの欠落が検出されないが、保留中の再起動が必要で、選択した再起動オプションが
NoReboot
である場合、オペレーションは最後のステップ (ステップ 8) に直接進みます。これには、指定したフックが含まれます。その間のステップはすべてスキップされます。 -
それ以外の場合、オペレーションは次のステップに進みます。
-
-
-
パッチ適用前のフックオペレーション - 最初のライフサイクルフック用に指定した SSM ドキュメント (
PreInstallHookDocName
) は、マネージドノードで実行されます。 -
再起動せずにインストール -
Install
を使用してNoReboot
の再起動オプションを含むAWS-RunPatchBaseline
オペレーションがマネージドノードで実行され、コンプライアンスレポートが生成され、アップロードされます。 -
インストール後のフックオペレーション - 2 番目のライフサイクルフック用に指定した SSM ドキュメント (
PostInstallHookDocName
) は、マネージドノードで実行されます。 -
パッチ適用前のフックオペレーション - 最初のライフサイクルフック用に指定した SSM ドキュメントは、インスタンスで実行されます。
-
選択した再起動オプションが
NoReboot
の場合、オペレーションは最後のステップ (ステップ 8) に直接進みます。これには、指定したフックが含まれます。その間のステップはすべてスキップされます。 -
選択した再起動オプションが
RebootIfNeeded
の場合、Patch Manager はステップ4で収集されたインベントリから保留中の再起動が必要かどうかをチェックします。つまり、次のいずれかの場合に操作をステップ 7 に進み、マネージド ノードが再起動されます。-
Patch Manager は、1 つ以上のパッチをインストールしました。(Patch Manager は、パッチに再起動が必要かどうかを評価しません。パッチに再起動が必要ない場合でも、システムは再起動されます。)
-
Patch Manager は、インストールの実行中、
INSTALLED_PENDING_REBOOT
の状態によってパッチをひとつ以上検出します。INSTALLED_PENDING_REBOOT
ステータスは、前回インストールオペレーションを実行したときにオプションNoReboot
が選択されたことを意味する場合や、マネージドノードが最後に再起動されたとき以降にパッチが Patch Manager 以外でインストールされたことを意味する場合があります。
これらの条件を満たすパッチが見つからない場合は、マネージド ノードのパッチ適用操作が完了し、操作は最終ステップ (ステップ 8) に直接進みます。これには、提供されたフックが含まれます。その間のステップはすべてスキップされます。
-
-
-
再起動とレポート - 再起動オプションが
RebootIfNeeded
であるインストールオペレーションは、AWS-RunPatchBaseline
を使用してマネージドノードで実行され、コンプライアンスレポートが生成され、アップロードされます。 -
再起動後のフックオペレーション - 3 番目のライフサイクルフック用に指定した SSM ドキュメント (
OnExitHookDocName
) は、マネージドノードで実行されます。
Scan
オペレーションの場合、ステップ 1 が失敗すると、ドキュメントの実行プロセスは停止し、ステップは失敗として報告されますが、後続のステップは成功として報告されます。
Install
オペレーションの場合、オペレーション中にいずれかの aws:runDocument
ステップが失敗すると、そのようなステップは失敗として報告され、オペレーションは直接最終ステップ (ステップ 8) に進みます。これには、指定したフックが含まれます。その間のステップはすべてスキップされます。このステップは失敗として報告され、最後のステップはそのオペレーション結果のステータスを報告し、その間にあるすべてのステップは成功として報告されます。
AWS-RunPatchBaselineWithHooks
個のパラメータ
AWS-RunPatchBaselineWithHooks
では 6 つのパラメータがサポートされています。
Operation
パラメータは必須です。
RebootOption
、PreInstallHookDocName
、PostInstallHookDocName
および OnExitHookDocName
パラメータはオプションです。
Snapshot-ID
は技術的にはオプションですが、AWS-RunPatchBaselineWithHooks
をメンテナンスウィンドウ以外で実行する場合は、カスタム値を指定することをお勧めします。ドキュメントがメンテナンスウィンドウオペレーションの一部として実行されるときに、Patch Manager に値を自動的に指定させましょう。
パラメータ
パラメータ名: Operation
使用: 必須。
オプション: Scan
| Install
。
- Scan
-
Scan
オプションを選択すると、システムはAWS-RunPatchBaseline
ドキュメントを使用してマネージドノードのパッチコンプライアンスの状態を判断し、その情報を Patch Manager にレポートします。Scan
では、更新のインストールやマネージドノードの再起動は行われません。その代わりに、このオペレーションでは、承認されたノードに適用可能なアップデートがどこに欠けているかを特定します。 - インストール
-
Install
オプションを選択すると、AWS-RunPatchBaselineWithHooks
はマネージドノードに見つからない承認済み更新と適用可能な更新のインストールを試行します。Install
オペレーションの一部として生成されるパッチコンプライアンス情報には、見つからない更新は示されませんが、更新のインストールが何らかの原因で失敗した場合は「失敗」状態になっている更新がレポートされることがあります。更新がマネージドノードにインストールされるたびに、ノードが再起動され、更新がインストール済みで有効になっていることが確認されます。(例外:RebootOption
パラメータがAWS-RunPatchBaselineWithHooks
ドキュメントのNoReboot
で設定されている場合、パッチマネージャーの Patch Manager 実行後にマネージドノードは再起動されません。詳細については、「パラメータ名: RebootOption」を参照してください。)注記
Patch Manager がマネージドノードを更新する前に、ベースラインルールで指定されているパッチがインストールされている場合、システムが予期したとおりに再起動しないことがあります。この可能性があるのは、パッチがユーザーによって手動でインストールされたか、Ubuntu Server の
unattended-upgrades
パッケージなどの別のプログラムによって自動的にインストールされた場合です。
パラメータ名: Snapshot ID
使用: オプション。
Snapshot ID
は、Patch Manager が使用する一意の ID (GUID) です。この ID により、1 回のオペレーションでパッチを適用するマネージドノードのすべてに同じ承認済みパッチのセットが適用されます。このパラメータは省略可能ですが、次の表に示すようにメンテナンスウィンドウで AWS-RunPatchBaselineWithHooks
を実行しているかどうかに応じて、推奨されるベストプラクティスが異なります。
モード | ベストプラクティス | 詳細 |
---|---|---|
メンテナンスウィンドウ内で AWS-RunPatchBaselineWithHooks を実行する |
スナップショット ID は指定しないでください。Patch Manager によって指定されます。 |
メンテナンスウィンドウを使用して このシナリオで値を指定しないと、パッチベースラインのスナップショットは 3 日以内に有効期限が切れる場合があります。スナップショットの有効期限が切れると、同じ ID を指定しても、別のスナップショットが生成されます。 |
メンテナンスウィンドウ外で AWS-RunPatchBaselineWithHooks を実行する |
スナップショット ID のカスタム GUID 値を生成および指定します。¹ |
メンテナンスウィンドウを使用しないで 例えば、AWS Systems Manager の一機能である Run Command を使用して |
¹Snapshot ID パラメータの値を生成するには、GUID を生成できる任意のツールを使用できます。たとえば、PowerShell では、 |
パラメータ名: RebootOption
使用: オプション。
オプション: RebootIfNeeded
| NoReboot
デフォルト: RebootIfNeeded
警告
デフォルトのオプションは RebootIfNeeded
です。ユースケースに適したオプションを必ず選択してください。例えば、設定プロセスを完了するためにマネージドノードをすぐに再起動する必要がある場合は、RebootIfNeeded
を選択します。または、スケジュールされた再起動時間までマネージドノードの可用性を維持する必要がある場合は、NoReboot
を選択します。
重要
Amazon EMR (以前は Amazon Elastic MapReduce と呼ばれていました) のクラスターインスタンスへのパッチ適用には、Patch Manager を使用しないことをお勧めします。特に、RebootOption
パラメータの RebootIfNeeded
オプションは選択しないでください。(このオプションは、AWS-RunPatchBaseline
、AWS-RunPatchBaselineAssociation
、および AWS-RunPatchBaselineWithHooks
のパッチ適用用の SSM コマンドドキュメントに記載されています。)
Patch Manager を使用してパッチを適用する基本コマンドは、yum
と dnf
コマンドを使用します。そのため、パッケージのインストール方法が原因となり、オペレーションの互換性が失われます。Amazon EMR クラスターのソフトウェアを更新するための推奨方法については、「Amazon EMR 管理ガイド」の「Amazon EMR のデフォルト AMI の使用」を参照してください。
- RebootIfNeeded
-
RebootIfNeeded
オプションを選択すると、次のいずれかの場合にマネージドノードが再起動されます。-
Patch Manager が 1 つ以上のパッチをインストールしている場合。
Patch Manager は、パッチによる再起動が必要かどうか評価しない場合。パッチで再起動が必要ない場合でも、システムは再起動されます。
-
Patch Manager は、
Install
オペレーションの実行中、ステータスがINSTALLED_PENDING_REBOOT
のパッチをひとつ以上検出します。INSTALLED_PENDING_REBOOT
ステータスは、前回Install
オペレーションを実行したときにオプションNoReboot
が選択されたことを意味する場合や、マネージドノードが最後に再起動されたとき以降にパッチが Patch Manager 以外でインストールされたことを意味する場合があります。
上記 2 つの場合にマネージドノードを再起動すると、更新されたパッケージがメモリからフラッシュされ、パッチ適用と再起動の動作があらゆるオペレーティングシステムで一貫して維持されます。
-
- NoReboot
-
NoReboot
オプションを選択すると、Patch Manager がInstall
オペレーション中にパッチをインストールした場合でも、マネージドノードは再起動されません。このオプションは、パッチ適用後にマネージドノードを再起動する必要がないことがわかっている場合や、パッチ適用操作の再起動によって中断されないアプリケーションまたはプロセスがノードで実行されている場合に便利です。また、メンテナンスウィンドウを使用するなど、マネージドノードの再起動のタイミングをより詳細に制御する場合にも役立ちます。注記
パッチがインストールされている場合に
NoReboot
オプションを選択すると、ステータスInstalledPendingReboot
がパッチに割り当てられます。ただし、マネージドノード自体は、Non-Compliant
と表示されています。再起動が発生し、Scan
オペレーションが実行されると、ノードのステータスはCompliant
に更新されます。
パッチのインストール追跡ファイル: パッチ (特にシステムの最後の再起動以降にインストールされたパッチ) のインストールを追跡するために、Systems Manager は、マネージドノードのファイルを管理します。
重要
追跡ファイルを削除または変更しないでください。このファイルを削除または破損すると、マネージドノードのパッチコンプライアンスレポートが不正確になります。ファイルを削除または破損した場合は、ノードを再起動し、パッチのスキャンオペレーションを実行してファイルを復元します。
この追跡ファイルは、マネージドノードの以下の場所に保存されます。
-
Linux オペレーティングシステム:
-
/var/log/amazon/ssm/patch-configuration/patch-states-configuration.json
-
/var/log/amazon/ssm/patch-configuration/patch-inventory-from-last-operation.json
-
-
Windows Server オペレーティングシステム:
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchStatesConfiguration.json
-
C:\ProgramData\Amazon\PatchBaselineOperations\State\PatchInventoryFromLastOperation.json
-
パラメータ名: PreInstallHookDocName
使用: オプション。
デフォルト: AWS-Noop
。
PreInstallHookDocName
パラメータに指定する値は、選択した SSM ドキュメントの名前または Amazon リソースネーム (ARN) です。AWS マネージドドキュメントの名前や、作成したか共有されたカスタム SSM ドキュメントの名前または ARN を指定できます。(別の AWS アカウント から共有されている SSM ドキュメントの場合は、arn:aws:ssm:us-east-2:123456789012:document/MySharedDocument
などの完全なリソース ARN を指定する必要があります)。
指定した SSM ドキュメントは、Install
オペレーションの前に実行され、マネージドノードでパッチ適用が実行される前にアプリケーションのヘルスチェックを行うシェルスクリプトなど、SSM Agent がサポートするアクションを実行します。(アクションの一覧については、「コマンドドキュメントプラグインリファレンス」を参照してください)。デフォルトの SSM ドキュメント名は AWS-Noop
で、マネージドノードに対するオペレーションは実行されません。
カスタム SSM ドキュメントの作成方法については、「SSM ドキュメントコンテンツを作成する」を参照してください。
パラメータ名: PostInstallHookDocName
使用: オプション。
デフォルト: AWS-Noop
。
PostInstallHookDocName
パラメータに指定する値は、選択した SSM ドキュメントの名前または Amazon リソースネーム (ARN) です。AWS マネージドドキュメントの名前や、作成したか共有されたカスタム SSM ドキュメントの名前または ARN を指定できます。(別の AWS アカウント から共有されている SSM ドキュメントの場合は、arn:aws:ssm:us-east-2:123456789012:document/MySharedDocument
などの完全なリソース ARN を指定する必要があります)。
指定した SSM ドキュメントは、Install with
NoReboot
オペレーション後に実行され、再起動前にサードパーティ製の更新プログラムをインストールするためのシェルスクリプトなど、SSM Agent がサポートするアクションを実行します。(アクションの一覧については、「コマンドドキュメントプラグインリファレンス」を参照してください)。デフォルトの SSM ドキュメント名は AWS-Noop
で、マネージドノードに対するオペレーションは実行されません。
カスタム SSM ドキュメントの作成方法については、「SSM ドキュメントコンテンツを作成する」を参照してください。
パラメータ名: OnExitHookDocName
使用: オプション。
デフォルト: AWS-Noop
。
OnExitHookDocName
パラメータに指定する値は、選択した SSM ドキュメントの名前または Amazon リソースネーム (ARN) です。AWS マネージドドキュメントの名前や、作成したか共有されたカスタム SSM ドキュメントの名前または ARN を指定できます。(別の AWS アカウント から共有されている SSM ドキュメントの場合は、arn:aws:ssm:us-east-2:123456789012:document/MySharedDocument
などの完全なリソース ARN を指定する必要があります)。
指定した SSM ドキュメントは、マネージドノードの再起動オペレーションの後に実行され、パッチ適用オペレーションの完了後にノードの状態を確認するシェルスクリプトなど、SSM Agent がサポートするアクションを実行します。(アクションの一覧については、「コマンドドキュメントプラグインリファレンス」を参照してください)。デフォルトの SSM ドキュメント名は AWS-Noop
で、マネージドノードに対するオペレーションは実行されません。
カスタム SSM ドキュメントの作成方法については、「SSM ドキュメントコンテンツを作成する」を参照してください。