AWS-RunPatchBaselineAssociation SSM ドキュメントについて - AWS Systems Manager

AWS-RunPatchBaselineAssociation SSM ドキュメントについて

AWS-RunPatchBaseline ドキュメントと同様に、AWS-RunPatchBaselineAssociation では、セキュリティ関連および他のタイプの更新の両方について、インスタンスにパッチ適用オペレーションを実行します。また、ドキュメント AWS-RunPatchBaselineAssociation を使用して、オペレーティングシステムとアプリケーションの両方にパッチを適用することもできます。(Windows Server では、アプリケーションのサポートは、Microsoft がリリースしたアプリケーションの更新に制限されています)。

注記

AWS-RunPatchBaselineAssociation は、ハイブリッド環境内のオンプレミスサーバーおよび仮想マシン (VM) でサポートされていません。

このドキュメントでは、Linux、macOS、および Windows Server 用の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスがサポートされています。このドキュメントでは、各プラットフォームに対して適切なアクションを実行し、Linux インスタンスおよび macOS インスタンスでは Python モジュールを、Windows インスタンスでは PowerShell モジュールを呼び出します。

ただし、AWS-RunPatchBaselineAssociation は、次の点で AWS-RunPatchBaseline とは異なります。

  • AWS-RunPatchBaselineAssociation は、主に、AWS Systems Manager の一機能である高速セットアップを使用して作成された関連付けで使用することを目的としています。(Quick Setup Host Management 設定タイプを使用する場合、[毎日インスタンスをスキャンして欠落しているパッチを確認する] オプションを選択すると、システムはオペレーションに AWS-RunPatchBaselineAssociation を使用します)。

    ただし、ほとんどの場合、独自のパッチ適用オペレーションを設定する場合は、AWS-RunPatchBaseline の代わりに、AWS-RunPatchBaselineWithHooks または AWS-RunPatchBaselineAssociation を選択する必要があります。

  • AWS-RunPatchBaselineAssociation ドキュメントを使用すると、ドキュメントの BaselineTags パラメータフィールドでタグのキーペアを指定できます。 AWS アカウント 内のカスタムパッチベースラインがこれらのタグを共有している場合、AWS Systems Manager の一機能であるパッチマネージャーは、ターゲットインスタンスでの実行時に、オペレーティングシステムタイプに対して現在指定されている「デフォルト」パッチベースラインではなく、そのタグ付きベースラインを使用します。

    重要

    高速セットアップを使用してセットアップした以外のパッチオペレーションで AWS-RunPatchBaselineAssociation を使用することを選択し、そのオプションの BaselineTags パラメータを使用する場合は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのインスタンスプロファイルに対する追加のアクセス許可を指定する必要があります。詳細については、「」を参照してくださいパラメータ名: BaselineTags

    次の形式はどちらも BaselineTags パラメータに対して有効です。

    Key=tag-key,Values=tag-value

    Key=tag-key,Values=tag-value1,tag-value2,tag-value3

  • AWS-RunPatchBaselineAssociation の実行時に収集されるパッチコンプライアンスデータは、PutComplianceItems によって使用される PutInventory コマンドではなく、 AWS-RunPatchBaseline API コマンドを使用して記録されます。この違いは、特定の関連付けごとに保存およびレポートされるパッチコンプライアンス情報であることを意味します。この関連付けの外部で生成されたパッチコンプライアンスデータは上書きされません。

  • AWS-RunPatchBaselineAssociation の実行後にレポートされるパッチコンプライアンス情報は、インスタンスが準拠しているかどうかを示します。次の AWS Command Line Interface ( AWS CLI )コマンドの出力で示されているように、パッチレベルの詳細は含まれません。コマンドはコンプライアンスタイプとして Association でフィルタリングされます。

    aws ssm list-compliance-items \ --resource-ids "i-02573cafcfEXAMPLE" \ --resource-types "ManagedInstance" \ --filters "Key=ComplianceType,Values=Association,Type=EQUAL" \ --region us-east-2

    システムが以下のような情報を返します。

    {
        "ComplianceItems": [
            {
                "Status": "NON_COMPLIANT", 
                "Severity": "UNSPECIFIED", 
                "Title": "MyPatchAssociation", 
                "ResourceType": "ManagedInstance", 
                "ResourceId": "i-02573cafcfEXAMPLE", 
                "ComplianceType": "Association", 
                "Details": {
                    "DocumentName": "AWS-RunPatchBaselineAssociation", 
                    "PatchBaselineId": "pb-0c10e65780EXAMPLE", 
                    "DocumentVersion": "1"
                }, 
                "ExecutionSummary": {
                    "ExecutionTime": 1590698771.0
                }, 
                "Id": "3e5d5694-cd07-40f0-bbea-040e6EXAMPLE"
            }
        ]
    }

