Building Secure Networks with Amazon VPC: A Complete Architecture Walkthrough


Introduction to Amazon VPC

Amazon Virtual Private Cloud (VPC) is a logically isolated section of the AWS cloud where you can launch AWS resources in a virtual network that you define. It gives you full control over your network setup, including:

  • IP address ranges

  • Subnets

  • Route tables

  • Network gateways

  • Security settings


 Key Building Blocks of a Secure VPC Architecture

1. CIDR Block Planning

  • Choose an appropriate CIDR range (e.g., 10.0.0.0/16) to avoid overlap with on-prem or other VPCs.

  • Plan for subnet segmentation by reserving smaller CIDR blocks.

2. Subnets

  • Public Subnets: For internet-facing services like ALB, NAT Gateway.

  • Private Subnets: For databases, internal services.

  • Isolated Subnets: No route to the internet—used for critical data.

3. Internet Gateway (IGW)

  • Needed for outbound traffic from public subnets to the internet.

4. NAT Gateway

  • Allows outbound internet access for private subnets while blocking inbound connections.

  • Deploy in a highly available setup across multiple AZs.

5. Route Tables

  • Define traffic direction.

  • Associate public subnets with a route to IGW.

  • Associate private subnets with a route to NAT Gateway.


 Enhancing Security: Network Controls and Identity

1. Security Groups

  • Stateful firewalls attached to resources.

  • Allow only necessary inbound/outbound traffic (e.g., HTTP, HTTPS, SSH).

2. Network Access Control Lists (NACLs)

  • Stateless filtering at the subnet level.

  • Add a layer of defense by controlling ingress/egress at the subnet boundary.

3. VPC Flow Logs

  • Capture information about IP traffic going to and from network interfaces.

  • Send to Amazon CloudWatch or S3 for monitoring and analysis.

4. PrivateLink & VPC Endpoints

  • Securely connect to AWS services without traversing the internet.

  • Supports service-to-service communication within AWS securely.


 Sample Architecture Design

Scenario: Multi-Tier Web Application

  • Public Subnet: Hosts Application Load Balancer (ALB).

  • Private Subnet: Hosts EC2 instances (App tier) and RDS (DB tier).

  • NAT Gateway: Deployed in public subnet for EC2 outbound access.

  • ALB: Routes traffic to EC2 based on path-based routing rules.

  • RDS Subnet Group: Located in private subnets with no direct internet access.

High Availability Strategy:

  • Distribute subnets across at least two AZs.

  • Deploy NAT Gateways in each AZ for redundancy.

  • Use Auto Scaling Groups with health checks behind the ALB.


 Monitoring and Logging

  • Enable CloudTrail: Track all API activity.

  • Use AWS Config: Monitor resource configurations for compliance.

  • Set up CloudWatch Alarms: Trigger alerts on metrics like CPU, memory, and VPC anomalies.


 Testing and Validation

  • Perform port scans and penetration tests (with AWS permission).

  • Validate that:

    • No unintended open ports exist.

    • Private instances cannot be reached directly from the internet.

    • Logging is capturing all relevant activity.


 Best Practices Summary

  • Use least privilege principle in Security Groups.

  • Disable public IP assignment for private subnet instances.

  • Deploy multi-AZ resources for fault tolerance.

  • Encrypt traffic and data at rest using KMS.

  • Regularly review access logs and VPC Flow Logs.

Comments

YouTube Channel

Follow us on X