Creates an AWS Backup Framework with multiple controls for managing backup configurations and requirements.

Terraform Template

resource "aws_backup_framework" "Example" {

  control {

    input_parameter {
      name = "requiredRetentionDays"
      value = "35"
    }
    name = "BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK"
  }

  control {

    input_parameter {
      name = "requiredFrequencyUnit"
      value = "hours"
    }

    input_parameter {
      name = "requiredRetentionDays"
      value = "35"
    }

    input_parameter {
      name = "requiredFrequencyValue"
      value = "1"
    }
    name = "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK"
  }

  control {
    name = "BACKUP_RECOVERY_POINT_ENCRYPTED"
  }

  control {
    name = "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN"

    scope {
      compliance_resource_types = ["EBS"]
    }
  }

  control {
    name = "BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED"
  }

  control {

    input_parameter {
      name = "maxRetentionDays"
      value = "100"
    }

    input_parameter {
      name = "minRetentionDays"
      value = "1"
    }
    name = "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK"

    scope {
      compliance_resource_types = ["EBS"]
    }
  }

  control {

    input_parameter {
      name = "recoveryPointAgeUnit"
      value = "days"
    }

    input_parameter {
      name = "recoveryPointAgeValue"
      value = "1"
    }
    name = "BACKUP_LAST_RECOVERY_POINT_CREATED"

    scope {
      compliance_resource_types = ["EBS"]
    }
  }
  description = "this is an example framework"
  name = "exampleFramework"

  tags = {
    Name = "Example Framework"
  }
}