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

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

使用基准覆盖参数

您可以在运行时使用 Patch Manager ( Amazon Systems Manager 的一个功能)中的基准覆盖功能来定义修补首选项。通过指定包含一个带有补丁基准列表的 JSON 对象的 Amazon Simple Storage Service (Amazon S3) 存储桶来实施。该修补操作使用与主机操作系统匹配的 JSON 对象中提供的基准,而不是应用默认补丁基准中的规则。

注意

使用 BaselineOverride 参数不会覆盖参数中提供的基准的补丁合规性。输出结果记录在来自 Run Command ( Amazon Systems Manager 的一个功能)的标准输出日志中。结果仅打印标记为 NON_COMPLIANT 的软件包。这意味着软件包被标记为 MissingFailedInstalledRejected 或者 InstalledPendingReboot

使用快照 ID 的补丁基准覆盖,或者安装覆盖列表参数

在两种情况下,补丁基准覆盖具有值得注意的行为。

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

快照 ID 可确保特定修补命令中的所有托管式节点都应用相同的内容。例如,如果您一次修补 1000 个节点,则补丁相同。

当同时使用快照 ID 和补丁基准覆盖时,快照 ID 优先于补丁基准覆盖。仍将使用基准覆盖规则,但只会对其进行评估一次。在前面的示例中,1000 个托管式节点中的补丁仍始终相同。如果在修补操作的中程,您将引用的 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": [] } ]