Search code examples
amazon-web-servicesamazon-s3aws-cloudformationpolicy

Same CloudFormation template to parameterize DeletionPolicy?


As a DevOps guy I wanted to use the same template to provision both Dev and Prod stacks... Where dev stacks should not have any DeletionPolicy but Prod stacks should utilize a DeletionPolicy

So, at first sight CFT gives an ok tooling for this but.... there is no possibility to parametrize S3 DeletionPolicy (that I've been able to locate at least)...

Here's some threads I dug up

The suggested workaround from AWS was to make the whole resource conditional, which leads us duplicating the resource and create a „Deletable and „Undeletable versions of it and all the depending resources should handle that condition...

This seems wonky and bloated, is there a way to parameterize this or a better methodology to accomplish my end goal?


Solution

  • Doesn't seem like there's an option in CFT other than resource duplication.

    What you can do is create a Lambda with a Python script that would setup the S3 deletion policy. That Lambda function can be triggered through SNS during CloudFormation stack creation. Here is described how this can be configured: Is it possible to trigger a lambda on creation from CloudFormation template

    But in your particular case I'd go with resource duplication in same CFT.