AWS-RunPatchBaselineAssociation ドキュメントのパラメータとしてタグのキーペア値が指定されている場合、パッチマネージャーは、オペレーティングシステムタイプと一致し、同じタグのキーペアでタグ付けされているカスタムパッチベースラインを検索します。この検索は、現在指定されているデフォルトのパッチベースライン、またはパッチグループに割り当てられたベースラインに制限されません。指定されたタグでベースラインが見つからない場合、パッチマネージャーは次にパッチグループを検索します (AWS-RunPatchBaselineAssociation を実行するコマンドで指定されている場合)。一致するパッチグループがない場合、パッチマネージャーはオペレーティングシステムアカウントの現在のデフォルトパッチベースラインにフォールバックします。

AWS-RunPatchBaselineAssociation ドキュメントで指定されたタグで複数のパッチベースラインが見つかった場合、パッチマネージャーは、オペレーションを続行するために、そのキーと値のペアでタグ付けできるパッチベースラインが 1 つだけであることを示すエラーメッセージを返します。

注記

Linux インスタンスでは、各インスタンスタイプに適切なパッケージマネージャーを使用してパッケージをインストールします。

  • Amazon Linux、Amazon Linux 2、CentOS、Oracle Linux、および RHEL インスタンスは YUM を使用しています。YUM オペレーションの場合、Patch Manager には Python 2.6 以降が必要です。

  • Debian サーバーと Ubuntu Server インスタンスでは APT が使用されています。APT オペレーションの場合、Patch Manager には Python 3 が必要です。

  • SUSE Linux Enterprise Server インスタンスでは Zypper が使用されています。Zypper オペレーションでは、Patch Manager には Python 2.6 以降が必要です。

スキャンが完了した後、またはすべての承認済み更新と該当する更新がインストールされた後、必要に応じて再起動されると、パッチコンプライアンス情報がインスタンスで生成されてパッチコンプライアンスサービスにレポートされます。

注記

RebootOption パラメータが AWS-RunPatchBaselineAssociation ドキュメントの NoReboot で設定されている場合、パッチマネージャーの実行後にインスタンスは再起動されません。詳細については、「」を参照してくださいパラメータ名: RebootOption

パッチコンプライアンスデータの表示方法については、「パッチコンプライアンスについて」を参照してください。

AWS-RunPatchBaselineAssociation 個のパラメータ

AWS-RunPatchBaselineAssociation は、4 つのパラメータをサポートしています。Operation および AssociationId パラメータが必要です。InstallOverrideListRebootOption および BaselineTags パラメータはオプションです。

パラメータ名: Operation

使用: 必須。

オプション: Scan | Install

スキャン

Scan オプションを選択すると、AWS-RunPatchBaselineAssociation はインスタンスのパッチコンプライアンス状態を確認し、この情報をパッチマネージャーに返します。Scan では、更新のインストールや、インスタンスの再起動を求めません。代わりに、承認済み更新でインスタンスに適用可能なものが見つからない個所を示します。

インストール

Install オプションを選択すると、AWS-RunPatchBaselineAssociation はインスタンスに見つからない承認済み更新と適用可能な更新のインストールを試行します。Install オペレーションの一部として生成されるパッチコンプライアンス情報には、見つからない更新は示されませんが、更新のインストールが何らかの原因で失敗した場合は「失敗」状態になっている更新がレポートされることがあります。更新がインスタンスにインストールされるたびに、インスタンスが再起動され、更新がインストール済みで有効になっていることが確認されます。(例外: RebootOption パラメータが AWS-RunPatchBaselineAssociation ドキュメントの NoReboot で設定されている場合、パッチマネージャーの実行後にインスタンスは再起動されません。詳細については、「 パラメータ名: RebootOption 」を参照してください。)

注記

Patch Manager がインスタンスを更新するに、ベースラインルールで指定されたパッチがインストールされている場合、システムが予期したとおりに再起動しない可能性があります。この可能性があるのは、パッチがユーザーによって手動でインストールされたか、Ubuntu Server の unattended-upgrades パッケージなどの別のプログラムによって自動的にインストールされた場合です。

パラメータ名: BaselineTags

使用: オプション。

BaselineTags は、一意のタグのキーと値のペアで、選択して個々のカスタムパッチベースラインに割り当てます。このパラメータには、1 つ以上の値を指定できます。次の形式はどちらも有効です。

