关于AWS-RunPatchBaselineAssociationSSM 文档 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

关于AWS-RunPatchBaselineAssociationSSM 文档

类似于AWS-RunPatchBaseline文档,AWS-RunPatchBaselineAssociation在实例上执行修补操作以执行安全相关更新和其他更新类型。您也可以使用文档AWS-RunPatchBaselineAssociation为操作系统和应用程序应用补丁。(打开Windows Server,应用程序支持仅限于 Microsoft 发布的应用程序的更新。)

注意

AWS-RunPatchBaselineAssociation混合环境中的本地服务器和虚拟机 (VM) 不支持。

本文档支持 Linux 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,macOS, 和Windows Server. 此文档将为每个平台执行适当的操作,在 Linux 上调用 Python 模块和macOS实例以及 Windows 实例上的 PowerShell 模块。

AWS-RunPatchBaselineAssociation,但是,不同于AWS-RunPatchBaseline通过以下方式:

  • AWS-RunPatchBaselineAssociation主要用于使用Quick Setup,功能为Amazon Systems Manager. (当使用Quick Setup主机管理配置类型(如果选择每天扫描实例以查找缺少的补丁,系统使用AWS-RunPatchBaselineAssociation用于操作。)

    但是,在大多数情况下,在设置自己的修补操作时,应选择AWS-RunPatchBaseline或者AWS-RunPatchBaselineWithHooks而非AWS-RunPatchBaselineAssociation.

  • 当您使用AWS-RunPatchBaselineAssociation文档中,您可以在文档的BaselineTags参数字段。如果您的 Amazon Web Services 账户 共享这些标签,Patch Manager,功能为Amazon Systems Manager,在目标实例上运行时使用该标记的基线,而不是当前为操作系统类型指定的 “默认” 修补程序基线。

    重要

    如果您选择使用AWS-RunPatchBaselineAssociation在修补操作以外的修补操作中使用Quick Setup,并且您想要使用其可选的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运行时,它收集的修补程序合规性数据将使用PutComplianceItemsAPI 命令而不是PutInventory命令,该命令由AWS-RunPatchBaseline. 这种差异意味着,每个特定的关联. 在此关联之外生成的修补程序合规性数据不会被覆盖。

  • 运行后报告的修补程序合规性信息AWS-RunPatchBaselineAssociation指示实例是否符合规定。它不包括修补程序级别的详细信息,如以下Amazon Command Line Interface(Amazon 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"
            }
        ]
    }

