Visão geral
Neste laboratório, você vai proteger cargas de trabalho do Compute Engine com o Identity-Aware Proxy (IAP) do BeyondCorp Enterprise para restringir o tráfego com base na identidade.
O IAP é um recurso do BeyondCorp Enterprise, a solução de confiança zero do Google Cloud que permite que a força de trabalho de uma organização acesse aplicativos da Web com segurança de qualquer lugar, sem a necessidade de VPN e sem medo de malwares, phishing e perda de dados.
Neste laboratório, vamos oferecer um ambiente de desenvolvimento integrado (IDE) baseado na Web, ao qual você vai restringir o acesso com a ativação da configuração de confiança zero.
Objetivos
Neste laboratório, você aprenderá a fazer o seguinte:
- Configurar o consentimento do OAuth.
- Configurar credenciais de acesso do OAuth.
- Configurar o acesso do IAP para o aplicativo implantado.
- Usar o IAP para restringir o acesso ao aplicativo.
Configuração e requisitos
Antes de clicar no botão "Começar o laboratório"
Importante: leia estas instruções.
Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático do Qwiklabs permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você receberá novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
O que é necessário
Veja os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome)
- Tempo disponível para concluir as atividades
Observação: não use seu projeto ou conta pessoal do Google Cloud neste laboratório.
Observação: se você estiver usando um Pixelbook, faça o laboratório em uma janela anônima.
Como começar o laboratório e fazer login no console
-
Clique no botão Começar o laboratório. Se for preciso pagar pelo laboratório, você verá um pop-up para selecionar a forma de pagamento.
Um painel aparece à esquerda contendo as credenciais temporárias que você precisa usar no laboratório.

-
Copie o nome de usuário e clique em Abrir console do Google.
O laboratório ativa os recursos e depois abre a página Escolha uma conta em outra guia.
Observação: abra as guias em janelas separadas, lado a lado.
-
Na página "Escolha uma conta", clique em Usar outra conta. A página de login abre.

-
Cole o nome de usuário que foi copiado do painel "Detalhes da conexão". Em seguida, copie e cole a senha.
Observação: é necessário usar as credenciais do painel "Detalhes da conexão". Não use suas credenciais do Google Cloud Ensina. Não use sua conta pessoal do Google Cloud, caso tenha uma neste laboratório (isso evita cobranças).
- Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Cloud abre nesta guia.
Observação: para acessar a lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo.
Ative o Google Cloud Shell
O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud.
O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
-
No console do Cloud, clique no botão "Abrir o Cloud Shell" na barra de ferramentas superior direita.

