在创建stack的最后一部分,我们可以选择termination protection,可以禁止删除我们的Stack。但是需要注意的是,用户可以手动disable掉termination protection,然后删除,因此IAM的权限很重要
stackpolicy可以限制我们在这个stack里面可以对什么resource资源进行修改。和IAM类似,他也是JSON格式
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
他的配置地点也是最后一页
例如,下面的stackpolicy允许修改所有资源,除了数据库
{
"Statement" : [
{
"Effect" : "Allow",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "*"
},
{
"Effect" : "Deny",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "LogicalResourceId/ProductionDatabase"
}
]
}
这个是我们在定义resource的时候的一个参数。他的作用是决定当我们删除stack时候,我们创建的这个resource应该做什么操作。默认操作是一起删除,但是我们指定了deletionpolicy之后,我们有三个选项:delete,retain和snapshot,分别代表删除,保留和快照
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html
例如:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"myS3Bucket" : {
"Type" : "AWS::S3::Bucket",
"DeletionPolicy" : "Retain"
}
}
}
和其他的AWS 服务一样,我们同样可以使用IAM来配置对应的权限。正如第一个方式termination protection里面说的,我们必须限制用户的权限,不然他可以通过修改配置选项来绕过各种保护性措施。
AWS Cloudformation Stack 保护性措施
原文:https://blog.51cto.com/beanxyz/2489211