如果已将标签 key pair 值指定为AWS-RunPatchBaselineAssociation文档,Patch Manager搜索与操作系统类型匹配且已使用相同标签密钥对进行标记的自定义修补程序基线。此搜索不限于当前指定的默认补丁程序基线或分配给修补程序组的基线。如果未找到具有指定标签的基线,Patch Manager下一步查找修补程序组(如果在运行AWS-RunPatchBaselineAssociation. 如果没有匹配的修补程序组,Patch Manager回退到操作系统帐户的当前默认补丁基准。

如果找到多个修补程序基线,其中包含AWS-RunPatchBaselineAssociation文档,Patch Manager返回一条错误消息,指示只能使用该键值对标记一个修补程序基线,以便继续执行操作。

注意

在 Linux 实例上,每种实例类型的相应软件包管理器用于安装软件包:

  • Amazon Linux、Amazon Linux、CentOS、Oracle Linux 和RHEL实例使用 YUM。对于 YUM 操作,Patch Manager需要Python 2.6或更高版本.

  • Debian 服务器和 Ubuntu 服务器实例使用 APT。对于 APT 的业务,Patch Manager需要Python 3.

  • SUSE Linux Enterprise Server 实例使用 Zypper。对于 Zypper 操作,Patch Manager需要Python 2.6或更高版本.

扫描完成后,或安装完所有已批准和适用的更新后,根据需要执行重启,然后在实例上生成补丁合规性信息,并向补丁合规性服务报告。

注意

如果RebootOption参数设置为NoReboot中的AWS-RunPatchBaselineAssociation文档时,实例不会在Patch Manager运行。有关更多信息,请参阅参数名称: RebootOption

有关查看补丁合规性数据的信息,请参阅关于补丁合规性

AWS-RunPatchBaselineAssociation 个参数

AWS-RunPatchBaselineAssociation支持四个参数。OperationAssociationId 参数是必需的。这些区域有:InstallOverrideListRebootOption, 和BaselineTags参数是可选的。

参数名称: Operation

用量:必填项。

选项Scan | Install

Scan

在选择Scan选项,AWS-RunPatchBaselineAssociation确定实例的修补程序合规性状态,并将此信息报告回Patch Manager.Scan不会提示安装更新或重新启动实例。相反,此操作会标识缺少哪些已批准并且适用于此实例的更新。

安装

在选择Install选项,AWS-RunPatchBaselineAssociation尝试安装实例中缺失的已批准并且适用的更新。修补程序合规性信息生成为Install操作不会列出任何缺失的更新,但是,如果更新的安装因任何原因失败,它会报告处于失败状态的更新。只要在实例上安装了更新,就一定会重启实例,以确保更新正常安装和激活。(例外:如果RebootOption参数设置为NoReboot中的AWS-RunPatchBaselineAssociation文档时,实例不会在Patch Manager运行。 有关更多信息,请参阅 。参数名称: RebootOption。)

注意

如果安装了基准规则指定的修补程序优化前 Patch Manager更新实例,系统可能无法按预期重新启动。当补丁是由用户手动安装或由其他程序(例如unattended-upgradesUbuntu 服务器上的软件包。

参数名称: BaselineTags

用量:可选。

BaselineTags是您选择并分配给单个自定义补丁基准的唯一标签键值对。您可以为此参数指定一个或多个值。以下两种格式都有效:

Key=tag-key,Values=tag-value

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

这些区域有:BaselineTags值被使用Patch Manager以确保在单一操作中修补的一组实例都具有完全相同的一组已批准补丁。当修补操作运行时,Patch Manager检查操作系统类型的修补程序基线是否使用您指定的相同键值对进行标记BaselineTags. 如果存在匹配项,则使用此自定义修补程序基线。如果不匹配,则根据为修补操作指定的任何修补程序组来标识修补程序基准。如果没有,Amazon使用该操作系统的托管预定义修补程序基准。

其他权限要求

如果您将AWS-RunPatchBaselineAssociation在修补操作以外的修补操作中使用Quick Setup,并且您想要使用可选的BaselineTags参数,则必须将以下权限添加到实例配置文件Amazon Elastic Compute Cloud (Amazon EC2) 实例。

注意

Quick Setup和AWS-RunPatchBaselineAssociation不支持本地服务器和虚拟机 (VM)。

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

Replace补丁基线 ARN与要提供访问的补丁基准的 Amazon 资源名称 (ARN),格式为arn:aws:ssm:us-east-2:123456789012:patchbaseline/pb-0c10e65780EXAMPLE.

参数名称: AssociationId

用量:必填项。

AssociationId是现有关联的 IDState Manager,功能为Amazon Systems Manager. 它被用于Patch Manager将合规性数据添加到指定的关联。通过将修补结果作为关联合规性数据而不是库存合规性数据发送,您的实例的现有库存合规性信息不会在修补操作后被覆盖,也不会覆盖其他关联 ID。如果还没有要使用的关联,可以通过运行创建关联命令。例如:

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 列表中指定的内容反映补丁状态。也就是说,Scan 操作会忽略 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。对于验证工具选项,请在 Web 中搜索“yaml 格式验证程序”。

  • Microsoft Windows

    id

    id 字段是必需的。它用来使用 Microsoft 知识库 ID(例如 KB2736693)和 Microsoft 安全公告 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 补丁标题,您可以在任意位置使用一个或多个通配符来扩展匹配软件包的数量。例如:'*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选项,在以下任一情况下将重启实例:

  • Patch Manager已安装一个或多个补丁。

    Patch Manager不评估重新启动是否为必需通过修补程序。即使修补程序不需要重新启动,系统也会重新启动。

  • Patch Manager检测一个或多个状态为INSTALLED_PENDING_REBOOTInstalloperation.

    INSTALLED_PENDING_REBOOT 状态可能意味着上次运行 Install 操作时选择了 NoReboot 选项。

    注意

    安装在Patch Manager从来没有被赋予INSTALLED_PENDING_REBOOT.

在这两种情况下重新启动实例可确保从内存中刷新更新的软件包,并在所有操作系统中保持修补和重新启动行为一致。

NoReboot

在选择NoReboot选项,Patch Manager即使实例在Installoperation. 如果您知道您的实例在应用补丁后不需要重启,或者您的应用程序或进程在实例上运行,但不应因修补操作重启而中断,则此选项非常有用。当您希望更多地控制实例重启的时间(例如,使用维护时段)时,该选项也很有用。

修补程序安装跟踪文件:为了跟踪补丁安装,特别是自上次重启系统以来安装的补丁,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