Key=tag-key,Values=tag-value

Key=tag-key,Values=tag-value1,tag-value2,tag-value3

BaselineTags 値は、Patch Manager で使用します。この値により、1 回の操作でインスタンスのセットにパッチを適用した場合に、各インスタンスの承認済みパッチのセットが完全に同じであることを確認します。パッチ適用オペレーションを実行すると、Patch Manager は、オペレーティングシステムタイプのパッチベースラインが BaselineTags に指定した同じキーと値のペアでタグ付けされているかどうかを確認します。一致するものがある場合は、このカスタムパッチベースラインが使用されます。一致するものがない場合、パッチ適用オペレーションに指定されたパッチグループに従って、パッチベースラインが識別されます。存在しない場合は、そのオペレーティングシステムの AWS マネージド定義済みパッチベースラインが使用されます。

追加のアクセス許可要件

高速セットアップを使用してセットアップした以外のパッチオペレーションで AWS-RunPatchBaselineAssociation を使用し、オプションの BaselineTags パラメータを使用する場合は、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのインスタンスプロファイルに対する以下のアクセス許可を追加する必要があります。

注記

高速セットアップと AWS-RunPatchBaselineAssociation は、オンプレミスのサーバーと仮想マシン (VM) をサポートしていません。

{ "Effect": "Allow", "Action": [ "ssm:DescribePatchBaselines", "tag:GetResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetPatchBaseline", "ssm:DescribeEffectivePatchesForPatchBaseline" ], "Resource": "patch-baseline-arn" }

patch-baseline-arn を、アクセス許可を付与するパッチベースラインの Amazon リソースネーム (ARN) に、arn:aws:ssm:us-east-2:123456789012:patchbaseline/pb-0c10e65780EXAMPLE 形式で置き換えます。

パラメータ名: AssociationId

使用: 必須。

AssociationId は、 の一機能であるステートマネージャーの既存の関連付けの ID です。AWS Systems Managerこれは、指定された関連付けにコンプライアンスデータを追加するために Patch Manager で使用されます。パッチ適用の結果をインベントリコンプライアンスデータではなく関連付けコンプライアンスデータとして送信することで、インスタンスの既存のインベントリコンプライアンス情報は、パッチ適用オペレーションの後やその他の関連付け ID に対して上書きされません。使用する関連付けがまだない場合は、create-association コマンドを実行して関連付けを作成できます。以下に例を示します。

Linux & macOS
aws ssm create-association \ --name "AWS-RunPatchBaselineAssociation" \ --association-name "MyPatchAssociation" \ --targets "Key=instanceids,Values=[i-02573cafcfEXAMPLE,i-07782c72faEXAMPLE,i-07782c72faEXAMPLE]" \ --parameters "Operation=Scan" \ --schedule-expression "cron(0 */30 * * * ? *)" \ --sync-compliance "MANUAL" \ --region us-east-2
Windows
aws ssm create-association ^ --name "AWS-RunPatchBaselineAssociation" ^ --association-name "MyPatchAssociation" ^ --targets "Key=instanceids,Values=[i-02573cafcfEXAMPLE,i-07782c72faEXAMPLE,i-07782c72faEXAMPLE]" ^ --parameters "Operation=Scan" ^ --schedule-expression "cron(0 */30 * * * ? *)" ^ --sync-compliance "MANUAL" ^ --region us-east-2

パラメータ名: InstallOverrideList

使用: オプション。

InstallOverrideList を使用して、インストールするパッチのリストに対する https URL または Amazon Simple Storage Service (Amazon S3) パス形式の URL を指定します。このパッチインストールリストは、YAML 形式で管理され、デフォルトのパッチベースラインで指定されたパッチを上書きします。これにより、どのインスタンスにどのパッチがインストールされているかを、より詳細にコントロールできます。

コンプライアンスレポートは、パッチの InstallOverrideList リストで指定するものではなく、パッチのベースラインで指定されているものに従ってパッチの状態が反映されることに注意してください。つまり、スキャンオペレーションは InstallOverrideList パラメータを無視します。これは、コンプライアンスレポートが、特定のパッチ適用オペレーションで承認されたものではなく、ポリシーに従ってパッチ状態を一貫して反映することを保証するためです。

有効な URL 形式

注記

