Implemente uma VPC com o Terraform

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

Este início rápido usa uma configuração do Terraform armazenada num repositório público do GitHub. A configuração define a VPC a aprovisionar.

Antes de começar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.

  3. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Infrastructure Manager API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable config.googleapis.com
  8. Set up authentication:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator). Learn how to grant roles.
    2. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    3. Grant the roles/config.agent IAM role to the service account:

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

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
  9. Install the Google Cloud CLI.

  10. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

    gcloud init
  12. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Infrastructure Manager API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable config.googleapis.com
  15. Set up authentication:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator). Learn how to grant roles.
    2. Create the service account:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Replace SERVICE_ACCOUNT_NAME with a name for the service account.

    3. Grant the roles/config.agent IAM role to the service account:

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

      Replace the following:

      • SERVICE_ACCOUNT_NAME: the name of the service account
      • PROJECT_ID: the project ID where you created the service account
  16. Conceda autorizações para recursos na configuração

    Concedeu as autorizações necessárias para executar o Infra Manager, mas também tem de conceder autorizações específicas aos recursos descritos na configuração que está a implementar.

    Conceda autorizaçõ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 o seguinte:

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

    Pré-visualize a implementação

    Antes de criar uma implementação, pode criar uma pré-visualização da mesma. Pode usar esta pré-visualização para validar os recursos que vão ser aprovisionados.

    O comando seguinte tem quatro valores preenchidos que não têm um valor predefinido. Estes valores são: o ID do projeto, o nome da conta de serviço, a localização us-central1 e o nome quickstart-vpc da rede que está a criar.

    Para criar uma pré-visualização, 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é-visualização, pode rever os resultados da pré-visualização. Este início rápido ignora este passo, mas pode ver o artigo Exporte e veja os resultados da pré-visualização se quiser mais detalhes.

    Cria uma implementação.

    Use o Infra Manager para criar uma implementação. Isto significa que o Infra Manager aprovisiona 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 predefinido. O comando seguinte adiciona estes valores: o ID do projeto, o nome da conta de serviço, a localização us-central1 e o nome quickstart-vpc da rede que está a criar.

    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 implementação estiver concluída, vê:

    Creating the deployment...done
    

    A VPC foi criada e configurada conforme descrito na configuração.

    Veja os resultados da compilação no Cloud Build

    Para ver a tarefa do Cloud Build que o Infra Manager usou para criar a implementação, abra a página Histórico de compilações na Google Cloud consola:

    Abra a página Histórico de compilação

    Veja o estado da implementação

    Agora que a implementação está concluída, pode ver a respetiva descrição para rever as informações sobre a mesma, incluindo o estado.

    Veja a descrição da implementação:

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

    O resultado tem detalhes sobre a implementação, incluindo a indicação de tempo da implementação, o nome da revisão mais recente e o estado.

    Para o estado, vê ACTIVE.

    Veja detalhes sobre a VPC aprovisionada

    Veja detalhes sobre a VPC aprovisionada:

    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. Este ID é r-0, a menos que tenha feito a implementação várias vezes. Pode ver o ID da revisão mais recente na descrição da implementação na secção anterior.

    Veja a VPC na consola

    Veja a VPC na consola:

    Aceda a redes de VPC

    Vê a VPC denominada quickstart-vpc. Este é o VPC aprovisionado pelo Infra Manager.

    Limpar

    Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, certifique-se de que elimina os recursos de que já não precisa.

    Elimine a VPC

    Elimine a VPC e os metadados sobre a implementação:

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

    Opcional: elimine o projeto

    Se implementou a solução num novo Google Cloud projeto e já não precisa do projeto, elimine-o concluindo os seguintes passos:

    1. Na Google Cloud consola, aceda à página Gerir recursos.

      Aceda a Gerir recursos

    2. Na lista de projetos, selecione o projeto que quer eliminar e, de seguida, clique em Eliminar.
    3. Na mensagem, escreva o ID do projeto e, de seguida, clique em Encerrar.

    O que se segue?