

• 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="maintenance-window-tutorial-patching"></a>

**重要**  
您可以继续使用此早期主题来创建用于修补的维护时段。但是，我们建议您使用补丁策略。有关更多信息，请参阅[Quick Setup 中的补丁策略配置](patch-manager-policies.md)和[使用 Quick Setup 补丁策略为组织中的实例配置修补](quick-setup-patch-manager.md)。

为了最大程度减少对服务器可用性的影响，我们建议您将维护时段配置为在不中断业务运营的时间运行修补。

您必须先为 Maintenance Windows（AWS Systems Manager 中的一项工具）配置角色和权限，然后才能开始此过程。有关更多信息，请参阅 [设置 Maintenance Windows](setting-up-maintenance-windows.md)。

**创建维护时段以进行修补**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)，打开 AWS Systems Manager 控制台。

1. 在导航窗格中，选择 **Maintenance Windows**。

1. 选择**创建维护时段**。

1. 在**名称**字段中输入一个名称，将其指定为用于修补关键更新和重要更新的维护时段。

1. （可选）对于**描述**，输入描述。

1. 如果您希望即便没有将托管式节点注册为目标，也允许维护时段任务在这些节点上运行，则选择 **Allow unregistered targets**（允许未注册的目标）。

   如果选择了此选项，您在将任务注册到维护时段时便可以选择已注销节点（按节点 ID）。

   如果未选择此选项，您在将任务注册到维护时段时就必须选择之前注册的目标。

1. 在 **Schedule (计划)** 部分的顶部，通过使用三个计划选项之一来为维护时段指定计划。

   有关构建 cron/rate 表达式的信息，请参阅 [参考：适用于 Systems Manager 的 Cron 和 Rate 表达式](reference-cron-and-rate-expressions.md)。

1. 对于 **Duration (持续时间)**，输入维护时段将运行的小时数。您指定的值根据维护时段的开始时间确定维护时段的具体结束时间。在最终结束时间减去您在下一步中为 **Stop initiating tasks (停止启动任务)** 指定的小时数后，不允许启动维护时段任务。

   例如，如果维护时段从下午 3 点开始，持续时间是 3 个小时，并且 **Stop initiating tasks (停止启动任务)** 值是 1 个小时，则下午 5 点之后将无法启动维护时段任务。

1. 在**停止启动任务**中，输入系统应该在维护时段结束前几小时停止计划要运行的新任务。

1. （可选）对于 **Window start date**（时段开始日期），请以 ISO-8601 扩展格式指定您希望维护时段变为活动状态的日期和时间。这让您可以将维护时段的激活时间推迟到指定的将来日期。

1. （可选）对于 **Window end date**（时段结束日期），请以 ISO-8601 扩展格式指定您希望维护时段变为不活动状态的日期和时间。这样可以设置在某个未来的日期和时间后不再运行维护时段。

