パッチ適用のための SSM コマンドドキュメント: AWS-RunPatchBaseline
AWS Systems Manager は、AWS Systems Manager の一機能である Patch Manager 用の Systems Manager ドキュメント (SSM ドキュメント) である AWS-RunPatchBaseline
をサポートしています。この SSM ドキュメントでは、セキュリティ関連および他のタイプの更新の両方について、マネージドノードにパッチ適用オペレーションを実行します。パッチグループが指定されていない場合、ドキュメントを実行すると、オペレーティングシステムタイプの「デフォルト」として指定されているパッチベースラインが使用されます。それ以外の場合は、パッチグループに関連付けられているパッチベースラインが使用されます。パッチグループの詳細については、「パッチグループ」を参照してください。
ドキュメント AWS-RunPatchBaseline
を使用して、オペレーティングシステムとアプリケーションの両方にパッチを適用することができます。(Windows Server では、アプリケーションのサポートは、Microsoft がリリースしたアプリケーションの更新に制限されています)。
このドキュメントでは、Linux macOS、および Windows Server マネージドノードをサポートしています。ドキュメントは、プラットフォーム別に適切なアクションを実行します。
注記
Patch Manager は、レガシー SSM ドキュメント AWS-ApplyPatchBaseline
もサポートしています。ただし、このドキュメントが対応するのは Windows マネージドノードのみです。Linux、macOS、および Windows Server マネージドノードでのパッチ適用をサポートしているため、代わりに AWS-RunPatchBaseline
を使用することをお勧めします。 AWS-RunPatchBaseline
ドキュメントを使用するには、バージョン 2.0.834.0 以降の SSM Agent が必要です。
各スナップショットは、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-RunPatchBaseline
ドキュメントで RebootOption
パラメータが NoReboot
に設定されている場合、Patch Manager の実行後、マネージドノードは再起動されません。詳細については、「パラメータ名: RebootOption」を参照してください。
パッチコンプライアンスデータの表示方法については、「パッチコンプライアンスについて」を参照してください。
AWS-RunPatchBaseline
個のパラメータ
AWS-RunPatchBaseline
は 5 つのパラメータをサポートしています。Operation
パラメータは必須です。InstallOverrideList
、BaselineOverride
、RebootOption
の各パラメータはオプションです。Snapshot-ID
は技術的にはオプションですが、メンテナンスウィンドウを使用せずに AWS-RunPatchBaseline
を実行する場合はカスタム値を指定することをお勧めします。このドキュメントをメンテナンスウィンドウオペレーションの一部として実行する場合は、Patch Manager がカスタム値を自動的に提供します。
パラメータ
パラメータ名: Operation
使用: 必須。
オプション: Scan
| Install
。
- Scan
-
Scan
オプションを選択すると、AWS-RunPatchBaseline
はマネージドノードのパッチコンプライアンス状態を確認し、この情報を Patch Manager に返します。Scan
では、更新のインストールや、マネージドノードの再起動を求めません。その代わりに、このオペレーションでは、承認されたノードに適用可能なアップデートがどこに欠けているかを特定します。 - インストール
-
Install
オプションを選択すると、AWS-RunPatchBaseline
はマネージドノードに見つからない承認済み更新と適用可能な更新のインストールを試行します。Install
オペレーションの一部として生成されるパッチコンプライアンス情報には、見つからない更新は示されませんが、更新のインストールが何らかの原因で失敗した場合は「失敗」状態になっている更新がレポートされることがあります。更新がマネージドノードにインストールされるたびに、ノードが再起動され、更新がインストール済みで有効になっていることが確認されます。(例外:RebootOption
パラメータがAWS-RunPatchBaseline
ドキュメントのNoReboot
で設定されている場合、パッチマネージャーの Patch Manager 実行後にマネージドノードは再起動されません。詳細については、「パラメータ名: RebootOption」を参照してください。)注記
Patch Manager がマネージドノードを更新する前に、ベースラインルールで指定されているパッチがインストールされている場合、システムが予期したとおりに再起動しないことがあります。この可能性があるのは、パッチがユーザーによって手動でインストールされたか、Ubuntu Server の
unattended-upgrades
パッケージなどの別のプログラムによって自動的にインストールされた場合です。
パラメータ名: AssociationId
使用: オプション。
AssociationId
は、AWS Systems Manager の一機能である State Manager の既存の関連付けの ID です。これは、指定した関連付けにコンプライアンスデータを追加するために Patch Manager で使用します。この関連付けは、Quick Setup のパッチポリシーでセットアップされたパッチ適用オペレーションに関連しています。
注記
AWS-RunPatchBaseline
では、パッチポリシーベースラインのオーバーライドとともに AssociationId
値を指定すると、パッチ適用は PatchPolicy
オペレーションとして実行され、AWS:ComplianceItem
で報告される ExecutionType
値も PatchPolicy
です。AssociationId
値が指定されていない場合、パッチ適用は Command
オペレーションとして実行され、送信される AWS:ComplianceItem
の ExecutionType
値のレポートも Command
です。
使用する関連付けがまだない場合は、create-association コマンドを実行して関連付けを作成できます。
パラメータ名: Snapshot ID
使用: オプション。
Snapshot ID
は、Patch Manager が使用する一意の ID (GUID) です。この ID により、1 回のオペレーションでパッチを適用するマネージドノードのすべてに同じ承認済みパッチのセットが適用されます。このパラメータは省略可能ですが、次の表に示すようにメンテナンスウィンドウで AWS-RunPatchBaseline
を実行しているかどうかに応じて、推奨されるベストプラクティスが異なります。
モード | ベストプラクティス | 詳細 |
---|---|---|
メンテナンスウィンドウ内で AWS-RunPatchBaseline を実行する |
スナップショット ID は指定しないでください。Patch Manager によって指定されます。 |
メンテナンスウィンドウを使用して このシナリオで値を指定しないと、パッチベースラインのスナップショットは 3 日以内に有効期限が切れる場合があります。スナップショットの有効期限が切れると、同じ ID を指定しても、別のスナップショットが生成されます。 |
メンテナンスウィンドウ外で AWS-RunPatchBaseline を実行する |
スナップショット ID のカスタム GUID 値を生成および指定します。¹ |
メンテナンスウィンドウを使用しないで 例えば、AWS Systems Manager の一機能である Run Command を使用して |
¹Snapshot ID パラメータの値を生成するには、GUID を生成できる任意のツールを使用できます。たとえば、PowerShell では、 |
パラメータ名: InstallOverrideList
使用: オプション。
InstallOverrideList
を使用すると、インストールするパッチのリストに対する https URL または Amazon S3 パス形式の URL を指定できます。このパッチインストールリストは、YAML 形式で管理され、デフォルトのパッチベースラインで指定されたパッチを上書きします。これにより、どのマネージドノードにどのパッチがインストールされているかを、より詳細にコントロールできます。
InstallOverrideList
パラメータを使用する場合のパッチ適用オペレーションの動作は、Linux および macOS マネージドノードと、Windows Server マネージドノードで異なります。Linux および macOS では、パッチがパッチベースラインルールと一致するかどうかにかかわらず、Patch Manager は、ノードで有効になっているリポジトリに存在する InstallOverrideList
パッチリストに含まれるパッチを適用しようとします。一方、Windows Server ノードでは、InstallOverrideList
パッチリスト内のパッチは、パッチベースラインルールとも一致する場合にのみ適用されます。
コンプライアンスレポートは、パッチの InstallOverrideList
リストで指定するものではなく、パッチのベースラインで指定されているものに従ってパッチの状態が反映されることに注意してください。つまり、スキャンオペレーションは InstallOverrideList
パラメータを無視します。これは、コンプライアンスレポートが、特定のパッチ適用オペレーションで承認されたものではなく、ポリシーに従ってパッチ状態を一貫して反映することを保証するためです。
単一のパッチベースラインを使用しながら、InstallOverrideList
パラメータを使用して、異なるメンテナンスウィンドウスケジュールで異なるタイプのパッチをターゲットグループに適用する方法の詳細については、「AWS-RunPatchBaseline または AWS-RunPatchBaselineAssociation で InstallOverrideList パラメータを使用するサンプルシナリオ」を参照してください。
有効な URL 形式
注記
ファイルが公開されているバケットに格納されている場合は、「https」URL 形式または Amazon S3 パススタイルの URL を指定できます。ファイルがプライベートバケットに格納されている場合は、Amazon S3 パススタイルの URL を指定する必要があります。
-
https URL 形式:
https://s3.
aws-api-domain
/amzn-s3-demo-bucket/my-windows-override-list.yaml -
Amazon S3 パス形式の URL :
s3://amzn-s3-demo-bucket/my-windows-override-list.yaml
有効な YAML コンテンツ形式
リストにパッチを指定するために使用する書式は、マネージドノードのオペレーティングシステムによって異なります。ただし、一般的な形式は次のとおりです。
patches: - id: '{patch-d}' title: '{patch-title}' {
additional-fields
}:{values
}
YAML ファイルにフィールドを追加することはできますが、パッチオペレーション中は無視されます。
さらに、S3 バケットのリストを追加または更新する前に、YAML ファイルのフォーマットが有効であることを確認することをお勧めします。YAML 形式の詳細については、yaml.org
サンプルパッチリスト
-
Amazon Linux
patches: - id: 'kernel.x86_64' - id: 'bind*.x86_64' title: '32:9.8.2-0.62.rc1.57.amzn1' - id: 'glibc*' - id: 'dhclient*' title: '*12:4.1.1-53.P1.28.amzn1' - id: 'dhcp*' title: '*10:3.1.1-50.P1.26.amzn1'
-
CentOS
patches: - id: 'kernel.x86_64' - id: 'bind*.x86_64' title: '32:9.8.2-0.62.rc1.57.amzn1' - id: 'glibc*' - id: 'dhclient*' title: '*12:4.1.1-53.P1.28.amzn1' - id: 'dhcp*' title: '*10:3.1.1-50.P1.26.amzn1'
-
Debian Server
patches: - id: 'apparmor.amd64' title: '2.10.95-0ubuntu2.9' - id: 'cryptsetup.amd64' title: '*2:1.6.6-5ubuntu2.1' - id: 'cryptsetup-bin.*' title: '*2:1.6.6-5ubuntu2.1' - id: 'apt.amd64' title: '*1.2.27' - id: 'apt-utils.amd64' title: '*1.2.25'
-
macOS
patches: - id: 'XProtectPlistConfigData' - id: 'MRTConfigData.1.61' - id: 'Command Line Tools for Xcode.11.5' - id: 'Gatekeeper Configuration Data'
-
Oracle Linux
patches: - id: 'audit-libs.x86_64' title: '*2.8.5-4.el7' - id: 'curl.x86_64' title: '*.el7' - id: 'grub2.x86_64' title: 'grub2.x86_64:1:2.02-0.81.0.1.el7' - id: 'grub2.x86_64' title: 'grub2.x86_64:1:*-0.81.0.1.el7'
-
Red Hat Enterprise Linux (RHEL)
patches: - id: 'NetworkManager.x86_64' title: '*1:1.10.2-14.el7_5' - id: 'NetworkManager-*.x86_64' title: '*1:1.10.2-14.el7_5' - id: 'audit.x86_64' title: '*0:2.8.1-3.el7' - id: 'dhclient.x86_64' title: '*.el7_5.1' - id: 'dhcp*.x86_64' title: '*12:5.2.5-68.el7'
-
SUSE Linux Enterprise Server (SLES)
patches: - id: 'amazon-ssm-agent.x86_64' - id: 'binutils' title: '*0:2.26.1-9.12.1' - id: 'glibc*.x86_64' title: '*2.19*' - id: 'dhcp*' title: '0:4.3.3-9.1' - id: 'lib*'
-
Ubuntu Server
patches: - id: 'apparmor.amd64' title: '2.10.95-0ubuntu2.9' - id: 'cryptsetup.amd64' title: '*2:1.6.6-5ubuntu2.1' - id: 'cryptsetup-bin.*' title: '*2:1.6.6-5ubuntu2.1' - id: 'apt.amd64' title: '*1.2.27' - id: 'apt-utils.amd64' title: '*1.2.25'
-
Windows
patches: - id: 'KB4284819' title: '2018-06 Cumulative Update for Windows Server 2016 (1709) for x64-based Systems (KB4284819)' - id: 'KB4284833' - id: 'KB4284835' title: '2018-06 Cumulative Update for Windows Server 2016 (1803) for x64-based Systems (KB4284835)' - id: 'KB4284880' - id: 'KB4338814'
パラメータ名: 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
-
パラメータ名: BaselineOverride
使用: オプション。
BaselineOverride
パラメータを使用して、実行時にパッチ定義設定を定義できます。このベースラインオーバーライドは、S3 バケット内の JSON オブジェクトとして維持されます。これにより、パッチ適用操作で、デフォルトのパッチベースラインのルールを適用する代わりに、ホストオペレーティングシステムに一致する指定されたベースラインが使用されるようにします。
BaselineOverride
パラメータの使用方法の詳細については、「BaselineOverride パラメータの使用」を参照してください。