【问题标题】:CloudFormation resources not updated on regular deploymentCloudFormation 资源未在常规部署时更新
【发布时间】:2020-09-30 05:08:28
【问题描述】:

我们的团队遇到了一个问题,有人为操作事件手动修改了 IAM 角色。我们希望 CloudFormation 堆栈重新部署能够恢复 IAM 角色的状态,但是,手动更改仍然存在。

我的工作理论是,由于 IAM 角色 arn 是相同的,CloudFormation 不会删除并重新创建它。那准确吗?如果是这样,我们如何确保在部署期间拆除所有相关资源?

【问题讨论】:

  • 这个漂移问题是许多组织选择 terraform 而不是 cloudformation 的原因。
  • 进展如何。还不清楚吗?

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

我的工作理论是,由于 IAM 角色 arn 是相同的,CloudFormation 不会删除并重新创建它。准确吗?

CloudFormation (CFN) 不会检查任何超出其控制范围的更改。您可以删除该角色,CFN 仍会“认为”该角色存在。

如果您在 CFN 之外手动更改由 CFN 创建的资源(不好的做法),您就有了所谓的stack drift。 CFN 本身不知道对其创建的资源所做的任何超出其控制的更改。但是,CFN 提供了特殊的工具,您必须显式调用这些工具来检测漂移:

并非所有资源都支持漂移检测,但 AWS::IAM::Role 是其中之一。

如果是这样,我们如何确保在部署期间拆除所有相关资源?

不知道你在这里是什么意思。但您必须手动修复漂移。您有四个选择:

  1. 将角色改回原来的状态,
  2. 更新模板以反映外部更改,
  3. 使用import 将更改后的角色导入堆栈,
  4. 删除整个堆栈,并从原始模板创建新的。

最后一个选项确保修改后的角色也被删除并以其原始形式重新创建。

【讨论】:

    猜你喜欢
    • 2017-08-03
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 2017-05-16
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多