使用基准覆盖参数 - 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

但是,当补丁操作使用补丁策略时,系统会传递关联的 S3 存储桶中的覆盖参数,并更新托管式节点的合规性值。有关补丁策略的更多信息,请参阅 使用 Quick Setup 补丁策略

使用快照 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": [] } ]