diff --git a/README.md b/README.md
index 62a00f11..ac08bbbe 100644
--- a/README.md
+++ b/README.md
@@ -374,6 +374,7 @@ No modules.
| [create\_igw](#input\_create\_igw) | Controls if an Internet Gateway is created for public subnets and the related routes that connect them | `bool` | `true` | no |
| [create\_multiple\_intra\_route\_tables](#input\_create\_multiple\_intra\_route\_tables) | Indicates whether to create a separate route table for each intra subnet. Default: `false` | `bool` | `false` | no |
| [create\_multiple\_public\_route\_tables](#input\_create\_multiple\_public\_route\_tables) | Indicates whether to create a separate route table for each public subnet. Default: `false` | `bool` | `false` | no |
+| [create\_private\_nat\_gateway\_route](#input\_create\_private\_nat\_gateway\_route) | Controls if a nat gateway route should be created to give internet access to the private subnets | `bool` | `true` | no |
| [create\_redshift\_subnet\_group](#input\_create\_redshift\_subnet\_group) | Controls if redshift subnet group should be created | `bool` | `true` | no |
| [create\_redshift\_subnet\_route\_table](#input\_create\_redshift\_subnet\_route\_table) | Controls if separate route table for redshift should be created | `bool` | `false` | no |
| [create\_vpc](#input\_create\_vpc) | Controls if VPC should be created (it affects almost all resources) | `bool` | `true` | no |
diff --git a/main.tf b/main.tf
index 05b4f5e2..77cba671 100644
--- a/main.tf
+++ b/main.tf
@@ -1102,7 +1102,7 @@ resource "aws_nat_gateway" "this" {
}
resource "aws_route" "private_nat_gateway" {
- count = local.create_vpc && var.enable_nat_gateway ? local.nat_gateway_count : 0
+ count = local.create_vpc && var.enable_nat_gateway && var.create_private_nat_gateway_route ? local.nat_gateway_count : 0
route_table_id = element(aws_route_table.private[*].id, count.index)
destination_cidr_block = var.nat_gateway_destination_cidr_block
diff --git a/variables.tf b/variables.tf
index 8bfae516..39521ae1 100644
--- a/variables.tf
+++ b/variables.tf
@@ -372,6 +372,12 @@ variable "private_subnet_suffix" {
default = "private"
}
+variable "create_private_nat_gateway_route" {
+ description = "Controls if a nat gateway route should be created to give internet access to the private subnets"
+ type = bool
+ default = true
+}
+
variable "private_subnet_tags" {
description = "Additional tags for the private subnets"
type = map(string)