Skip to content

AWS API deployments do not enable Create before Destroy

Description

It is recommended to enable create_before_destroy argument inside the resource lifecycle configuration block to avoid possible return errors such as `BadRequestException: Active stages pointing to this deployment must be moved or deleted` on recreation.

Code Example

go
resource "aws_api_gateway_deployment" "example" {
  rest_api_id = aws_api_gateway_rest_api.example.id
  stage_name  = "example"
  
+ lifecycle {
+   create_before_destroy = true
+ }
}

Remediation

CloudFormation

CloudFormation creates a new deployment first and then will delete the old one automatically.

Terraform

Rule Details

FieldValue
IDIAC-0265
SeverityLOW
IaC TypeTerraform
FrameworksTerraform
Checkov IDCKV_AWS_217

References