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
}