tfplan sentinel policies in Terraform
Terrform policies fall into three broad categories – tfplan based, tfconfig based and tfstate based policies. This post discusses a couple of common tfplan based policies.
A simple tfplan sentinel policy to restrict to certain types of resources
import "tfplan"
# Limit Google Cloud compute resources to stay below compute n1-standard-16 (16 cores)
allowed_machine_types = [
"n1-standard-1",
"n1-standard-2",
"n1-standard-4",
"n1-standard-8",
]
main = rule {
all tfplan.resources as r {
r.attr.machine_type in allowed_machine_types
}
}
Another tfplan policy to restrict regions for resources
import "env"
import "tfplan"
# Only provision staging resources in us-west and production resources in us-east
valid_regions = {"staging": "us-west-1", "production": "us-east-1"}
main = rule {
all tfplan.config.providers as p {
p.type is not "aws" or
p.config.region == valid_regions[env.ENV]
}
}
tfconfig Policies
Coming Soon
tfstate Policies
Coming Soon
Leave a Reply