Terraform AWS Autoscaling
Auto Scaling groups with launch templates, instance refresh, health checks, scaling policies, mixed instance options, IAM instance profiles, and security group based network controls.
Quick start
module "autoscaling" {
source = "iso27001.compliance.tf/terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
# ... your arguments here
}module "autoscaling" {
source = "nis2.compliance.tf/terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
# ... your arguments here
}module "autoscaling" {
source = "soc2.compliance.tf/terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
# ... your arguments here
}module "autoscaling" {
source = "nistcsf.compliance.tf/terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
# ... your arguments here
}module "autoscaling" {
source = "pcidss.compliance.tf/terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
# ... your arguments here
}This module on the compliance.tf registry lists its versions, inputs and outputs. The Get Started guide and Registry Endpoints cover authentication and how to customize the module for your requirements.
Migration from upstream
Already using terraform-aws-modules? Change only the source URL:
module "autoscaling" {
source = "terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
}module "autoscaling" {
source = "soc2.compliance.tf/terraform-aws-modules/autoscaling/aws"
version = "~> 9.3"
}Same arguments. Same outputs. Controls are checked at terraform plan. The Migration Guide has the step-by-step version.
Reversibility
No lock-in. Switch back by reverting the source URL:
module "autoscaling" {
source = "terraform-aws-modules/autoscaling/aws"
}Run terraform init -upgrade. Terraform state is unchanged: same resource addresses, same provider, no compliance.tf-specific resources. Controls you already applied remain in AWS.
Controls enforced
Up to 2 controls are checked at terraform plan when this module comes from a compliance.tf endpoint. Which ones are active depends on the endpoint; see Framework coverage.
Mapped compliance frameworks
| Clause | Controls from this module |
|---|---|
| A.8.20 Network security | |
| A.8.21 Security of network services | |
| A.8.22 Segregation of networks |
| Clause | Controls from this module |
|---|---|
| 3 Incident handling |
| Clause | Controls from this module |
|---|---|
| CC6.1 The entity implements logical access security software, infrastructure, and architectures over protected information assets to protect them from security events to meet the entity's objectives | |
| CC6.6: The entity implements logical access security measures to protect against threats from sources outside its system boundaries. |
1 controls from this module are active under NIST Cybersecurity Framework v2.0.
| Clause | Controls from this module |
|---|---|
| 1.4.5 The disclosure of internal IP addresses and routing information is limited to only authorized parties |
Framework coverage
Which controls from this module are active under each framework endpoint. Your framework preferences choose the columns.
| Control | SOC 2 | PCI DSS v4.0 |
|---|---|---|
| EC2 launch templates should use Instance Metadata Service Version 2 (IMDSv2) | Enforced | Not active |
| EC2 launch templates should not assign public IPs to network interfaces | Enforced | Enforced |
Known Terraform limitations
Separately from the controls above, some things people ask this module for cannot be implemented by any module in any registry: they are limits of Terraform itself. Known limitations for this module lists the recurring ones: what causes each, the native workaround in full, and, where one exists, the opt-in Operational Rule that removes the need for a fork.