L'infrastructure as code déclarative décrit l'état souhaité de l'infrastructure dans des fichiers, plutôt que les étapes pour l'obtenir. Avec Terraform, on écrit les ressources voulues en HCL, et l'outil compare avec l'état réel pour calculer les changements. La configuration est versionnée et reproductible.
Exemple
resource "aws_s3_bucket" "logs" { bucket = "mon-bucket-logs" }