Do 403 Forbidden ao Apply Complete: Minha jornada épica no Terraform e Google Workspace
Você já sentiu aquela sensação de que o Google Cloud Platform (GCP) e o Google Workspace são como dois vizinhos que não se falam? Pois é, eu também.
Se você está começando a automatizar sua infraestrutura com Terraform, provavelmente já teve aquele momento clássico: você abre o terminal, todo empolgado, digita terraform plan e... PAM! O erro 403 Forbidden na sua cara. E aí, meu amigo, começa a saga.
Neste artigo, vou contar como sobrevivi à minha primeira experiência de criar grupos e usuários via código — e por que a autenticação quase me fez questionar minhas escolhas de carreira (brincadeira... ou não).
A Expectativa vs. A Realidade
Eu achava que seria fácil. "É só usar uma Service Account, baixar o JSON e ser feliz", pensei eu, na minha inocência de desenvolvedor que tinha acabado de ler a documentação.
A realidade? Foi um festival de erros de permissão. Eu tentava autenticar via gcloud, tentava via chaves, tentava via fé, e o GCP me respondia com aquele carinho de sempre: Permission Denied.
O Vilão da História: A Autenticação
A grande lição que aprendi — e que você provavelmente vai encontrar no seu caminho — é que o IAM do Google Cloud e o Google Workspace Admin são mundos diferentes.
Eu passava horas configurando permissões no IAM do Google Cloud, achando que isso bastaria. Spoiler: não bastava. O Google Workspace tem suas próprias regras, suas próprias APIs e, claro, a temida Delegação em Nível de Domínio.
Aquele momento em que você percebe que a sua "Service Account" é só uma conta comum no GCP, mas precisa "fingir" ser um administrador do Workspace para criar um grupo... ah, que momento revelador (e frustrante)!
O "Aha!" Moment
Depois de dias de café gelado e abas do navegador abertas até o infinito, a ficha caiu. O segredo não estava em dar Owner para a conta de serviço (não faça isso, sério!). O segredo estava em:
- Delegação de Domínio: Autorizar a conta de serviço no painel do Workspace.
- Escopos (Scopes): Entender que você precisa dar permissões granulares para a API de diretório.
- Impersonation: Aprender que, às vezes, a conta precisa "incorporar" um administrador humano para ter autoridade.
Quando finalmente digitei terraform apply e vi o terminal começar a criar usuários e grupos sem reclamar, eu quase levantei da cadeira para aplaudir o terminal. Foi um "Apply Complete" mais bonito do que qualquer pôr do sol.
O Que Eu Aprendi (E você deve levar para casa)
Não lute contra o segurança: O Google bloqueia a criação de chaves .json por um bom motivo (segurança!). Entender que o Workload Identity é o caminho do futuro (mesmo que eu tenha começado pelo jeito "raiz" das chaves) foi fundamental.
O Git é seu melhor amigo: Aprendi que, ao trabalhar com chaves de conta de serviço, o .gitignore é o seu maior escudo. Nunca, em hipótese alguma, envie segredos para o repositório.
Documentação é um labirinto: Às vezes, a resposta não está na primeira página da documentação, mas naquele rodapé que você ignorou por três horas.
Conclusão
Trabalhar com Terraform e Google Workspace é um teste de paciência, mas a sensação de ter sua infraestrutura automatizada e versionada vale cada erro 403 que eu encontrei pelo caminho.
Se você estiver passando por isso agora, respira fundo. O erro que você está vendo no terminal não é o fim da linha; é só o Google te forçando a aprender um pouco mais sobre segurança.
E você, qual foi o erro mais bizarro que você já encontrou tentando subir um ambiente de automação? Conta aqui nos comentários, vamos sofrer juntos!
https://github.com/viniciushoffmanndev/terraform-admin-console