ファイルが公開されているバケットに格納されている場合は、「https」URL 形式または Amazon S3 パススタイルの URL を指定できます。ファイルがプライベートバケットに格納されている場合は、Amazon S3 パススタイルの URL を指定する必要があります。

  • https URL 形式:

    https://s3.amazonaws.com/DOC-EXAMPLE-BUCKET/my-windows-override-list.yaml
  • Amazon S3 パス形式の URL :

    s3://DOC-EXAMPLE-BUCKET/my-windows-override-list.yaml

有効な YAML コンテンツ形式

リストにパッチを指定するために使用する書式は、インスタンスのオペレーティングシステムによって異なります。ただし、一般的な形式は次のとおりです。

patches: - id: '{patch-d}' title: '{patch-title}' {additional-fields}:{values}

YAML ファイルにフィールドを追加することはできますが、パッチオペレーション中は無視されます。

さらに、S3 バケットのリストを追加または更新する前に、YAML ファイルのフォーマットが有効であることを確認することをお勧めします。YAML 形式の詳細については、yaml.org を参照してください。検証ツールのオプションについては、ウェブで「yaml 形式の検証」を検索します。

  • Microsoft Windows

    id

    id フィールドは必須です。Microsoft Knowledge Base ID (KB2736693 など) および Microsoft Security Bulletin ID (MS17-023 など) を使用してパッチを指定する場合に使用します。

    Windows 用のパッチリストで提供する他のフィールドはオプションであり、情報提供のみを目的としています。特定のパッチに関する詳細情報を提供するために、titleclassificationseverity などの追加フィールドを使用することができます。

  • Linux

    id

    id フィールドは必須です。これにより、パッケージ名とアーキテクチャを使用してパッチを指定します。例: 'dhclient.x86_64'。ID にワイルドカードを使用すると、複数のパッケージを指定できます。例: 'dhcp*' および 'dhcp*1.*'

    title

    title フィールドはオプションですが、Linux システムでは追加のフィルタリング機能を提供します。title を使用する場合は、次のいずれかの形式でパッケージのバージョン情報を含める必要があります。

    YUM/SUSE Linux Enterprise Server (SLES):

    {name}.{architecture}:{epoch}:{version}-{release}

    APT

    {name}.{architecture}:{version}

    Linux のパッチタイトルでは、任意の位置に 1 つ以上のワイルドカードを使用して一致するパッケージの数を拡張することができます。例: '*32:9.8.2-0.*.rc1.57.amzn1'

    以下に例を示します。

    • apt パッケージのバージョン 1.2.25 が現在インスタンスにインストールされていますが、バージョン 1.2.27 が利用できるようになりました。

    • apt.amd64 バージョン 1.2.27 をパッチリストに追加します。これは apt utils.amd64 バージョン 1.2.27 に依存しますが、apt-utils.amd64 バージョン 1.2.25 がリストで指定されています。

    この場合、apt バージョン 1.2.27 のインストールはブロックされ、「Failed-NonCompliant」として報告されます。

その他のフィールド

Linux 用のパッチリストで提供する他のフィールドはオプションであり、情報提供のみを目的としています。特定のパッチに関する詳細情報を提供するために、classificationseverity などの追加フィールドを使用することができます。

サンプルパッチリスト

  • 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'
  • APT

    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'
  • 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'
  • 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 オプションを選択すると、パッチマネージャーが新しいパッチをインストールした場合、または INSTALLED_PENDING_REBOOT オペレーション中にステータスが Install になっているパッチを検出した場合、インスタンスは再起動されます。INSTALLED_PENDING_REBOOT ステータスは、NoReboot オペレーションを最後に実行したときに Install オプションが選択されていたことを意味します。(パッチマネージャーの外部にインストールされたパッチは、ステータスが INSTALLED_PENDING_REBOOT になることはありません。)

注記

RebootIfNeeded オプションを選択した場合、パッチマネージャーはパッチに伴って再起動が必要かどうかを評価しません。パッケージが見つからない場合やステータスが INSTALLED_PENDING_REBOOT になっているパッケージがある場合は、必ず再起動されます。

NoReboot

NoReboot オプションを選択すると、パッチマネージャーが Install オペレーション中にパッチをインストールした場合でも、インスタンスは再起動されません。このオプションは、パッチ適用後にインスタンスを再起動する必要がないことがわかっている場合や、パッチ適用操作の再起動によって中断されないアプリケーションまたはプロセスがインスタンスで実行されている場合に便利です。また、メンテナンスウィンドウを使用するなど、インスタンスの再起動のタイミングをより詳細に制御する場合にも役立ちます。

パッチのインストール追跡ファイル: パッチ (特にシステムの最後の再起動以降にインストールされたパッチ) のインストールを追跡するために、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