

• AWS Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 使用基准覆盖参数
<a name="patch-manager-baselineoverride-parameter"></a>

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

**重要**  
`BaselineOverride` 文件名不能包含以下字符：反引号 (`)、单引号 (')、双引号 (") 和美元符号 ($)。

除非补丁操作使用补丁策略，否则使用 `BaselineOverride` 参数不会覆盖参数中提供的基准的补丁合规性。输出结果记录在来自 Run Command（AWS Systems Manager 中的一项工具）的标准输出日志中。结果仅打印标记为 `NON_COMPLIANT` 的软件包。这意味着软件包被标记为 `Missing`、 `Failed`、 `InstalledRejected` 或者 `InstalledPendingReboot`。

但是，当补丁操作使用补丁策略时，系统会传递关联的 S3 存储桶中的覆盖参数，并更新托管式节点的合规性值。有关补丁策略的更多信息，请参阅 [Quick Setup 中的补丁策略配置](patch-manager-policies.md)。

**注意**  
当您修补仅使用 IPv6 的节点时，请确保提供的 URL 可从该节点访问。如果将 SSM Agent 配置选项 `UseDualStackEndpoint` 设置为 `true`，则在提供 S3 URL 时将使用双堆栈 S3 客户端。有关将代理配置为使用双堆栈的更多信息，请参阅 [教程：在仅支持 IPv6 的环境中修补服务器](patch-manager-server-patching-iPv6-tutorial.md)。

## 使用快照 ID 的补丁基准覆盖，或者安装覆盖列表参数
<a name="patch-manager-baselineoverride-parameter-other-parameters"></a>

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

**同时使用基准覆盖和快照 ID**  
快照 ID 可确保特定修补命令中的所有托管式节点都应用相同的内容。例如，如果您一次修补 1000 个节点，则补丁相同。

当同时使用快照 ID 和补丁基准覆盖时，快照 ID 优先于补丁基准覆盖。仍将使用基准覆盖规则，但只会对其进行评估一次。在前面的示例中，1000 个托管式节点中的补丁仍始终相同。如果在修补操作的中程，您将引用的 S3 存储桶中的 JSON 文件更改为不同的内容，应用的补丁仍将保持不变。这是因为提供了快照 ID。

**同时使用基准覆盖和安装覆盖列表**  
您不能同时使用这两个参数。如果提供了两个参数，则修补文档将失败，并且不会在托管式节点上执行任何扫描或安装。

## 代码示例
<a name="patch-manager-baselineoverride-parameter-code"></a>

以下 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": "SUSE", 
        "RejectedPatches": [
            "python*"
        ], 
        "RejectedPatchesAction": "ALLOW_AS_DEPENDENCY", 
        "Sources": []
    }
]
```