Última revisão: maio de 2026
Construa os serviços da AWS do exame PCNE com Terraform puro — um bloco de cada vez, cada um vinculado a um domínio do exame. O mesmo código funciona no OpenTofu.
Ao final deste laboratório, você terá provisionado, com Terraform simples, um substrato de rede no formato PCNE — habilitação de projeto host de VPC Compartilhada, uma VPC personalizada com uma sub-rede regional usando Acesso Privado do Google, um Cloud Router + Cloud NAT para saída apenas de egresso, duas regras de firewall com VPC Flow Logs na sub-rede e uma zona privada do Cloud DNS para resolução de nomes internos. Cinco blocos; o formato de referência hub-VPC + egresso + DNS do PCNE.
Solte os trechos em um único main.tf, execute terraform init e, em seguida, terraform apply passo a passo.
Nota: este laboratório de projeto único demonstra a habilitação do projeto host de VPC Compartilhada, mas na verdade não compartilha a VPC com outro projeto de serviço (o que requer Administrador da Organização + dois projetos, fora do escopo para um laboratório rápido).
>= 1.5 ou OpenTofu >= 1.6.roles/compute.xpnAdmin no escopo da organização — sem direitos no nível da organização, o recurso google_compute_shared_vpc_host_project falhará. Pule a Etapa 2 e remova-a de main.tf se você tiver apenas direitos no nível do projeto.your-project-id no bloco do provedor.Quase gratuito:
~$0/mês. Barato para manter em execução.
Habilite as APIs de Compute, DNS e Logging.
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-pcne"
managed_by = "terraform"
}
}
resource "google_project_service" "compute" {
service = "compute.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "dns" {
service = "dns.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "logging" {
service = "logging.googleapis.com"
disable_on_destroy = false
}VPC Compartilhada é o padrão de rede de múltiplos projetos canônico do PCNE — um projeto host possui a VPC, múltiplos projetos de serviço a consomem via anexos. As cargas de trabalho em projetos de serviço obtêm IPs das sub-redes da VPC do host sem que o projeto host possua os recursos da camada de carga de trabalho. O exame PCNE testa esta separação host vs serviço como o padrão de escala de suporte de carga.
Nós habilitamos o modo de projeto host no projeto atual (google_compute_shared_vpc_host_project), então criamos uma sub-rede /20 com Acesso Privado do Google habilitado (permite que VMs sem IPs externos alcancem *.googleapis.com) e VPC Flow Logs ativados.
data "google_project" "current" {}
resource "google_compute_shared_vpc_host_project" "host" {
project = data.google_project.current.project_id
depends_on = [google_project_service.compute]
}
resource "google_compute_network" "main" {
name = "certlabpro-pcne-vpc"
auto_create_subnetworks = false
routing_mode = "REGIONAL"
depends_on = [google_project_service.compute]
}
resource "google_compute_subnetwork" "main" {
name = "certlabpro-pcne-subnet"
ip_cidr_range = "10.10.0.0/20"
region = "us-central1"
network = google_compute_network.main.id
private_ip_google_access = true
log_config {
aggregation_interval = "INTERVAL_5_SEC"
flow_sampling = 0.5
metadata = "INCLUDE_ALL_METADATA"
}
}Cloud NAT oferece acesso à internet de saída para sub-redes sem IPs externos por VM — o padrão de egresso privado por padrão canônico do PCNE. O formato: um Cloud Router é a primitiva do plano de controle BGP (usado por NAT, VPN, Interconnect); um Cloud NAT se conecta a ele e fornece o plano de dados.
Nós habilitamos o NAT com alocação de IP NAT AUTO_ONLY (o Google escolhe os endereços; implantações de produção fixam IPs reservados específicos para listas de permissões de firewall a montante). Registro apenas em erros — o modo de log completo gera um volume substancial de Cloud Logging.
resource "google_compute_router" "nat_router" {
name = "certlabpro-pcne-router"
region = "us-central1"
network = google_compute_network.main.id
}
resource "google_compute_router_nat" "nat" {
name = "certlabpro-pcne-nat"
router = google_compute_router.nat_router.name
region = "us-central1"
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "LIST_OF_SUBNETWORKS"
subnetwork {
name = google_compute_subnetwork.main.id
source_ip_ranges_to_nat = ["ALL_IP_RANGES"]
}
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}Postura de firewall recomendada pelo PCNE: negação padrão de entrada (padrão do GCP), permitindo apenas o que é necessário. Adicionamos permissão interna para tudo (qualquer TCP / UDP / ICMP entre VMs na sub-rede) + permissão IAP SSH (TCP/22 do intervalo de gateway IAP do Google, para que VMs sem IPs públicos ainda sejam acessíveis via SSH usando gcloud compute ssh --tunnel-through-iap).
Este é o mesmo padrão de duas regras do laboratório ACE — o PCNE o aprofunda com políticas de firewall no escopo da organização/pasta (firewalls hierárquicos que se compõem com regras de nível de projeto; fora do escopo aqui).
resource "google_compute_firewall" "allow_internal" {
name = "certlabpro-pcne-allow-internal"
network = google_compute_network.main.name
direction = "INGRESS"
source_ranges = ["10.10.0.0/20"]
allow {
protocol = "tcp"
}
allow {
protocol = "udp"
}
allow {
protocol = "icmp"
}
}
resource "google_compute_firewall" "allow_iap_ssh" {
name = "certlabpro-pcne-allow-iap-ssh"
network = google_compute_network.main.name
direction = "INGRESS"
source_ranges = ["35.235.240.0/20"]
allow {
protocol = "tcp"
ports = ["22"]
}
}Padrão canônico do PCNE: nomes de host internos são resolvidos via uma zona privada do Cloud DNS anexada à VPC. VMs na VPC veem os registros desta zona; VMs externas não. Caso de uso: nomes de host estáveis e legíveis para serviços (api.internal.acme.com, db.internal.acme.com) que são resolvidos para o IP privado da VM.
Criamos a zona internal.acme.com + um registro A de exemplo. Implantações de produção frequentemente combinam isso com o encaminhamento de DNS do Cloud DNS para configurações híbridas (consultas DNS on-prem encaminham para a zona na nuvem, e vice-versa via políticas de servidor de entrada). Com cinco blocos implementados (provedor+APIs, VPC Compartilhada + sub-rede + logs de fluxo, Cloud NAT, firewalls, zona privada do Cloud DNS), o substrato do PCNE está completo.
resource "google_dns_managed_zone" "internal" {
name = "certlabpro-pcne-internal"
dns_name = "internal.acme.com."
description = "PCNE lab private DNS zone"
visibility = "private"
private_visibility_config {
networks {
network_url = google_compute_network.main.id
}
}
labels = local.labels
depends_on = [google_project_service.dns]
}
resource "google_dns_record_set" "api_example" {
managed_zone = google_dns_managed_zone.internal.name
name = "api.${google_dns_managed_zone.internal.dns_name}"
type = "A"
ttl = 300
rrdatas = ["10.10.0.10"]
}terraform destroy derruba tudo. O projeto host da VPC Compartilhada é desabilitado (deve remover quaisquer anexos de projetos de serviço primeiro — nenhum neste laboratório). O Cloud NAT + router se desanexam de forma limpa. A VPC + sub-rede + firewalls são destruídos. A zona privada do Cloud DNS é destruída (o registro de exemplo é removido junto). Os VPC Flow Logs param de ingerir.
O PCNE cobre muitas superfícies de rede que este laboratório não pode abranger — Cloud VPN (HA / Clássica), Cloud Interconnect (Dedicada / Parceira), Network Connectivity Center (NCC — o plano de controle hub-and-spoke), Cross-Cloud Interconnect, Private Service Connect (PSC para padrões de serviço / endpoint / publicador), VPC Peering entre VPCs (separado da VPC Compartilhada), Cloud Load Balancing (toda a família de LBs — HTTP(S) global, interno regional, LB de rede, LB de rede proxy), Cloud CDN, Cloud Armor (WAF / DDoS), Identity-Aware Proxy (IAP), encaminhamento de DNS do Cloud DNS / políticas de servidor de entrada (o formato DNS híbrido), Cloud DNS DNSSEC, a postura legada de Default Firewall Rules, políticas hierárquicas de firewall no escopo da organização / pasta, Network Intelligence Center (Testes de Conectividade / Painel de Desempenho / Insights de Firewall / Topologia de Rede) e perímetros de VPC Service Controls (abordados em [[gcp-pcse]] sob a ótica de exfiltração de dados).
Nós nos atemos aos primitivos VPC Compartilhada + sub-rede + NAT + firewall + DNS privado porque eles são a fundação do PCNE sobre a qual cada padrão de rede mais avançado se compõe. Cloud VPN / Interconnect se conectam ao mesmo Cloud Router. Balanceadores de Carga ficam à frente das mesmas VMs protegidas por firewall. O PSC publica serviços na mesma VPC. Firewalls hierárquicos se sobrepõem às regras de nível de projeto. Domine o substrato.
Para cobertura conceitual serviço a serviço, consulte as seções Navegar, Guia e Editorial desta página de certificação.