Configurar o IAP para o Compute Engine

Este guia descreve como configurar uma instância do Compute Engine com o Identity-Aware Proxy (IAP). Se já tiver a instância do Compute Engine configurada e só precisar de ativar o IAP, consulte o artigo Ativar o IAP para o Compute Engine.

Objetivos

Neste tutorial, vai saber mais sobre o seguinte:

  • Criar um modelo de instância do Compute Engine e um grupo de instâncias geridas (MIG).
  • Obter um nome de domínio e um certificado.
  • Criar um balanceador de carga HTTPS com um certificado.
  • Ativar CNA.
  • Testar se a IAP está a funcionar.

Custos

Este tutorial usa componentes faturáveis do Google Cloud, incluindo o seguinte:

  • Compute Engine
    • 4 máquinas virtuais (VMs)
  • Redes
    • Regra de encaminhamento do balanceador de carga global
    • Tráfego de entrada

Para uma estimativa de custos com base na utilização prevista, consulte esta calculadora de preços.

Os novos utilizadores da Cloud Platform podem ser elegíveis para uma avaliação gratuita.

Antes de começar

Antes de iniciar este tutorial, precisa do seguinte:

  1. Selecione ou crie um Google Cloud projeto.
    ACEDER À PÁGINA DE PROJETOS

  2. Ative a faturação para o seu projeto. Leia sobre como modificar as definições de faturação de um projeto

Passo 1: crie um modelo do Compute Engine

Na Google Cloud consola, aceda à página Compute Engine > Criar um modelo de instância e selecione o projeto onde quer criar um modelo.

ACEDA À PÁGINA DE CRIAÇÃO DE UM MODELO DE INSTÂNCIA

Use os valores predefinidos, exceto para o seguinte:

  • Tipo de máquina:
    • micro (f1-micro)
  • Âmbitos de acesso:
    • Defina o acesso para cada API
    • Compute Engine: só de leitura
  • Firewall:
    • Permita tráfego HTTP
  • Na secção Gestão, em Automatização > Script de arranque, copie e cole o seguinte script:
    # Copyright 2021 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    apt-get -y update
    apt-get -y install git
    apt-get -y install virtualenv
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    cd python-docs-samples/iap
    virtualenv venv -p python3
    source venv/bin/activate
    pip install -r requirements.txt
    cat example_gce_backend.py |
      sed -e "s/YOUR_BACKEND_SERVICE_ID/$(gcloud compute backend-services describe my-backend-service --global --format="value(id)")/g" |
      sed -e "s/YOUR_PROJECT_ID/$(gcloud config get-value account | tr -cd "[0-9]")/g" > real_backend.py
    gunicorn real_backend:app -b 0.0.0.0:80
    

Quando terminar de atualizar os valores, clique em Criar para criar o modelo.

Passo 2: crie um grupo de instâncias gerido

Na Google Cloud consola, aceda à página Compute Engine > Criar um novo grupo de instâncias e selecione o projeto onde quer criar um grupo de instâncias gerido.

ACEDA À PÁGINA DE CRIAÇÃO DE UM GRUPO DE INSTÂNCIAS

Use os valores predefinidos, exceto para o seguinte:

  • Nome: my-managed-instance-group
  • Localização: várias zonas
  • Modelo de instância: selecione o modelo de instância que criou no passo 1
  • Número de instâncias: para alterar o número de instâncias, tem de desativar primeiro o dimensionamento automático.
  • Modo de escala automática: não usar escala automática
  • Verificação de funcionamento: selecione Criar uma verificação de funcionamento e, de seguida, introduza os seguintes valores:

    • Nome: my-health-check
    • Protocolo: HTTP

    Use a nova verificação de estado clicando em Guardar e continuar.

Quando terminar de atualizar os valores, clique em Criar para criar o grupo de instâncias gerido (MIG).

Passo 3: obtenha um nome de domínio e um certificado

Para usar o balanceador de carga com tráfego HTTPS, precisa de um nome de domínio e um certificado assinado. Pode registar um domínio no Cloud Domains ou usar a entidade de registo de domínios à sua escolha. Registe o seu domínio antes de continuar.

Configure o seu certificado

Crie um certificado que identifique o seu Website junto dos utilizadores. Para obter informações sobre como criar um certificado, consulte o artigo Usar certificados SSL geridos pela Google.

A AC tem de validar que é proprietário do nome de domínio que registou. Nos passos seguintes, cria uma VM para autenticar o seu domínio com a AC.

Crie uma VM para autenticar a propriedade do seu domínio

Na Google Cloud consola, aceda à página Compute Engine > Criar uma instância.

ACEDA À PÁGINA DE CRIAÇÃO DE UMA INSTÂNCIA

Use os valores predefinidos, exceto para o seguinte:

  • Nome: certbot-vm
  • Tipo de máquina: micro (f1-micro)
  • Âmbitos de acesso:
    • Defina o acesso para cada API
    • Compute Engine: leitura/escrita
  • Imagem de disco de arranque:
    • Debian GNU/Linux 9 (stretch)
  • Firewall:
    • Permita tráfego HTTP
    • Permita o tráfego HTTPS

Quando terminar de atualizar os valores, clique em Criar para criar a instância de VM. Tome nota do endereço IP externo da VM que acabou de criar. Vai precisar dele no passo seguinte.

Configure o seu domínio para apontar para a VM

Para configurar o seu domínio de modo a apontar para a VM, siga estes passos para configurar os registos A:

  1. Inicie sessão na conta do seu domínio no anfitrião de domínio.
  2. Encontre a página para atualizar os registos de DNS do seu domínio. Esta página pode ter um nome semelhante a Gestão de DNS, Gestão do servidor de nomes ou Definições avançadas.
  3. Altere os seus registos A para os seguintes valores:
    • Nome/anfitrião/alias: @
    • Valor: o endereço IP externo da VM que criou para autenticar a propriedade do domínio acima.
    • TTL: o valor predefinido da sua entidade de registo ou 86 400 (um dia).
  4. Aguarde até que o registo de DNS seja atualizado. A propagação do registo que adicionou pode demorar até um dia.

Para saber mais, consulte o artigo Acerca dos registos A.

Teste o seu servidor

Para testar se o seu servidor está a funcionar corretamente, siga estes passos:

  1. Na Google Cloud consola, aceda à página Compute Engine > Instâncias de VM.
    ACEDER À PÁGINA DE INSTÂNCIAS DE VM

  2. Em Ligar para certbot-vm, clique em SSH.

  3. Execute os seguintes comandos para executar um pequeno servidor Web na sua VM:

      mkdir web
      cd web
      echo "Hello" > index.html
      sudo busybox httpd -v -f
    
  4. Num navegador de Internet, aceda ao nome de domínio que registou anteriormente. O navegador de Internet deve apresentar Hello e a sessão SSH deve apresentar uma mensagem que contenha ... response:200. Caso contrário, aguarde alguns minutos e repita este passo.