本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
针对多个 AWS 账户和地区的修补解决方案设计
您可以扩展自动修补解决方案,以支持跨多个 AWS 账户和多个 AWS 区域的服务器。扩展解决方案包括通过共享服务帐户在每个 AWS 帐户中设置补丁自动化解决方案,并使用共享服务帐户 AWS CloudFormation StackSets 在账户之间配置资源数据同步。
自动化流程
下图阐明了该场景的架构。此架构 AWS CloudFormation StackSets 包括 AWS 共享服务帐户。
该工作流与上一节中描述的过程类似,但涉及以下其他步骤,其中步骤编号与图表中的标注相匹配:
-
在共享服务账户中, AWS CloudFormation 堆栈集用于配置 S3 存储桶,以便通过 Systems Manager 清单同步资源数据。
-
CloudFormation 堆栈集使用
automate-patch
Lambda 函数创建堆栈,设置补丁基准,并在应用程序账户上设置 Systems Manager Inventory 资源数据同步,以同步共享服务账户中的资源。 -
应用程序账户中的资源信息与共享服务账户中的资源信息同步。
-
QuickSight 使用 Amazon Athena 数据集生成补丁合规性报告,获取同步的资源信息。
架构注意事项和限制
每个账户的维护窗口
上一节中说明和描述的架构为每个补丁组创建了一个维护窗口。但是,每个 AWS 账户的维护窗口数量配额为 50(假设您尚未申请增加服务限额)。如果您预计单个 AWS 账户中的补丁组数量超过 50 个,则此架构无法扩展以满足您的需求。
如果增加服务配额不足以满足您的需求,则有两种方法可以应对此挑战:使用预定义的维护时段和使用 CloudWatch 事件。以下是每种方法的优势和劣势。
选项 1。使用预定义的维护窗口
-
定义具有不同时间窗的维护窗口列表(例如,每个账户 15 到 20 个维护窗口)。
-
应用程序团队从预定义列表中选择适合自己的维护窗口,并相应地标记实例。
-
更新自动修补解决方案,将补丁组映射到选定的维护窗口,而不是创建新的维护窗口。
优点:
-
简化的管理。
缺点:
-
定义自定义维护窗口的灵活性较低。
-
当多个补丁组共享维护窗口和补丁任务时,取消特定补丁组的特定补丁任务需要额外的手动操作。
选项 2。使用 CloudWatch 事件触发补丁任务,而不是使用维护窗口
-
与其创建维护窗口,不 CloudWatch 如使用事件根据时间表和补丁组触发补丁任务。
-
在这种情况下,每个补丁组都与 CloudWatch 事件事件相关联,而不是与维护时段关联。
-
更新自动修补解决方案以创建事件而不是维护窗口。
优点:
-
可扩展设计。
-
为定义自定义维护窗口提供灵活性。
缺点:
-
维护时段提供了事件不提供的其他功能(例如持续时间和截止时间)。 CloudWatch
其他考虑因素
-
本节中描述的自动修补解决方案不支持已关闭的 EC2实例。
-
此过程支持公有子网中的 EC2 实例。要修补私有子网中的实例,必须部署本地补丁存储库,例如 Windows Server Update Services (WSUS)
。 -
您必须调整运行 Lambda 函数的频率,以便根据所需的计划更新补丁组和维护窗口。