Google Cloud Cloud NAT Gateway - PullRequest
       22

Google Cloud Cloud NAT Gateway

0 голосов
/ 27 декабря 2018

Я хочу подключить свою "частную" сеть (экземпляры без внешних IP-адресов) через terraform.

  • google_compute_router_nat.advanced-nat: Ошибка при обновлении маршрутизатора us-west2 / my-router1: googleapi: Ошибка 400: Неверное значение для поля 'resource.nats [0] .subnetworks [0] .name': 'test-us-west2-private-subnet'.URL неверный.Более подробная информация: Причина: неверно, Сообщение: Недопустимое значение для поля 'resource.nats [0] .subnetworks [0] .name': 'test-us-west2-private-subnet'.URL неверный.Причина: недопустимо, Сообщение: недопустимое значение для поля 'resource.nats [0] .natIps [0]': '10 .0.0.0 / 16 '.URL неверен.

Задача: перенести классическую схему с AWS на GCP: одна сеть VPC, хост Bastion в публичной сети, в частной сети все машины без внешних IP-адресов.Использовать NAT-шлюз для частной сети.

resource "google_compute_router" "router" {
  name    = "my-router1"
  network = "${var.gcp_project_name}-net"
  bgp {
    asn = 64514
  }
}

resource "google_compute_router_nat" "advanced-nat" {
  name                               = "nat-1"
  router                             = "${google_compute_router.router.name}"
  region                             = "us-west2"
  nat_ip_allocate_option             = "MANUAL_ONLY"
  nat_ips                            = ["10.0.0.0/16"]
  source_subnetwork_ip_ranges_to_nat = "LIST_OF_SUBNETWORKS"
  subnetwork {
    name = "${var.gcp_project_name}-${var.gcp_region_name}-private-subnet"
  }
}

some result

1 Ответ

0 голосов
/ 28 декабря 2018
# VPC
resource "google_compute_network" "gcp_project_name" {
  name    = "${var.gcp_project_name}-net"
  auto_create_subnetworks = "false"
}

# PRIVATE SUBNET
resource "google_compute_subnetwork" "gcp_project_name_private_subnet" {
  name          = "${var.gcp_project_name}-${var.gcp_region_name}-private-subnet"
  ip_cidr_range = "10.0.0.0/16"
  network       = "${google_compute_network.gcp_project_name.self_link}"
  region        = "${var.gcp_region_name}"
}

# PUBLIC SUBNET
resource "google_compute_subnetwork" "gcp_project_name_public_subnet" {
  name          = "${var.gcp_project_name}-${var.gcp_region_name}-public-subnet"
  ip_cidr_range = "10.8.0.0/16"
  network       = "${google_compute_network.gcp_project_name.self_link}"
  region        = "${var.gcp_region_name}"
}

resource "google_compute_router" "router" {
  name    = "${var.gcp_router_name}"
  network = "${var.gcp_project_name}-net"
  region  = "${var.gcp_region_name}"
}


resource "google_compute_router_nat" "advanced-nat" {
  name                               = "${var.gcp_nat_name}"
  router                             = "${var.gcp_router_name}"
  region                             = "${var.gcp_region_name}"
  nat_ip_allocate_option             = "AUTO_ONLY"
  source_subnetwork_ip_ranges_to_nat = "LIST_OF_SUBNETWORKS"
  subnetwork {
    name = "${google_compute_subnetwork.gcp_project_name_private_subnet.self_link}"
  }
}
...