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

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

使用基准覆盖参数

您可以在运行时使用修补程序管理器中的基线覆盖功能定义修补首选项(Amazon Web Services Systems Manager。通过指定一个 Amazon Simple Storage Service (Amazon S3) 存储桶,该存储桶包含一个包含补丁基准列表的 JAR 数据元。修补操作使用与主机操作系统匹配的 JSON 对象中提供的基准,而不是应用默认修补程序基准中的规则。

注意

使用BaselinOverride参数不会覆盖参数中提供的基线的修补程序合规性。输出结果记录在来自运行命令的标准输出日志中,Amazon Web Services Systems Manager。结果仅打印标记为NON_COMPLIANT。这意味着包被标记为MissingFailedInstalledRejected,或者InstalledPendingReboot

将修补程序基准覆盖与快照 ID 或安装覆盖列表参数一起使用

在两种情况下,修补程序基线覆盖具有值得注意的行为。

同时使用基线覆盖和快照 ID

快照 ID 可确保特定修补命令中的所有实例都应用相同的内容。例如,如果您一次修补 1,000 个实例,则修补程序将是相同的。

当同时使用快照 ID 和修补程序基准覆盖时,快照 ID 优先于修补程序基准覆盖。仍将使用基线覆盖规则,但它们只会被评估一次。在前面的示例中,1,000 个实例中的修补程序仍将始终相同。如果在修补操作过程中,您将引用的 S3 存储桶中的 JSON 文件更改为不同的内容,则应用的修补程序仍然是相同的。这是因为提供了快照 ID。

同时使用基准覆盖和安装覆盖列表

您不能同时使用这两个参数。如果提供了两个参数,则修补文档将失败,并且它不会在实例上执行任何扫描或安装。

代码示例

以下 Python 代码示例说明了如何生成修补程序基线覆盖。

import boto3 import json ssm = boto3.client('ssm') s3 = boto3.resource('s3') s3_bucket_name = 'my-baseline-override-bucket' s3_file_name = 'MyBaselineOverride.json' baseline_ids_to_export = ['pb-0000000000000000', 'pb-0000000000000001'] baseline_overrides = [] for baseline_id in baseline_ids_to_export: baseline_overrides.append(ssm.get_patch_baseline( BaselineId=baseline_id )) json_content = json.dumps(baseline_overrides, indent=4, sort_keys=True, default=str) s3.Object(bucket_name=s3_bucket_name, key=s3_file_name).put(Body=json_content)

这将产生类似下面的补丁基准覆盖。

[ { "ApprovalRules": { "PatchRules": [ { "ApproveAfterDays": 0, "ComplianceLevel": "UNSPECIFIED", "EnableNonSecurity": false, "PatchFilterGroup": { "PatchFilters": [ { "Key": "PRODUCT", "Values": [ "*" ] }, { "Key": "CLASSIFICATION", "Values": [ "*" ] }, { "Key": "SEVERITY", "Values": [ "*" ] } ] } } ] }, "ApprovedPatches": [], "ApprovedPatchesComplianceLevel": "UNSPECIFIED", "ApprovedPatchesEnableNonSecurity": false, "GlobalFilters": { "PatchFilters": [] }, "OperatingSystem": "AMAZON_LINUX_2", "RejectedPatches": [], "RejectedPatchesAction": "ALLOW_AS_DEPENDENCY", "Sources": [] }, { "ApprovalRules": { "PatchRules": [ { "ApproveUntilDate": "2021-01-06", "ComplianceLevel": "UNSPECIFIED", "EnableNonSecurity": true, "PatchFilterGroup": { "PatchFilters": [ { "Key": "PRODUCT", "Values": [ "*" ] }, { "Key": "CLASSIFICATION", "Values": [ "*" ] }, { "Key": "SEVERITY", "Values": [ "*" ] } ] } } ] }, "ApprovedPatches": [ "open-ssl*" ], "ApprovedPatchesComplianceLevel": "UNSPECIFIED", "ApprovedPatchesEnableNonSecurity": false, "GlobalFilters": { "PatchFilters": [] }, "OperatingSystem": "CENTOS", "RejectedPatches": [ "python*" ], "RejectedPatchesAction": "ALLOW_AS_DEPENDENCY", "Sources": [] } ]