CloudFormation堆栈非常适合自动化,但我看到的问题是它们可以轻松删除,反过来级联删除其他资源。
我已经找到了后一个问题的解决方案,可以通过修改它的删除策略来保护每个资源。但是整个堆栈怎么样?可以保护吗?
答案 0 :(得分:3)
我认为唯一的方法是限制您使用的IAM用户的权限。您可以从所有相关用户中删除“删除堆栈”权限。
答案 1 :(得分:1)
AFAIK没有可用于堆栈本身的删除保护。您可以做的最好是在每个资源级别使用"DeletionPolicy" : "Retain"。
答案 2 :(得分:1)
2017年9月他们added "Termination Protection"。您可以通过console或aws-cli启用它。您还可以使用" cloudformation:UpdateTerminationProtection"来控制角色是否可以设置它。权限。
答案 3 :(得分:0)
保护它的另一种方法是创建一个管理堆栈的包装器应用程序,然后围绕CloudFormation创建保护策略。例如,您的包装器应用程序可以具有stack
的数据库模型,如下所示:
String: name -- name of the stack
String: template -- JSON template for the stack
String: createdby -- name of the user that created the stack
Boolean: protected -- true if protected.
这将要求所有用户使用此应用程序来创建/删除堆栈,并且实施的工作比AWS IAM要多得多,但对于某些人来说,它可能符合要求。
希望它有所帮助。