Configures a core network with VPC attachments across multiple regions, using a base policy document for detailed customization.

Terraform Template

data "aws_networkmanager_core_network_policy_document" "base" {

  core_network_configuration {
    asn_ranges = ["65022-65534"]

    edge_locations {
      asn = 65500
    }

    edge_locations {
      asn = 65501
    }
  }

  segments {
    name = "segment"
  }
}

data "aws_networkmanager_core_network_policy_document" "example" {

  core_network_configuration {
    asn_ranges = ["65022-65534"]

    edge_locations {
      asn = 65500
    }

    edge_locations {
      asn = 65501
    }
  }

  segment_actions {
    action = "create-route"
    destination_cidr_blocks = ["10.0.0.0/16"]
    destinations = [aws_networkmanager_vpc_attachment.example_us_west_2.id]
    segment = "segment"
  }

  segment_actions {
    action = "create-route"
    destination_cidr_blocks = ["10.1.0.0/16"]
    destinations = [aws_networkmanager_vpc_attachment.example_us_east_1.id]
    segment = "segment"
  }

  segments {
    name = "segment"
  }

  segments {
    name = "segment2"
  }
}

resource "aws_networkmanager_core_network" "example" {
  base_policy_document = data.aws_networkmanager_core_network_policy_document.base.json
  create_base_policy = true
  global_network_id = aws_networkmanager_global_network.example.id
}

resource "aws_networkmanager_core_network_policy_attachment" "example" {
  core_network_id = aws_networkmanager_core_network.example.id
  policy_document = data.aws_networkmanager_core_network_policy_document.example.json
}

resource "aws_networkmanager_global_network" "example" {
}

resource "aws_networkmanager_vpc_attachment" "example_us_east_1" {
  core_network_id = aws_networkmanager_core_network.example.id
  provider = "alternate"
  subnet_arns = aws_subnet.example_us_east_1[*].arn
  vpc_arn = "aws_vpc.example_us_east_1.arn"
}

resource "aws_networkmanager_vpc_attachment" "example_us_west_2" {
  core_network_id = aws_networkmanager_core_network.example.id
  subnet_arns = aws_subnet.example_us_west_2[*].arn
  vpc_arn = "aws_vpc.example_us_west_2.arn"
}