{"id":18320790,"url":"https://github.com/cn-terraform/terraform-aws-networking","last_synced_at":"2025-04-05T22:32:02.033Z","repository":{"id":41092644,"uuid":"167420434","full_name":"cn-terraform/terraform-aws-networking","owner":"cn-terraform","description":"Networking Terraform Module for AWS","archived":false,"fork":false,"pushed_at":"2023-10-12T17:04:05.000Z","size":106,"stargazers_count":13,"open_issues_count":2,"forks_count":22,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-21T13:12:55.782Z","etag":null,"topics":["amazon-web-services","aws","cloud","network","networking","subnets","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/cn-terraform/networking/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cn-terraform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":null,"patreon":"jnonino","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-01-24T18:59:28.000Z","updated_at":"2024-11-27T05:12:01.000Z","dependencies_parsed_at":"2023-10-10T22:27:16.235Z","dependency_job_id":null,"html_url":"https://github.com/cn-terraform/terraform-aws-networking","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cn-terraform%2Fterraform-aws-networking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cn-terraform%2Fterraform-aws-networking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cn-terraform%2Fterraform-aws-networking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cn-terraform%2Fterraform-aws-networking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cn-terraform","download_url":"https://codeload.github.com/cn-terraform/terraform-aws-networking/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411238,"owners_count":20934650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon-web-services","aws","cloud","network","networking","subnets","terraform","terraform-module"],"created_at":"2024-11-05T18:17:28.777Z","updated_at":"2025-04-05T22:32:01.782Z","avatar_url":"https://github.com/cn-terraform.png","language":"HCL","funding_links":["https://patreon.com/jnonino"],"categories":[],"sub_categories":[],"readme":"# Networking Terraform Module for AWS #\n\nThis Terraform module creates the base networking infrastructure on AWS.\n\n[![](https://github.com/cn-terraform/terraform-aws-networking/workflows/terraform/badge.svg)](https://github.com/cn-terraform/terraform-aws-networking/actions?query=workflow%3Aterraform)\n[![](https://img.shields.io/github/license/cn-terraform/terraform-aws-networking)](https://github.com/cn-terraform/terraform-aws-networking)\n[![](https://img.shields.io/github/issues/cn-terraform/terraform-aws-networking)](https://github.com/cn-terraform/terraform-aws-networking)\n[![](https://img.shields.io/github/issues-closed/cn-terraform/terraform-aws-networking)](https://github.com/cn-terraform/terraform-aws-networking)\n[![](https://img.shields.io/github/languages/code-size/cn-terraform/terraform-aws-networking)](https://github.com/cn-terraform/terraform-aws-networking)\n[![](https://img.shields.io/github/repo-size/cn-terraform/terraform-aws-networking)](https://github.com/cn-terraform/terraform-aws-networking)\n\n## Usage\n\nCheck valid versions on:\n* Github Releases: \u003chttps://github.com/cn-terraform/terraform-aws-networking/releases\u003e\n* Terraform Module Registry: \u003chttps://registry.terraform.io/modules/cn-terraform/networking/aws\u003e\n\n## Install pre commit hooks.\n\nPleas run this command right after cloning the repository.\n\n        pre-commit install\n\nFor that you may need to install the folowwing tools:\n* [Pre-commit](https://pre-commit.com/) \n* [Terraform Docs](https://terraform-docs.io/)\n\nIn order to run all checks at any point run the following command:\n\n        pre-commit run --all-files\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 4 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.17.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_eip.nat](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip) | resource |\n| [aws_internet_gateway.internet_gw](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/internet_gateway) | resource |\n| [aws_nat_gateway.nat](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/nat_gateway) | resource |\n| [aws_route.private_internet_route](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route.public_internet](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route_table.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table) | resource |\n| [aws_route_table.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table) | resource |\n| [aws_route_table_association.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table_association) | resource |\n| [aws_route_table_association.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table_association) | resource |\n| [aws_subnet.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n| [aws_subnet.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n| [aws_vpc.vpc](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_additional_tags\"\u003e\u003c/a\u003e [additional\\_tags](#input\\_additional\\_tags) | (Optional) A map of tags to assign to all the resources. If configured with a provider default\\_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_cidr_block\"\u003e\u003c/a\u003e [cidr\\_block](#input\\_cidr\\_block) | (Optional) The IPv4 CIDR block for the VPC. CIDR can be explicitly set or it can be derived from IPAM using ipv4\\_netmask\\_length | `string` | `null` | no |\n| \u003ca name=\"input_enable_dns_hostnames\"\u003e\u003c/a\u003e [enable\\_dns\\_hostnames](#input\\_enable\\_dns\\_hostnames) | (Optional) A boolean flag to enable/disable DNS hostnames in the VPC. Defaults false. | `bool` | `false` | no |\n| \u003ca name=\"input_enable_dns_support\"\u003e\u003c/a\u003e [enable\\_dns\\_support](#input\\_enable\\_dns\\_support) | (Optional) A boolean flag to enable/disable DNS support in the VPC. Defaults to true. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_network_address_usage_metrics\"\u003e\u003c/a\u003e [enable\\_network\\_address\\_usage\\_metrics](#input\\_enable\\_network\\_address\\_usage\\_metrics) | (Optional) Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false. | `bool` | `false` | no |\n| \u003ca name=\"input_instance_tenancy\"\u003e\u003c/a\u003e [instance\\_tenancy](#input\\_instance\\_tenancy) | (Optional) A tenancy option for instances launched into the VPC. Default is default, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is dedicated, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee. | `string` | `\"default\"` | no |\n| \u003ca name=\"input_ipv4_ipam_pool_id\"\u003e\u003c/a\u003e [ipv4\\_ipam\\_pool\\_id](#input\\_ipv4\\_ipam\\_pool\\_id) | (Optional) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts. Using IPAM you can monitor IP address usage throughout your AWS Organization. | `string` | `null` | no |\n| \u003ca name=\"input_ipv4_netmask_length\"\u003e\u003c/a\u003e [ipv4\\_netmask\\_length](#input\\_ipv4\\_netmask\\_length) | (Optional) The netmask length of the IPv4 CIDR you want to allocate to this VPC. Requires specifying a ipv4\\_ipam\\_pool\\_id. | `number` | `null` | no |\n| \u003ca name=\"input_map_public_ip_on_launch\"\u003e\u003c/a\u003e [map\\_public\\_ip\\_on\\_launch](#input\\_map\\_public\\_ip\\_on\\_launch) | (Optional) Specify true to indicate that instances launched into the subnet should be assigned a public IP address. Default is false. | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnets\"\u003e\u003c/a\u003e [private\\_subnets](#input\\_private\\_subnets) | (Optional) Map of objects contining the definition for each private subnet | \u003cpre\u003emap(object({\u003cbr\u003e    availability_zone = string # Availability Zone for the subnet.\u003cbr\u003e    cidr_block        = string # The IPv4 CIDR block for the subnet.\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_private_subnets_additional_tags\"\u003e\u003c/a\u003e [private\\_subnets\\_additional\\_tags](#input\\_private\\_subnets\\_additional\\_tags) | (Optional) A map of tags to assign to the resource. If configured with a provider default\\_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_private_subnets_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [private\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_private\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | (Optional) Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnets_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [private\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_private\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | (Optional) Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnets\"\u003e\u003c/a\u003e [public\\_subnets](#input\\_public\\_subnets) | (Optional) Map of objects contining the definition for each public subnet | \u003cpre\u003emap(object({\u003cbr\u003e    availability_zone = string # Availability Zone for the subnet.\u003cbr\u003e    cidr_block        = string # The IPv4 CIDR block for the subnet.\u003cbr\u003e  }))\u003c/pre\u003e | `{}` | no |\n| \u003ca name=\"input_public_subnets_additional_tags\"\u003e\u003c/a\u003e [public\\_subnets\\_additional\\_tags](#input\\_public\\_subnets\\_additional\\_tags) | (Optional) A map of tags to assign to the resource. If configured with a provider default\\_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_public_subnets_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [public\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_public\\_subnets\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | (Optional) Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: false. | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnets_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [public\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_public\\_subnets\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | (Optional) Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: false. | `bool` | `false` | no |\n| \u003ca name=\"input_single_nat\"\u003e\u003c/a\u003e [single\\_nat](#input\\_single\\_nat) | Use single NAT Gateway | `bool` | `false` | no |\n| \u003ca name=\"input_vpc_additional_tags\"\u003e\u003c/a\u003e [vpc\\_additional\\_tags](#input\\_vpc\\_additional\\_tags) | (Optional) A map of tags to assign to the VPC resource. If configured with a provider default\\_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level. | `map(string)` | `{}` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_internet_gateway_id\"\u003e\u003c/a\u003e [internet\\_gateway\\_id](#output\\_internet\\_gateway\\_id) | ID of the generated Internet Gateway |\n| \u003ca name=\"output_nat_gws\"\u003e\u003c/a\u003e [nat\\_gws](#output\\_nat\\_gws) | n/a |\n| \u003ca name=\"output_private_subnets\"\u003e\u003c/a\u003e [private\\_subnets](#output\\_private\\_subnets) | ------------------------------------------------------------------------------ AWS Subnets - Private ------------------------------------------------------------------------------ |\n| \u003ca name=\"output_private_subnets_route_tables\"\u003e\u003c/a\u003e [private\\_subnets\\_route\\_tables](#output\\_private\\_subnets\\_route\\_tables) | n/a |\n| \u003ca name=\"output_public_subnets\"\u003e\u003c/a\u003e [public\\_subnets](#output\\_public\\_subnets) | ------------------------------------------------------------------------------ AWS Subnets - Public ------------------------------------------------------------------------------ |\n| \u003ca name=\"output_public_subnets_route_tables\"\u003e\u003c/a\u003e [public\\_subnets\\_route\\_tables](#output\\_public\\_subnets\\_route\\_tables) | n/a |\n| \u003ca name=\"output_vpc_arn\"\u003e\u003c/a\u003e [vpc\\_arn](#output\\_vpc\\_arn) | Amazon Resource Name (ARN) of VPC |\n| \u003ca name=\"output_vpc_default_network_acl_id\"\u003e\u003c/a\u003e [vpc\\_default\\_network\\_acl\\_id](#output\\_vpc\\_default\\_network\\_acl\\_id) | The ID of the network ACL created by default on VPC creation |\n| \u003ca name=\"output_vpc_default_route_table_id\"\u003e\u003c/a\u003e [vpc\\_default\\_route\\_table\\_id](#output\\_vpc\\_default\\_route\\_table\\_id) | The ID of the route table created by default on VPC creation |\n| \u003ca name=\"output_vpc_default_security_group_id\"\u003e\u003c/a\u003e [vpc\\_default\\_security\\_group\\_id](#output\\_vpc\\_default\\_security\\_group\\_id) | The ID of the security group created by default on VPC creation |\n| \u003ca name=\"output_vpc_enable_dns_hostnames\"\u003e\u003c/a\u003e [vpc\\_enable\\_dns\\_hostnames](#output\\_vpc\\_enable\\_dns\\_hostnames) | Whether or not the VPC has DNS hostname support |\n| \u003ca name=\"output_vpc_enable_dns_support\"\u003e\u003c/a\u003e [vpc\\_enable\\_dns\\_support](#output\\_vpc\\_enable\\_dns\\_support) | Whether or not the VPC has DNS support |\n| \u003ca name=\"output_vpc_enable_network_address_usage_metrics\"\u003e\u003c/a\u003e [vpc\\_enable\\_network\\_address\\_usage\\_metrics](#output\\_vpc\\_enable\\_network\\_address\\_usage\\_metrics) | Whether Network Address Usage metrics are enabled for the VPC |\n| \u003ca name=\"output_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#output\\_vpc\\_id) | The ID of the VPC |\n| \u003ca name=\"output_vpc_instance_tenancy\"\u003e\u003c/a\u003e [vpc\\_instance\\_tenancy](#output\\_vpc\\_instance\\_tenancy) | Tenancy of instances spin up within VPC |\n| \u003ca name=\"output_vpc_ipv6_association_id\"\u003e\u003c/a\u003e [vpc\\_ipv6\\_association\\_id](#output\\_vpc\\_ipv6\\_association\\_id) | The association ID for the IPv6 CIDR block. |\n| \u003ca name=\"output_vpc_ipv6_cidr_block_network_border_group\"\u003e\u003c/a\u003e [vpc\\_ipv6\\_cidr\\_block\\_network\\_border\\_group](#output\\_vpc\\_ipv6\\_cidr\\_block\\_network\\_border\\_group) | The Network Border Group Zone name |\n| \u003ca name=\"output_vpc_main_route_table_id\"\u003e\u003c/a\u003e [vpc\\_main\\_route\\_table\\_id](#output\\_vpc\\_main\\_route\\_table\\_id) | The ID of the main route table associated with this VPC. Note that you can change a VPC's main route table by using an aws\\_main\\_route\\_table\\_association. |\n| \u003ca name=\"output_vpc_owner_id\"\u003e\u003c/a\u003e [vpc\\_owner\\_id](#output\\_vpc\\_owner\\_id) | The ID of the AWS account that owns the VPC. |\n| \u003ca name=\"output_vpc_tags_all\"\u003e\u003c/a\u003e [vpc\\_tags\\_all](#output\\_vpc\\_tags\\_all) | A map of tags assigned to the resource, including those inherited from the provider default\\_tags configuration block. |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcn-terraform%2Fterraform-aws-networking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcn-terraform%2Fterraform-aws-networking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcn-terraform%2Fterraform-aws-networking/lists"}