亚马逊AWS官方博客

新增功能 – CloudFormation 配置偏离检测

AWS CloudFormation 支持您实施基础设施即代码 (IaC) 的努力。您可以使用模板来定义期望的 AWS 资源配置,然后使用它来启动 CloudFormation 堆栈。堆栈将包含模板中定义的资源集,并且已经按照规定进行配置。如果您需要更改配置,则需要更新模板并使用 CloudFormation 更改集来应用更改。您的模板将全面精确地规定您的基础设施,您可以放心随时使用它来创建全新的资源集。

这就是理想情景! 在现实中,许多组织仍然在努力全面实施 IaC。他们要培训员工,调整流程,这些工作都需要一定的时间才能完成。在此过渡期内,他们有时会直接对 AWS 资源(及其属性)作出更改,但没有更新模板。他们可能对作出快速的频带外修复以更改 EC2 实例类型,修复 Auto Scaling 参数,或者更新 IAM 权限。这些无管理的配置更改将在它全新启动时造成问题。正在运行的堆栈的配置已经偏离了模板,模板的描述也不再正确。在严重的情况下,更改甚至可能导致无法更新或删除堆栈。

新配置偏离检测

今天,为了解决我在上文介绍的问题,我们宣布推出强大的新配置偏离检测功能。在利用模板创建堆栈后,您可以从控制台、CLI 或您自己的代码检测配置偏离。您可以检测整个堆栈或特定资源的配置偏离,并在几分钟内查看结果。然后您将拥有必要的信息以更新模板,或根据需要让资源回到合规状态。

当您启动配置偏离检查时,CloudFormation 会对当前的堆栈配置与用于创建或更新堆栈的模板规定配置进行比较,然后报告任何差异,为您提供每项差异的详细信息。

我们正在推出对核心服务、资源和属性集的支持,并且计划在未来增加更多支持。支持的初步资源列表包括 API Gateway、Auto Scaling、CloudTrail、CloudWatch Events、CloudWatch Logs、DynamoDB、Amazon EC2、Elastic Load Balancing、IAM、AWS IoT、Lambda、Amazon RDS、Route 53、Amazon S3、Amazon SNS、Amazon SQS 等等。

您可以对处于 CREATE_COMPLETE、UPDATE_COMPLETE、UPDATE_ROLLBACK_COMPLETE 和 UPDATE_ROLLBACK_FAILED 状态的堆栈进行配置偏离检测。配置偏离检测不适用于嵌入在您所检查堆栈内的其他堆栈;您可以自行执行这些检测。

从操作菜单中执行配置偏离检测

我借助撰写 Provisioned Throughput for Amazon EFS 一文时使用的简单堆栈对此功能进行了测试。我直接选择该堆栈,然后从 Action 菜单选择 Detect drift

我确认我的意图并单击 Yes, detect

配置偏离检测会立即开始;我可以在它运行期间 Close 窗口:

在它完成后,我可以看到我堆栈的 Drift status 为 IN_SYNC:

我还可以通过 Resources 选项卡查看所检查各项资源的配置偏离状态:

现在我将编辑 IAM 角色,添加新的策略,从而创建一个假冒的更改:

我会在一秒钟内检测到偏离,并且这次我发现(并不意外)我的堆栈的配置已经偏离:

我单击“View details”并检查 Resource drift status 来了解更多信息:

我可以展开被修改的资源的状态行,以了解有关配置偏离的更多信息:

现已推出
此功能现已面向以下区域推出,您可以立即开始使用:美国东部(弗吉尼亚北部)美国东部(俄亥俄)美国西部(加利福尼亚北部)美国西部(俄勒冈)加拿大(中部)亚太地区(孟买)亚太地区(首尔)亚太地区(新加坡)亚太地区(悉尼)亚太地区(东京)欧洲(法兰克福)欧洲(爱尔兰)欧洲(伦敦)欧洲(巴黎)以及南美洲(圣保罗)。正如我上面所指出,我正在推出对强大的初步资源集的支持,并且计划在未来几月增加更多支持。

 

 

本篇作者

Jeff Barr

AWS 首席布道师; 2004年开始发布博客,此后便笔耕不辍。