Terraform

Definition

Terraform is an open-source Infrastructure as Code (IaC) tool developed by HashiCorp that enables users to define and provision data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language (HCL). It allows for the automation of infrastructure management tasks, such as creating, updating, and versioning infrastructure safely and efficiently. Terraform supports a wide range of cloud providers and services, making it a versatile tool for managing cloud and on-premises resources.

Secure Settings Example

provider "aws" {
  region = "us-west-2"
}

resource "aws_s3_bucket" "secure_bucket" {
  bucket = "my-secure-bucket"

  versioning {
    enabled = true
  }

  server_side_encryption_configuration {
    rule {
      apply_server_side_encryption_by_default {
        sse_algorithm = "AES256"
      }
    }
  }

  lifecycle {
    prevent_destroy = true
  }
}

Insecure Settings Example

provider "aws" {
  region = "us-west-2"
}

resource "aws_s3_bucket" "insecure_bucket" {
  bucket = "my-insecure-bucket"

  # Versioning is not enabled
  # No server-side encryption
  # Lifecycle rule allows destruction
}