1. （可选）对于**计划时区**，请以互联网编号分配机构（IANA）格式指定时区，计划的维护时段执行将基于该时区。例如：“America/Los\$1Angeles”、“etc/UTC”或“Asia/Seoul”。

   有关有效格式的更多信息，请参阅 IANA 网站上的 [Time Zone Database](https://www.iana.org/time-zones)。

1. （可选）在**管理标签**区域，将一个或多个标签键名称/值对应用到维护时段。

   标签是您分配给资源的可选元数据。标签可让您按不同的方式（如用途、拥有者或环境）对资源进行分类。例如，您可能需要标记此维护时段来标识它运行的任务的类型。在这种情况下，您可以指定以下键名/键值对：
   + `Key=TaskType,Value=Patching`

1. 选择**创建维护时段**。

1. 在维护时段列表中，请选择您刚刚创建的维护时段，然后选择**操作**和**注册目标**。

1. (可选) 在 **Maintenance window target details** 部分中，为此目标提供名称、描述和所有者信息 (您的姓名或别名)。

1. 对于**目标选择**，选择**指定实例标签**。

1. 对于**指定实例标签**，输入标签键和标签值来标识要注册到维护时段的节点，然后选择**添加**。

1. 选择**注册目标**。系统会创建维护时段目标。

1. 在创建的维护时段的详细信息页面中，选择 **Actions (操作)** 和 **Register Run command task (注册 Run Command 任务)**。

1. （可选）对于 **Maintenance window task details (维护时段任务详细信息)**，为此任务提供名称和描述。

1. 对于 **Command document (命令文档)**，选择 `AWS-RunPatchBaseline`。

1. 对于 **Task priority (任务优先级)**，请选择一个优先级。零 (`0`) 表示最高优先级。

1. 对于**目标**，在**定位方式** 下，选择在此过程中先前创建的维护时段目标。

1. 对于 **Rate control（速率控制）**：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的托管式节点的数量或百分比。
**注意**  
如果您通过指定应用于托管式节点的标签或指定 AWS Resource Groups 来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的节点上失败后，何时在其他托管式节点上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **IAM 服务角色**，选择一个角色以向 Systems Manager 提供运行维护时段任务时所承担的权限。

   如果您未指定服务角色 ARN，Systems Manager 将使用您账户中的服务相关角色。如果您的账户中没有适用于 Systems Manager 的适当服务相关角色，则将在成功注册任务后创建该角色。
**注意**  
为了改善安全状况，强烈建议您创建自定义策略和自定义服务角色来运行维护时段任务。可以精心设计该策略，只提供特定维护时段任务所需的权限。有关更多信息，请参阅 [设置 Maintenance Windows](setting-up-maintenance-windows.md)。

1. （可选）对于 **Output options (输出选项)**，要将命令输出保存到文件，请选中 **Enable writing output to S3 (启用将输出写入 S3)** 方框。在方框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给托管式节点的实例配置文件的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 AWS 账户 中，请确认与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

   要将输出流式传输到 Amazon CloudWatch Logs 日志组，请选择 **CloudWatch output (CloudWatch 输出)** 框。在该框中输入日志组名称。

1. 在 **SNS notifications (SNS 通知)** 部分中，如果希望发送有关命令执行状态的通知，请选中 **Enable SNS notifications (启用 SNS 通知)** 复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 对于 **Parameters (参数)**：
   + 对于 **Operation (操作)**，选择 **Scan (扫描)** 扫描缺失的补丁，或选择 **Install (安装)** 扫描并安装缺失的补丁。
   + 您不需要在 **Snapshot Id (快照 ID)** 字段中输入任何值。此系统将自动生成并提供此参数。
   + 除非您希望 Patch Manager 使用与为补丁基准指定的补丁集不同的补丁集，否则无需在 **Install Override List (安装覆盖列表)** 字段中输入任何内容。有关信息，请参阅[参数名称: `InstallOverrideList`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-installoverridelist)。
   + 对于**重启选项**，请指定您是希望在 `Install` 操作期间安装补丁时，还是在 Patch Manager 检测到自上次重启节点以来安装的其他补丁时重启节点。有关信息，请参阅[参数名称: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption)。
   + （可选）对于 **Comment (注释)**，输入有关此命令的跟踪备注或提醒。
   + 对于 **Timeout (seconds)（超时（秒））**，输入系统在认为操作失败前等待操作完成的秒数。

1. 选择**注册运行命令任务**。

维护时段任务完成后，您可以通过 Systems Manager 控制台中的 [Fleet Manager](fleet-manager.md) 工具查看补丁合规性详细信息。

您还可以在**合规性报告**选项卡上的[Patch Manager](patch-manager.md)工具中查看合规性信息。

您也可以使用 [DescribePatchGroupState](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchGroupState.html) 和 [DescribeInstancePatchStatesForPatchGroup](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstancePatchStatesForPatchGroup.html) API 来查看合规性详细信息。有关补丁合规性数据的信息，请参阅 [关于补丁合规性](compliance-about.md#compliance-monitor-patch)。

# 使用维护时段修补计划
<a name="sysman-patch-scheduletasks"></a>

配置补丁基准（可以选择配置补丁组）后，您可以使用维护时段将补丁应用于您的节点。维护时段通过让您指定在不中断业务运营的时间执行修补流程，可以减少对服务器可用性的影响。维护时段的操作如下：

1. 创建带修补操作计划的维护时段。

1. 通过为标签名称指定 `Patch Group` 或 `PatchGroup` 标签，并指定已定义 Amazon Elastic Compute Cloud (Amazon EC2) 标签的任意值（例如，“web 服务器”或“US-EAST-PROD”），来选择维护时段的目标。（如果[在 EC2 实例元数据中允许使用标签](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS)，则必须使用 `PatchGroup`，且不能使用空格。

1. 创建新的维护时段任务，并指定 `AWS-RunPatchBaseline` 文档。

在配置任务时，可以选择扫描节点，也可以选择扫描并安装节点上的补丁。如果选择扫描节点，则Patch Manager（AWS Systems Manager 中的一项工具）会扫描每个节点，并生成缺失补丁的列表供您审核。

如果选择扫描和安装补丁，Patch Manager 将扫描每个节点，并将已安装补丁的列表与基准中已批准补丁的列表进行比较。Patch Manager 将标识缺失的补丁，然后下载并安装所有缺失和批准的补丁。

如果希望执行一次性扫描或安装来修复问题，可以使用 Run Command 直接调用 `AWS-RunPatchBaseline` 文档。

**重要**  
在安装补丁后，Systems Manager 会重启每个节点。需要重启才能确保正确安装补丁，并确保系统不会使节点处于潜在的不良状态。（例外：如果将 `AWS-RunPatchBaseline` 文档中的 `RebootOption` 参数设置为 `NoReboot`，则在 Patch Manager 运行后不会重启托管式节点。有关更多信息，请参阅 [参数名称: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption)。） 