Práticas recomendadas ao trabalhar com recursos de Google Cloud

As práticas recomendadas para o aprovisionamento de Google Cloud recursos com o Terraform estão integradas nos módulos do Cloud Foundation Toolkit que a Google mantém. Este documento reitera algumas destas práticas recomendadas.

Este guia não é uma introdução ao Terraform. Para uma introdução à utilização do Terraform com o Google Cloud, consulte o artigo Comece a usar o Terraform.

Crie imagens de máquinas virtuais

Em geral, recomendamos que incorpore imagens de máquinas virtuais com uma ferramenta como o Packer. Em seguida, o Terraform só precisa de iniciar máquinas com as imagens pré-criadas.

Se as imagens pré-criadas não estiverem disponíveis, o Terraform pode transferir novas máquinas virtuais para uma ferramenta de gestão de configuração com um bloco provisioner. Recomendamos que evite este método e o use apenas como último recurso. Para limpar o estado antigo associado à instância, os aprovisionadores que requerem lógica de desativação devem usar um bloco provisioner com when = destroy.

O Terraform deve fornecer informações de configuração da VM à gestão de configuração com metadados de instâncias.

Faça a gestão da gestão de identidade e de acesso

Quando aprovisiona associações de IAM com o Terraform, estão disponíveis vários recursos diferentes:

  • google_*_iam_policy (por exemplo, google_project_iam_policy)
  • google_*_iam_binding (por exemplo, google_project_iam_binding)
  • google_*_iam_member (por exemplo, google_project_iam_member)

google_*_iam_policy e google_*_iam_binding criam associações de IAM autorizadas, em que os recursos do Terraform servem como a única fonte de informação fidedigna para as autorizações que podem ser atribuídas ao recurso relevante.

Se as autorizações forem alteradas fora do Terraform, o Terraform na sua próxima execução substitui todas as autorizações para representar a política conforme definida na sua configuração. Isto pode fazer sentido para recursos totalmente geridos por uma configuração específica do Terraform, mas significa que as funções geridas automaticamente pelo Google Cloud são removidas, o que pode interromper a funcionalidade de alguns serviços.

Para evitar esta situação, recomendamos que use os recursos google_*_iam_member diretamente ou o módulo IAM da Google.

O que se segue?