|
@@ -1,15 +1,16 @@
|
|
|
locals {
|
|
|
azs = slice(data.aws_availability_zones.available.names,0,2)
|
|
|
subnets = [
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,0),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,1),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,2),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,3),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,4),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,5),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,6),
|
|
|
- cidrsubnet(var.security_vpc_cidr,3,7),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,0),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,1),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,2),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,3),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,4),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,5),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,6),
|
|
|
+ cidrsubnet(var.vpc_info["cidr"],3,7),
|
|
|
]
|
|
|
+ vpc_name = "${ var.vpc_info["name"] }-${ var.account_name }"
|
|
|
}
|
|
|
|
|
|
data "aws_availability_zones" "available" {
|
|
@@ -19,8 +20,8 @@ data "aws_availability_zones" "available" {
|
|
|
module "vpc" {
|
|
|
source = "terraform-aws-modules/vpc/aws"
|
|
|
version = "~> v2.0"
|
|
|
- name = "security_vpc_${var.aws_partition_alias}_${var.environment}"
|
|
|
- cidr = var.security_vpc_cidr
|
|
|
+ name = local.vpc_name
|
|
|
+ cidr = var.vpc_info["cidr"]
|
|
|
|
|
|
azs = local.azs
|
|
|
|
|
@@ -29,17 +30,13 @@ module "vpc" {
|
|
|
local.subnets[0],
|
|
|
local.subnets[1],
|
|
|
]
|
|
|
- private_subnet_tags = {
|
|
|
- "Name" = "FW private (private)"
|
|
|
- }
|
|
|
+ private_subnet_tags = merge(var.standard_tags, var.tags, { "Purpose" = var.vpc_info["purpose"] })
|
|
|
|
|
|
public_subnets = [
|
|
|
local.subnets[4],
|
|
|
local.subnets[5]
|
|
|
]
|
|
|
- public_subnet_tags = {
|
|
|
- "Name" = "FW Untrusted (Public)"
|
|
|
- }
|
|
|
+ public_subnet_tags = merge(var.standard_tags, var.tags, { "Purpose" = var.vpc_info["purpose"] })
|
|
|
|
|
|
enable_nat_gateway = false
|
|
|
enable_vpn_gateway = false
|
|
@@ -55,7 +52,7 @@ module "vpc" {
|
|
|
|
|
|
dhcp_options_domain_name = var.dns_info["private"]["zone"]
|
|
|
|
|
|
- tags = merge(var.standard_tags, var.tags)
|
|
|
+ tags = merge(var.standard_tags, var.tags, { "Purpose" = var.vpc_info["purpose"] })
|
|
|
}
|
|
|
|
|
|
resource "aws_flow_log" "flowlogs" {
|
|
@@ -64,7 +61,7 @@ resource "aws_flow_log" "flowlogs" {
|
|
|
|
|
|
traffic_type = "REJECT" # ALL is very noisy, and CIS only requires rejects.
|
|
|
vpc_id = module.vpc.vpc_id
|
|
|
- tags = merge(var.standard_tags, var.tags)
|
|
|
+ tags = merge(var.standard_tags, var.tags, { "Purpose" = var.vpc_info["purpose"] })
|
|
|
}
|
|
|
|
|
|
resource "aws_subnet" "mgmt" {
|
|
@@ -74,9 +71,7 @@ resource "aws_subnet" "mgmt" {
|
|
|
cidr_block = local.subnets[6 + count.index]
|
|
|
availability_zone = local.azs[count.index]
|
|
|
|
|
|
- tags = {
|
|
|
- Name = "FW Management (Public)"
|
|
|
- }
|
|
|
+ tags = merge(var.standard_tags, var.tags, { "Purpose" = var.vpc_info["purpose"] })
|
|
|
}
|
|
|
|
|
|
resource "aws_route_table_association" "mgmt-to-internet" {
|
|
@@ -94,7 +89,5 @@ resource "aws_subnet" "standalone_tgw" {
|
|
|
cidr_block = local.subnets[2 + count.index]
|
|
|
availability_zone = local.azs[count.index]
|
|
|
|
|
|
- tags = {
|
|
|
- Name = "Standalone TGW"
|
|
|
- }
|
|
|
+ tags = merge(var.standard_tags, var.tags, { "Purpose" = var.vpc_info["purpose"] })
|
|
|
}
|