AWS Certified SysOps Administrator – Associate — Question 347
A company uses AWS CloudFormation to deploy its application infrastructure. Recently, a user accidentally changed a property of a database in a CloudFormation template and performed a stack update that caused an interruption to the application. A SysOps administrator must determine how to modify the deployment process to allow the DevOps team to continue to deploy the infrastructure, but prevent against accidental modifications to specific resources.
Which solution will meet these requirements?
Answer options
- A. Set up an AWS Config rule to alert based on changes to any CloudFormation stack. An AWS Lambda function can then describe the stack to determine if any protected resources were modified and cancel the operation.
- B. Set up an Amazon EventBridge event with a rule to initiate based on any CloudFormation API call. An AWS Lambda function can then describe the stack to determine if any protected resources were modified and cancel the operation.
- C. Launch the CloudFormation templates using a stack policy with an explicit allow for all resources and an explicit deny of the protected resources with an action of Update:*.
- D. Attach an IAM policy to the DevOps team role that prevents a CloudFormation stack from updating, with a condition based on the specific Amazon Resource Names (ARNs) of the protected resources.
Correct answer: C
Explanation
A CloudFormation stack policy is specifically designed to prevent accidental updates to stack resources by defining which resources can be updated. By applying a stack policy with an explicit deny on 'Update:*' for specific resources while allowing all others, you ensure those protected resources cannot be modified during a stack update. Other methods, such as reactive Lambda functions or IAM policies, are either too complex, reactive rather than preventative, or cannot target specific resources within a CloudFormation stack update context effectively.