Última revisão: maio de 2026
Construa os serviços da AWS do exame CDL 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, a menor pegada realista no GCP — dois serviços de projeto habilitados, um bucket do Cloud Storage com acesso uniforme em nível de bucket + ciclo de vida, e um orçamento do Cloud Billing que envia e-mails quando os gastos ultrapassam um limite. Quatro blocos, o equivalente no GCP a criar uma conta AWS e adicionar um único bucket S3 nela.
Cole os trechos em um único main.tf, execute terraform init, e então terraform apply passo a passo.
>= 1.5 ou OpenTofu >= 1.6.provider.gcloud auth application-default login.gcloud beta billing accounts list.your-project-id e your-billing-account-id nos trechos abaixo antes de executar terraform apply.Tudo grátis neste escopo:
us-*; o bucket do laboratório não armazena nada.O laboratório fica ocioso a ~$0/mês. O objetivo é provar que o gatilho de faturamento funciona — todo o exame CDL gira em torno da capacidade de operar o GCP com segurança, da qual "saber o que você está gastando" é a regra nº 1.
O GCP exige que serviços de projeto explícitos (APIs) sejam habilitados antes que os recursos possam ser provisionados. Habilitamos storage.googleapis.com (para a Etapa 2) e billingbudgets.googleapis.com (para a Etapa 4). Compare com a AWS, onde as superfícies da API estão sempre ativas — o GCP exige que você ative por projeto.
Substitua your-project-id pelo seu ID de projeto real.
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE with your GCP project ID
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-cdl"
managed_by = "terraform"
}
}
resource "google_project_service" "storage" {
service = "storage.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "budgets" {
service = "billingbudgets.googleapis.com"
disable_on_destroy = false
}O Cloud Storage é o equivalente do S3 no GCP — armazenamento de objetos com opções de replicação regional, multirregional e de região dupla. O exame CDL testa repetidamente a pergunta qual-classe-de-armazenamento: Standard (quente), Nearline (>30 dias), Coldline (>90 dias), Archive (>365 dias).
Habilitamos o acesso uniforme em nível de bucket (o padrão de segurança recomendado pelo CDL — desativa ACLs por objeto detalhadas em favor de apenas IAM) e uma transição de ciclo de vida de 30 dias para Nearline. Os nomes devem ser globalmente únicos em todo o GCP — adicionamos um sufixo hexadecimal aleatório.
resource "random_id" "suffix" {
byte_length = 4
}
resource "google_storage_bucket" "main" {
name = "certlabpro-cdl-${random_id.suffix.hex}"
location = "US"
uniform_bucket_level_access = true
force_destroy = true # lab-only — never in production
lifecycle_rule {
condition {
age = 30
}
action {
type = "SetStorageClass"
storage_class = "NEARLINE"
}
}
labels = local.labels
depends_on = [google_project_service.storage]
}O Cloud Logging do GCP está ativado por padrão para a maioria dos serviços — mas o exame CDL testa a distinção de log de auditoria Obrigatório vs Padrão vs Acesso a Dados. Os logs de auditoria Obrigatórios (atividade de administrador) estão sempre ativados, são gratuitos e não podem ser desabilitados. Os logs Padrão (gravações de dados para alguns serviços) estão ativados, mas podem ser desabilitados. Os logs de Acesso a Dados (leituras de dados) estão desativados por padrão — devem ser explicitamente habilitados e são cobrados normalmente.
Habilitamos o registro de Acesso a Dados para o Cloud Storage para que cada leitura de cada objeto no bucket da Etapa 2 seja registrada no Cloud Logging. O laboratório é uma demonstração do primitivo iam-audit-config; implantações de produção usam este padrão em nível de organização via padrões [[gcp-pcse]].
resource "google_project_iam_audit_config" "storage_data_access" {
service = "storage.googleapis.com"
audit_log_config {
log_type = "DATA_READ"
}
audit_log_config {
log_type = "DATA_WRITE"
}
}O exame CDL adora este padrão — orçamentos + alertas do Cloud Billing é o formato recorrente das perguntas do exame CDL para controle de custos. Definimos um orçamento de $10/mês e configuramos alertas em 50% / 90% / 100% dos gastos previstos. O alerta é enviado por e-mail aos administradores da conta de faturamento (nenhuma configuração extra é necessária para e-mail; para Slack / PagerDuty, você adicionaria um tópico do Pub/Sub + uma função do Cloud Function para distribuição).
Substitua your-billing-account-id pelo seu ID real. O orçamento é limitado ao projeto atual apenas via filtro projects — o exame CDL testa esta distinção orçamento por projeto vs orçamento para toda a organização.
data "google_project" "current" {}
resource "google_billing_budget" "monthly_10" {
billing_account = "your-billing-account-id" # REPLACE — find via `gcloud beta billing accounts list`
display_name = "certlabpro-cdl-$10-monthly"
budget_filter {
projects = ["projects/${data.google_project.current.number}"]
}
amount {
specified_amount {
currency_code = "USD"
units = "10"
}
}
threshold_rules {
threshold_percent = 0.5
spend_basis = "FORECASTED_SPEND"
}
threshold_rules {
threshold_percent = 0.9
spend_basis = "FORECASTED_SPEND"
}
threshold_rules {
threshold_percent = 1.0
spend_basis = "CURRENT_SPEND"
}
depends_on = [google_project_service.budgets]
}terraform destroy desmonta tudo de forma limpa. O bucket é destruído (o force_destroy = true, apenas para o laboratório, permite que o Terraform o exclua mesmo quando não vazio — nunca use isso em produção). O orçamento é desanexado; os e-mails param. A configuração de auditoria IAM reverte para o padrão. Os serviços de projeto permanecem habilitados (definimos disable_on_destroy = false — eles são gratuitos para manter ativados, e desabilitá-los pode quebrar cargas de trabalho não relacionadas no mesmo projeto).
O CDL abrange muitas superfícies do GCP que este laboratório não pode incluir — VMs do Compute Engine, clusters GKE, Cloud Run, Cloud Functions, App Engine, BigQuery, Cloud SQL, Spanner, Bigtable, Firestore, Cloud Pub/Sub, Dataflow, Dataproc, Vertex AI, Cloud Build, Cloud Deploy, Anthos / Multi-Cloud, Cloud CDN / Cloud Armor, VPC + Cloud NAT, Cloud Interconnect, Cloud IAM / Identity, Cloud KMS, Security Command Center, todo o marketplace do GCP.
Nos apegamos aos primitivos de Armazenamento + Registro + Faturamento porque são a pegada de menor denominador comum que todo cenário de exame CDL presume estar em vigor. Todos os outros serviços do GCP escrevem no Cloud Storage / leem do Cloud Storage / registram logs no Cloud Logging / aparecem em um painel do Cloud Billing. Domine a fundação; adicione serviços especializados mais tarde.
Para a cobertura conceitual serviço a serviço, consulte as seções Navegar, Guia e Editorial desta página de certificação.