Skip to content

VPC subnet auto assign public IP should be disabled

Ensure that AWS Virtual Private Cloud (AWS VPC) subnets are assigned a public IP address. The control is compliant if AWS VPC does not have subnets that are assigned a public IP address. The control is non-compliant if AWS VPC has subnets that are assigned a public IP address.

How to fix

Attribute map_public_ip_on_launch of aws_subnet must be false.

Implementation options

Choose the option that matches how you manage Terraform. All options satisfy this control.

Option 1: Terraform AWS provider resources

If you manage resources directly, configure the relevant Terraform AWS provider resources to meet this control. See docs for the resources involved: aws_subnet.

resource "aws_subnet" "this" {
  cidr_block = "10.1.0.0/24"
  vpc_id     = "vpc-12345678"

  map_public_ip_on_launch = false
}
Which option should I choose?
  • Compliance.tf module (recommended): controls enforced by default and mapped to frameworks.
  • Open source module (terraform-aws-modules): compatible by design with compliance.tf. Same variable names for an easy, low-change migration path when you are ready.
  • Terraform AWS provider resources: manage Terraform resources directly.

Tool mappings

Use these identifiers to cross-reference this control across tools, reports, and evidence.

  • Compliance.tf (CTF) Control: vpc_subnet_auto_assign_public_ip_disabled

  • AWS Config Managed Rule: SUBNET_AUTO_ASSIGN_PUBLIC_IP_DISABLED

  • Checkov Check: CKV_AWS_130

  • Powerpipe Control: aws_compliance.control.vpc_subnet_auto_assign_public_ip_disabled