Back to Projects

Secure AWS VPC with Terraform

Secure-by-default AWS VPC built with Terraform: public and private subnets, route tables, NACLs, and a baseline security group. Private subnets have no internet route; separate tiers and no public SSH by default.

Tech Stack

AWSTerraformVPCNetworkingSecurityIaC

Overview

A secure-by-default AWS VPC architecture built entirely with Terraform. This project implements public and private subnets with proper route tables, network ACLs (NACLs), and a baseline security group. Private subnets have no direct internet route, enabling separate tiers for application and data layers. Public SSH is disabled by default for improved security posture.

Challenges

  • Designing a VPC layout that separates public and private workloads
  • Configuring route tables so private subnets have no internet route
  • Defining NACLs and security groups for defense in depth
  • Keeping public SSH disabled by default while allowing managed access

Solutions

  • Defined public and private subnets with distinct route tables
  • Used Terraform modules for route tables, NACLs, and security groups
  • Enforced no-internet route on private subnets via route table design
  • Created baseline security group with minimal ingress/egress rules

Results

  • Clear separation between public and private tiers
  • Private subnets isolated from direct internet access
  • Repeatable, auditable network setup via Terraform
  • Secure-by-default baseline suitable for production use

Architecture

The architecture uses Terraform to provision a VPC with public and private subnets across availability zones. Public subnets attach to an internet gateway; private subnets use NAT or no internet route. Route tables, NACLs, and a baseline security group are defined in code. All networking is managed as Infrastructure as Code for consistency and compliance.