

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

# 针对多个 AWS 账户和地区的修补解决方案设计
<a name="design-multi-account-region"></a>

您可以扩展自动修补解决方案，以支持跨多个 AWS 账户和多个 AWS 区域的服务器。扩展解决方案包括通过共享服务帐户在每个 AWS 帐户中设置补丁自动化解决方案，并使用共享服务帐户 AWS CloudFormation StackSets 在账户之间配置资源数据同步。

## 自动化流程
<a name="multi-account-auto-process"></a>

下图阐明了该场景的架构。此架构 CloudFormation StackSets 包括 AWS 共享服务帐户。

 ![Reference architecture and workflow for patching mutable EC2 instances that span multiple AWS accounts and AWS Regions](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patch-management-hybrid-cloud/images/patching-process-multi-account-region.png) 

该工作流与上一节中描述的过程类似，但涉及以下其他步骤，其中步骤编号与图表中的标注相匹配：

1. 在共享服务账户中， CloudFormation 堆栈集用于配置 S3 存储桶，以便通过 Systems Manager 清单同步资源数据。

1.  CloudFormation 堆栈集使用 `automate-patch` Lambda 函数创建堆栈，设置补丁基准，并在应用程序账户上设置 Systems Manager Inventory 资源数据同步，以同步共享服务账户中的资源。

1. 应用程序账户中的资源信息与共享服务账户中的资源信息同步。

1. 使用 Amazon Athena 数据集获取同步资源信息，快速生成补丁合规性报告。

## 架构注意事项和限制
<a name="multi-account-considerations"></a>

### 每个账户的维护窗口
<a name="quota"></a>

上一节中说明和描述的架构为每个补丁组创建了一个维护窗口。但是，每个 AWS 账户的维护窗口数量配额为 50（假设您尚未申请增加服务限额）。如果您预计单个 AWS 账户中的补丁组数量超过 50 个，则此架构无法扩展以满足您的需求。

如果增加服务配额不足以满足您的需求，则有两种方法可以应对此挑战：使用预定义的维护窗口和使用 CloudWatch 事件。以下是每种方法的优势和劣势。

**选项 1。使用预定义的维护窗口**
+ 定义具有不同时间窗的维护窗口列表（例如，每个账户 15 到 20 个维护窗口）。
+ 应用程序团队从预定义列表中选择适合自己的维护窗口，并相应地标记实例。
+ 更新自动修补解决方案，将补丁组映射到选定的维护窗口，而不是创建新的维护窗口。

优点：
+ 简化的管理。

缺点：
+ 定义自定义维护窗口的灵活性较低。
+ 当多个补丁组共享维护窗口和补丁任务时，取消特定补丁组的特定补丁任务需要额外的手动操作。

**选项 2。使用 CloudWatch 事件触发补丁任务，而不是使用维护窗口**
+ 与其创建维护窗口，不 CloudWatch 如使用事件根据计划和补丁组触发补丁任务。
+ 在这种情况下，每个补丁组都与 CloudWatch 事件事件相关联，而不是与维护时段关联。
+ 更新自动修补解决方案以创建事件而不是维护窗口。

优点：
+ 可扩展设计。
+ 为定义自定义维护窗口提供灵活性。

缺点：
+ 维护时段提供了事件不提供的其他功能（例如持续时间和截止时间）。 CloudWatch 

### 其他考虑因素
<a name="other"></a>
+ 本节中描述的自动修补解决方案不支持已关闭的 EC2 实例。
+ 此过程支持公有子网中的 EC2 实例。要修补私有子网中的实例，必须部署[本地补丁存储库，例如 Windows Server Update Services (WSUS)](https://aws.amazon.com/blogs/mt/how-to-patch-windows-ec2-instances-in-private-subnets-using-aws-systems-manager/)。
+ 您必须调整运行 Lambda 函数的频率，以便根据所需的计划更新补丁组和维护窗口。