-
Clique em Continuar.
O provisionamento e a conexão do ambiente podem demorar um pouco. Quando você estiver conectado, já estará autenticado, e o projeto estará definido com seu PROJECT_ID. Exemplo:

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- Para listar o nome da conta ativa, use este comando:
gcloud auth list
Saída:
Credentialed accounts:
- @.com (active)
Exemplo de saída:
Credentialed accounts:
- google1623327_student@qwiklabs.net
- Para listar o ID do projeto, use este comando:
gcloud config list project
Saída:
[core]
project =
Exemplo de saída:
[core]
project = qwiklabs-gcp-44776a13dea667a6
Observação:
a documentação completa da gcloud está disponível no
guia com informações gerais sobre a gcloud CLI
.
Tarefa 1: criar um modelo do Compute Engine
Nesta tarefa, você vai criar um modelo de instância. Esse é um recurso que você usa para criar instâncias de máquina virtual (VM) e grupos gerenciados de instâncias (MIGs, na sigla em inglês).
-
No Menu de navegação do console do Google Cloud (
), clique em Compute Engine > Modelos de instância.
-
Selecione Criar modelo de instância.
-
Na página Criar um modelo de instância, especifique as informações a seguir e mantenha as outras configurações padrão:
Propriedade |
Valor |
Local |
Global |
Série |
E2 |
Tipo de máquina |
e2-micro (2 vCPUs) |
Escopos de acesso |
Definir acesso para cada API |
Escopos de acesso > Compute Engine |
Somente leitura |
Firewall |
Permitir tráfego HTTP |
-
Clique em Opções avançadas.
-
Clique em Gerenciamento.
-
Em Automação > Script de inicialização, 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.
sudo apt-get -y update
sudo apt-get -y install git
sudo 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
- Clique em Criar.
A criação do modelo de instância leva alguns instantes.
Tarefa 2: criar um grupo gerenciado de instâncias
Nesta tarefa, você vai criar um grupo gerenciado de instâncias (MIG, na sigla em inglês), que é uma coleção de instâncias de máquina virtual (VM) que você gerencia como uma única entidade.
-
No Menu de navegação do console do Google Cloud (
), clique em Compute Engine > Grupos de instâncias.
-
Clique em Criar grupo de instâncias.
-
Clique em Novo grupo gerenciado de instâncias (sem estado) no menu à esquerda.
-
Na página Novo grupo gerenciado de instâncias (sem estado), especifique as informações a seguir e mantenha as outras configurações padrão:
Propriedade |
Valor |
Nome |
my-managed-instance-group |
Modelo de instância |
Selecione o modelo de instância que você criou na Tarefa 1. |
Local |
Várias zonas |
Região |
us-central1 (Iowa) |
Escalonamento automático > Modo de escalonamento automático |
Desativado: não fazer escalonamento automático |
Número de instâncias |
Para alterar o número de instâncias, primeiro é preciso desativar o escalonamento automático; consulte abaixo. Depois de fazer isso, defina o valor numérico máximo como 3. |
Observação: não se esqueça de definir o número de instâncias depois de alterar o modo de escalonamento automático.
- Clique em Criar.
A criação do MIG vai levar uns minutos.
Tarefa 3: criar um recurso de certificado SSL autogerenciado do Google Cloud
Nesta tarefa, você vai criar uma chave privada, um certificado e um recurso de certificado SSL autogerenciado. Para poder criar um recurso de certificado SSL do Google Cloud, é preciso ter uma chave privada e um certificado.
Um certificado SSL do Google Cloud inclui uma chave privada e o certificado em si, ambos no formato PEM.
Os certificados SSL autogerenciados são conseguidos, provisionados e renovados por você. Use esse recurso para proteger a comunicação entre os clientes e o balanceador de carga, que você vai criar na próxima tarefa.
Criar uma chave privada e um certificado
-
Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (
). Caso seja solicitado, clique em Continuar.
-
Para criar uma nova chave privada com criptografia RSA-2048 no formato PEM OpenSSL, execute este comando:
openssl genrsa -out PRIVATE_KEY_FILE 2048
Criar uma CSR
Gere uma solicitação de assinatura de certificado (CSR, na sigla em inglês) no formato PEM usando OpenSSL.
-
Clique em Abrir editor. Se for solicitado, clique em Abrir em uma nova janela.
-
No editor do Cloud Shell, clique no menu e selecione Arquivo > Novo arquivo.
-
Defina ssl_config como nome do arquivo e pressione Enter.
-
Verifique se o local de criação do arquivo aparece como /home > student-XX-XXXXXXXXX/ssl_config e clique em OK.
-
Copie e cole a seguinte configuração na janela do editor do Cloud Shell:
[req]
default_bits = 2048
req_extensions = extension_requirements
distinguished_name = dn_requirements
prompt = no
[extension_requirements]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
[dn_requirements]
countryName = US
stateOrProvinceName = CA
localityName = Mountain View
0.organizationName = Cloud
organizationalUnitName = Example
commonName = Test
-
Clique no menu e selecione Arquivo > Salvar.
-
Retorne à guia anterior. Talvez seja necessário clicar em Abrir terminal para retomar a sessão do Cloud Shell.
-
Para criar um arquivo de solicitação de assinatura de certificado (CSR, na sigla em inglês), execute este comando OpenSSL:
openssl req -new -key PRIVATE_KEY_FILE \
-out CSR_FILE \
-config ssl_config
Assinar a CSR
Quando uma autoridade certificadora (CA) assina a CSR, ela usa a própria chave privada para criar um certificado.
- Para criar um certificado autoassinado para teste, execute este comando OpenSSL:
openssl x509 -req \
-signkey PRIVATE_KEY_FILE \
-in CSR_FILE \
-out CERTIFICATE_FILE.pem \
-extfile ssl_config \
-extensions extension_requirements \
-days 365
Criar um recurso de certificado SSL autogerenciado
Para poder criar um recurso de certificado SSL do Google Cloud, é preciso ter uma chave privada e um certificado.
- Para criar um certificado SSL global, use o comando
gcloud compute ssl-certificates create
com a flag --global
:
gcloud compute ssl-certificates create my-cert \
--certificate=CERTIFICATE_FILE.pem \
--private-key=PRIVATE_KEY_FILE \
--global
- No comando Autorizar o Cloud Shell, clique em Autorizar.
Tarefa 4: criar um balanceador de carga
Nesta tarefa, você vai criar um balanceador de carga. O balanceamento de carga HTTP(S) é implementado no Google Front End (GFE). Os GFEs são distribuídos globalmente e funcionam em conjunto usando a rede global e o plano de controle do Google.
Para configurar um balanceador de carga, suas VMs precisam estar em um grupo de instâncias, que foi criado nas tarefas anteriores.
-
No console do Google Cloud, acesse o Menu de navegação (
), clique em Ver todos os produtos e selecione Serviços de rede > Balanceamento de carga.
-
Selecione Criar balanceador de carga.
-
Em Balanceador de carga de aplicativo (HTTP/S), clique em Próxima.
-
Em Voltado ao público ou somente interno, selecione Voltado ao público (externo) e clique em Próxima.
-
Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Próxima.
-
Em Geração do balanceador de carga, selecione Balanceador de carga de aplicativo externo global e clique em Próxima.
-
Clique em Configurar.
-
Em Nome do balanceador de carga, digite my-load-balancer.
-
Clique em Configuração de back-end > Serviços e buckets de back-end > Criar um serviço de back-end.
-
No painel Criar serviço de back-end, em Nome, digite my-backend-service.
Use exatamente o nome my-backend-service. Se você usar um nome diferente, o script de inicialização nas suas VMs não vai conseguir encontrar o ID correto do serviço de back-end para autenticar as solicitações.
-
Em Novo back-end, especifique as informações a seguir e mantenha as outras configurações padrão:
Propriedade |
Valor |
Grupo de instâncias |
my-managed-instance-group |
Números de portas |
80 |
-
Desmarque Ativar Cloud CDN.
-
Em Verificação de integridade, clique em Criar uma verificação de integridade.
-
Em Nome, digite my-health-check.
-
Em Protocolo, selecione HTTP.
-
Clique em Salvar.
-
Clique em Criar.
O painel "Criar um balanceador de carga de aplicativo externo global" vai aparecer novamente.
- Clique em Configuração de front-end. Especifique os seguintes valores e não mude as configurações restantes:
Propriedade |
Valor |
Protocolo |
HTTPS (inclui HTTP/2 e HTTP/3) |
Endereço IP |
Clique em Temporário, e selecione Criar endereço IP
|
Nome |
Digite static-ip e clique em Reservar. |
Certificado |
my-cert |
- Clique em Concluído.
O painel "Criar um balanceador de carga de aplicativo externo global" vai aparecer novamente.
- Em Criar um balanceador de carga de aplicativo externo global, clique em Criar.
A página Balanceamento de carga será exibida, e o novo balanceador de carga será criado na respectiva lista.
- Quando o console do Cloud criar o novo balanceador de carga, clique no nome dele e anote o endereço IP externo em Detalhes > Front-end. Ele será necessário na tarefa 7.
Tarefa 5: reiniciar suas VMs
Nesta tarefa, você vai reiniciar as VMs em seu MIG para que elas possam autenticar corretamente as solicitações do IAP.
-
No Menu de navegação do console do Google Cloud (
), clique em Compute Engine > Grupos de instâncias.
-
Clique em my-managed-instance-group.
-
Clique em Reiniciar/substituir VMs.
-
Em Operação, clique em Reiniciar.
-
Em Instâncias, digite 3
-
Em Tempo mínimo de espera, digite 0
-
Clique em Reiniciar VMs.
Tarefa 6: configurar o IAP
Configurar seu firewall
Nesta tarefa, você vai configurar seu firewall para bloquear o acesso às VMs subjacentes e permitir apenas o acesso pelo IAP.
-
No Menu de navegação do console do Google Cloud (
), clique em Rede VPC > Firewall.
-
Marque a caixa de seleção default-allow-internal.
-
Clique em Excluir e depois selecione Excluir para confirmar.
-
Clique em Criar regra de firewall. Especifique os seguintes valores e não mude as configurações restantes:
Propriedade |
Valor |
Nome |
allow-iap-traffic |
Destinos |
Todas as instâncias na rede |
Intervalos IPv4 de origem |
130.211.0.0/22, 35.191.0.0/16 (pressione Enter depois de colar cada valor na caixa) |
Protocolos e portas |
Portas e protocolos especificados |
TCP |
80 |
- Clique em Criar.
Configurar o IAP
Nesta etapa, você vai configurar o IAP para seu projeto.
-
No Menu de navegação do console do Google Cloud (
), clique em Segurança > Identity-Aware Proxy.
-
Clique em Ativar API.
-
Clique em Acessar Identity Aware Proxy.
-
Clique em Configurar tela de permissão.
Atenção: não insira informações confidenciais na tela de permissão OAuth. As informações que você salvar nessa tela poderão ser vistas por qualquer pessoa que acessar seu URL. O e-mail e os detalhes do produto são exibidos na tela de login e quando alguém tenta acessar um recurso sem ter permissão para isso.
-
Em Tipo de usuário, selecione Externo e clique em Criar.
-
Em Nome do app, digite IAP.
-
Em E-mail para suporte do usuário, selecione a conta de estudante. Ela tem o valor student-00-*****@qwiklabs.net.
-
Em Informações de contato do desenvolvedor, copie e cole o Nome de usuário da conta do estudante da janela do laboratório. Isso corresponde ao valor na etapa anterior.
-
Clique em Salvar e continuar três vezes e selecione Voltar ao painel.
Para alterar as informações na tela de permissão OAuth no futuro, como o nome do produto ou o endereço de e-mail, repita as etapas anteriores para configurar a tela de permissão.
-
No Menu de navegação do console do Google Cloud (
), clique em Segurança > Identity-Aware Proxy.
-
Ao lado de my-backend-service, alterne a chave de ativação/desativação na coluna IAP.
-
Na caixa de diálogo Ativar IAP, marque a caixa de seleção para confirmar que você leu os requisitos de configuração.
-
Clique em Ativar.
Observação: se um erro for exibido, clique nele. Se você precisar adicionar uma regra de firewall, edite a regra criada anteriormente para incluir o número da porta mencionado no erro.
Confirme se o consentimento do OAuth foi configurado.
Adicionar principais à lista de acesso
Nesta etapa, você vai adicionar principais à lista de acesso do IAP para seu projeto.
-
Em Identity-Aware Proxy, marque a caixa de seleção my-backend-service.
-
Clique em Adicionar principal.
-
Para conceder acesso a você, em Novos principais, copie e cole o Nome de usuário do qwiklabs do painel de credenciais do laboratório.
-
Selecione o papel do Cloud IAP > Usuário de app da Web protegido pelo IAP.
-
Clique em Salvar.
Confirme o principal para acessar o aplicativo configurando o IAM.
Tarefa 7: testar o IAP
Nesta tarefa, você vai executar um comando curl para testar o acesso ao balanceador de carga externo e, em seguida, vai verificar se ele está protegido pelo IAP.
-
No console do Google Cloud, acesse o Menu de navegação (
), clique em Ver todos os produtos e selecione Serviços de rede > Balanceamento de carga.
-
Clique em Front-ends.
-
Na barra de título do console do Google Cloud, clique em Ativar o Cloud Shell (
). Caso seja solicitado, clique em Continuar.
-
Execute o seguinte comando curl, substituindo Load Balancer External IP address pelo endereço IP externo do seu balanceador de carga:
curl -kvi https://<Load Balancer External IP address>
Observação: a exibição de uma resposta verdadeira gerada pelo IAP significa que você conseguiu configurar o IAP para sua instância do Compute Engine.
-
Role a página do console para cima e localize o redirecionamento Http/2 302 para accounts.google.com.
-
Clique no link local.
O link abre a página de autenticação integrada de contas do Google.
Observação: como você usou um certificado autoassinado, não será possível acessar o aplicativo em si. No entanto, isso confirma que o IAP está configurado e protegendo o tráfego.
Confirme o acesso restrito com o IAP.
Parabéns!
Você conseguiu usar o IAP para proteger um aplicativo da Web em execução em uma instância do Compute Engine.
Neste laboratório, você aprendeu a executar as seguintes tarefas:
- Criar um modelo de instância.
- Criar um grupo de instâncias.
- Criar um certificado autoassinado.
- Criar um balanceador de carga.
- Configurar uma tela de permissão OAuth.
- Conceder acesso ao aplicativo com o IAP.
Finalize o laboratório
Clique em Terminar o laboratório após a conclusão. O Google Cloud Ensina remove os recursos usados e limpa a conta por você.
Você vai poder avaliar sua experiência no laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.
O número de estrelas indica o seguinte:
- 1 estrela = muito insatisfeito
- 2 estrelas = insatisfeito
- 3 estrelas = neutro
- 4 estrelas = satisfeito
- 5 estrelas = muito satisfeito
Feche a caixa de diálogo se não quiser enviar feedback.
Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.
Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.