Sign in
Menu
Sign up
Docs
Terraform modules for AWSNetworking & Edge

Terraform AWS VPC

VPCs with public and private subnets, route tables, NAT gateways, Internet gateways, VPC endpoints, flow logs, network ACLs, and security group foundations for workload isolation.

Quick start

module "vpc" {
  source  = "iso27001.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "soc2.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "cfrpart11.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "eugmpannex11.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "fedramplow.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "fedrampmoderate.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "hipaa.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... your arguments here
}
module "vpc" {
  source  = "nist800171.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"

  # ... 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 "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "~> 6.7"
}
module "vpc" {
  source  = "soc2.compliance.tf/terraform-aws-modules/vpc/aws"
  version = "~> 6.7"
}

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 "vpc" {
  source  = "terraform-aws-modules/vpc/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 4 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

ClauseControls from this module
C1.2 The entity disposes of confidential information to meet the entity's objectives related to confidentiality
CC6.6: The entity implements logical access security measures to protect against threats from sources outside its system boundaries.
CC7.2: The entity monitors system components and the operation of those components for anomalies that are indicative of malicious acts, natural disasters, and errors affecting the entity's ability to meet its objectives; anomalies are analyzed to determine whether they represent security events.
CC7.3 The entity evaluates security events to determine whether they could or have resulted in a failure of the entity to meet its objectives (security incidents) and, if so, takes actions to prevent or address such failures
P4.2 The entity retains personal information consistent with the entity's objectives related to privacy
PI1.4 System outputs are complete, accurate, distributed only to intended parties, and retained to meet the entity's processing integrity commitments and system requirements
ClauseControls from this module
11.10(c) Protection of records to enable their accurate and ready retrieval throughout the records retention period
11.10(d) Limiting system access to authorized individuals
11.10(e) Use of secure, computer-generated, time-stamped audit trails to independently record the date and time of operator entries and actions that create, modify, or delete electronic records
11.30 Controls for open systems
ClauseControls from this module
Audit Record Retention (AU-11)
Boundary Protection (SC-7)
Protection of Audit Information (AU-9)
ClauseControls from this module
164.308(a)(1)(ii)(B) Risk Management
164.308(a)(4)(ii)(A) Isolating health care clearinghouse functions
164.312(a)(2)(iv) Encryption and decryption
164.312(b) Audit controls
164.312(e)(1) Transmission security
164.312(e)(2)(ii) Encryption
ClauseControls from this module
3.13.11 Employ FIPS-validated cryptography when used to protect the confidentiality of CUI
3.13.16: Protect the confidentiality of CUI at rest.
3.3.1: Create and retain system audit logs and records to the extent needed to enable the monitoring, analysis, investigation, and reporting of unlawful or unauthorized system activity
3.3.8: Protect audit information and audit logging tools from unauthorized access, modification, and deletion.
3.6.1 Establish an operational incident-handling capability for organizational systems that includes preparation, detection, analysis, containment, recovery, and user response activities
3.6.2 Track, document, and report incidents to designated officials and/or authorities both internal and external to the organization

Framework coverage

Which controls from this module are active under each framework endpoint. Your framework preferences choose the columns.

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.

4 controls enforced with a source URL change.

Start free trialGet started

On this page

Ask AI about this

Help improve this page