Implantar uma VPC com o Terraform

Saiba como usar o Infrastructure Manager para implantar uma nuvem privada virtual (VPC).

Este guia de início rápido usa uma configuração do Terraform armazenada em um repositório público do GitHub. A configuração define a VPC a ser provisionada.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se agora.

  2. Instale a CLI do Google Cloud.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Google Cloud :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto Google Cloud que você está criando.

    • Selecione o projeto Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud .

  6. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  7. Ative a API Infrastructure Manager:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable config.googleapis.com
  8. Configure a autenticação:

    1. Verifique se você tem o papel do IAM de criação de contas de serviço (roles/iam.serviceAccountCreator) e o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin). Saiba como conceder papéis.
    2. Crie a conta de serviço:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Substitua SERVICE_ACCOUNT_NAME por um nome para a conta de serviço.

    3. Conceda o papel do IAM roles/config.agent à conta de serviço:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Substitua:

      • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
      • PROJECT_ID: o ID do projeto em que você criou a conta de serviço
  9. Instale a CLI do Google Cloud.

  10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Google Cloud :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto Google Cloud que você está criando.

    • Selecione o projeto Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud .

  13. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  14. Ative a API Infrastructure Manager:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable config.googleapis.com
  15. Configure a autenticação:

    1. Verifique se você tem o papel do IAM de criação de contas de serviço (roles/iam.serviceAccountCreator) e o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin). Saiba como conceder papéis.
    2. Crie a conta de serviço:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Substitua SERVICE_ACCOUNT_NAME por um nome para a conta de serviço.

    3. Conceda o papel do IAM roles/config.agent à conta de serviço:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Substitua:

      • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
      • PROJECT_ID: o ID do projeto em que você criou a conta de serviço

Conceder permissões para recursos na configuração

Você concedeu as permissões necessárias para executar o Infra Manager, mas também precisa conceder permissões específicas aos recursos descritos na configuração que está implantando.

Conceda permissões para a VPC, que é o recurso definido na configuração do Terraform.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

Substitua:

  • SERVICE_ACCOUNT_NAME: o nome da conta de serviço.
  • PROJECT_ID: o ID do projeto.

Visualizar a implantação

Antes de criar uma implantação, é possível criar uma prévia dela. Use essa prévia para verificar os recursos que serão provisionados.

O comando a seguir tem quatro valores preenchidos que não têm um valor padrão. Esses valores são: o ID do projeto, o nome da conta de serviço, o local us-central1 e o nome quickstart-vpc da rede que você está criando.

Para criar uma prévia, use o seguinte comando:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
        --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=main \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Depois de criar uma prévia, você pode analisar os resultados. Este início rápido pula essa etapa, mas você pode consultar Exportar e visualizar resultados de prévia se quiser mais detalhes.

Criar uma implantação

Use o Infra Manager para criar uma implantação. Isso significa que o Gerenciador de infraestrutura provisiona os recursos definidos na configuração do Terraform.

A configuração deste início rápido tem quatro valores que não têm um valor padrão. O comando a seguir adiciona estes valores: o ID do projeto, o nome da conta de serviço, o local us-central1 e o nome quickstart-vpc da rede que você está criando.

gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
    --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
    --git-source-directory=modules/vpc \
    --git-source-ref=main \
    --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Quando a implantação for concluída, você verá:

Creating the deployment...done

A VPC agora está criada e configurada conforme descrito na configuração.

Ver os resultados do build no Cloud Build

Para conferir o job do Cloud Build usado pelo Infra Manager para criar a implantação, abra a página Histórico do build no console do Google Cloud :

Abrir a página "Histórico de criações"

Ver o status da implantação

Agora que a implantação foi concluída, você pode conferir a descrição dela para analisar informações, incluindo o estado.

Confira a descrição da implantação:

gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

A saída tem detalhes sobre a implantação, incluindo o carimbo de data/hora dela, o nome da revisão mais recente e o estado.

Para o estado, você vê ACTIVE.

Ver detalhes sobre a VPC provisionada

Confira detalhes sobre a VPC provisionada:

gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID

Substitua REVISION_ID pelo ID da revisão mais recente. O ID é r-0, a menos que você tenha feito várias implantações. É possível conferir o ID da revisão mais recente na descrição da implantação na seção anterior.

Ver a VPC no console

Confira a VPC no console:

Acessar redes VPC

Você vai ver a VPC chamada quickstart-vpc. Esta é a VPC provisionada pelo Infra Manager.

Limpar

Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, exclua os recursos que não são mais necessários.

Excluir a VPC

Exclua a VPC e os metadados sobre a implantação:

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

Excluir o projeto

Se você implantou a solução em um novo projeto do Google Cloud e não precisa mais dele, exclua-o seguindo estas etapas:

  1. No console Google Cloud , acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. No prompt, digite o ID do projeto e clique em Encerrar.

A seguir