Deploy a Cloud Run service

Verificar meu progresso

/ 20

Enable and add policy to IAP

Verificar meu progresso

/ 30

Access User Identity Information

Verificar meu progresso

/ 25

Use Cryptographic Verification

Verificar meu progresso

/ 25

Este laboratório pode incorporar ferramentas de IA para ajudar no seu aprendizado.

GSP499

Laboratórios autoguiados do Google Cloud

Visão geral

Neste laboratório, você criará um pequeno aplicativo da web com o Cloud Run. Depois, verá diversas maneiras de usar o Identity-Aware Proxy (IAP) para restringir o acesso ao aplicativo e enviar informações de identidade do usuário a ele. Esse app vai:

  • Exibir uma página inicial.
  • Acessar informações de identidade do usuário transmitidas pelo IAP.
  • Usar a verificação criptográfica para evitar o spoofing dessas informações.

O que você vai aprender

Neste laboratório, você aprenderá a fazer o seguinte:

  • Escrever e implantar um serviço simples do Cloud Run usando Python.
  • Ativar e desativar o IAP para restringir o acesso ao app.
  • Transferir informações de identidade do usuário do IAP para o app.
  • Verificar criptograficamente as informações do IAP para se proteger contra spoofing.

Pré-requisitos

Sua experiência de aprendizado será melhor se você tiver conhecimento básico da linguagem de programação Python.

O foco deste laboratório é o Cloud Run e o IAP. Conceitos e blocos de códigos sem relevância não serão abordados. Eles são incluídos somente para você copiar e colar.

Introdução ao Identity-Aware Proxy

Muitas vezes, é preciso autenticar os usuários do seu app da web, e isso costuma exigir uma programação especial dele. Para os apps do Google Cloud, você pode transferir essa responsabilidade para o serviço Identity-Aware Proxy. Se você só precisar restringir o acesso a usuários selecionados, não precisará fazer mudanças no aplicativo. Quando é preciso saber a identidade do usuário para manter as preferências dele no servidor, por exemplo, o Identity-Aware Proxy pode fazer isso para você com pouco código no aplicativo.

O que é o Identity-Aware Proxy?

O Identity-Aware Proxy (IAP) é um serviço do Google Cloud que intercepta solicitações da Web enviadas ao aplicativo, autentica o autor delas usando o serviço de identidade do Google e só permite a transmissão quando elas vêm de um usuário autorizado. Além disso, o IAP pode modificar o cabeçalho das solicitações para incluir informações sobre o usuário autenticado.

Configuração e requisitos

Antes de clicar no botão Começar o Laboratório

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento. À direita, você encontra o painel Configuração e acesso ao laboratório com as seguintes informações:

    • O botão Abrir console do Google Cloud
    • As credenciais temporárias (nome de usuário e senha) que você vai usar no laboratório
    • Outros dados, se necessários

    O timer do laboratório fica na parte de cima da página e mostra o tempo restante.

  2. Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.

    O laboratório ativa os recursos e depois abre a página "Login" em outra guia.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Login.

    {{{user_0.username | "Username"}}}

    Você também encontra o nome de usuário no painel Configuração e acesso ao laboratório.

  4. Clique em Avançar.

  5. Copie a Senha abaixo e cole na caixa de diálogo Olá!.

    {{{user_0.password | "Password"}}}

    Você também encontra a senha no painel Configuração e acesso ao laboratório.

  6. Clique em Avançar.

    Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud. Observação: se você usar sua própria conta do Google Cloud neste laboratório, talvez receba cobranças adicionais.
  7. 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 sem custo financeiro.

Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.

Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar. Ícone do menu de navegação e campo de pesquisa

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias 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.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

  2. Clique nas seguintes janelas:

    • Continue na janela de informações do Cloud Shell.
    • Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.

Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

Saída:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.

Fazer o download do código

Clique na área da linha de comando no Cloud Shell para digitar os comandos.

Faça o download do código em um bucket de armazenamento público e mude para a pasta de código:

gcloud storage cp gs://{{{project_0.project_id}}}-bucket/user-authentication-with-iap.zip . unzip user-authentication-with-iap.zip cd user-authentication-with-iap

Essa pasta contém uma subpasta para cada etapa do laboratório. Acesse cada pasta no momento correspondente.

Tarefa 1: implantar o aplicativo e protegê-lo com o IAP

Este é um serviço do Cloud Run escrito em Python que mostra uma página inicial com a mensagem "Hello, World". Vamos implantá-lo, testá-lo e restringir o acesso a ele usando o IAP.

Revise o código do aplicativo

  • Mude da pasta principal do projeto para a subpasta 1-HelloWorld, que contém o código desta etapa.
cd 1-HelloWorld

O código do aplicativo está no arquivo main.py. Ele usa o framework da web Flask para responder às solicitações da web com o conteúdo de um modelo. O arquivo desse modelo está em templates/index.html e contém apenas HTML simples para esta etapa. Um segundo arquivo de modelo em templates/privacy.html inclui um exemplo básico de política de privacidade.

Há outro arquivo: requirements.txt lista todas as bibliotecas Python não padrão que o aplicativo usa.

Você pode listar cada arquivo no shell usando o comando cat, por exemplo:

cat main.py

Outra opção é iniciar o editor de código do Cloud Shell clicando no ícone Abrir editor (lápis) na barra de ferramentas do Cloud Shell e verificar o código.

Não é preciso alterar nenhum arquivo nesta etapa.

Implantar no Cloud Run

  1. Implante o app no Cloud Run:
gcloud run deploy user-auth-lab --source . --allow-unauthenticated --region={{{ project_0.default_region | "REGION" }}}
  1. Se for solicitado que você ative a API, digite Y para sim. Se for solicitado que você crie um repositório do Artifact Registry para continuar, digite Y para sim.

Em alguns minutos, a implantação será concluída. Você vai ver uma mensagem com o URL do serviço.

  1. Abra o URL do serviço exibido em uma nova guia do navegador para visualizar a página da web. O acesso ainda não está restrito.

Página do IAP com a guia Hello World

Clique em Verificar meu progresso para conferir o objetivo. Implantar um serviço do Cloud Run

Restringir o acesso com o IAP

  1. No console do Google Cloud, no menu de navegação (Ícone do menu de navegação), clique em Segurança > Identity-Aware Proxy.

  2. Clique em Ativar API.

  3. Selecione Acessar Identity Aware Proxy.

  4. Clique no botão ativar/desativar na coluna IAP ao lado de user-auth-lab para ativar o IAP.

  5. Clique em Ativar para confirmar.

Verificar se o IAP está ativado

  1. Abra uma nova guia do navegador e vá até o URL do seu app. A página Fazer login com o Google será aberta.

  2. Faça login com as credenciais da conta de estudante que você usou para acessar o console.

    Uma tela negando seu acesso é exibida. Você protegeu seu app com o IAP, mas ainda não autorizou nenhuma conta de usuário.

  3. Volte para a página Identity-Aware Proxy no console.

  4. Marque a caixa de seleção ao lado do serviço user-auth-lab do Cloud Run para abrir a barra lateral de detalhes à direita.

  5. Clique em Adicionar principal.

  6. Em Novos principais, digite seu endereço de e-mail de estudante.

  7. Em Selecionar papel, selecione Cloud IAP > Usuário do app da web protegido pelo IAP.

  8. Clique em Salvar. A mensagem "Política atualizada" aparece na parte de baixo da página.

  9. Navegue de volta para o aplicativo e atualize a página. Como você já fez login com uma conta autorizada, o app da web vai ser exibido.

Observação: demora cerca de um minuto para a mudança de papel ser aplicada. Se a página ainda mostrar a mensagem "Você não tem acesso", espere um minuto e tente atualizar a página.

Clique em Verificar meu progresso para conferir o objetivo. Ative e adicione a política ao IAP

Se a página de acesso negado ainda aparecer, apague o cookie de login do IAP:

  1. Adicione /_gcp_iap/clear_login_cookie ao final do URL do serviço (por exemplo, https://user-auth-lab-[random-hash].run.app/_gcp_iap/clear_login_cookie) e abra-o.
  2. Quando a nova página Fazer login com o Google aparecer, clique em Usar outra conta e insira novamente suas credenciais de estudante.

Tarefa 2: acessar as informações de identidade do usuário

Quando um app é protegido pelo IAP, ele pode usar as informações de identidade transmitidas pelo IAP no cabeçalho das solicitações da web. Nesta etapa, o aplicativo vai receber o endereço de e-mail do usuário que fez login e um ID de usuário único e permanente atribuído a ele pelo serviço de identidade do Google. Esses dados serão exibidos para o usuário na página inicial.

  • No Cloud Shell, mude para a pasta para esta primeira etapa:
cd ~/user-authentication-with-iap/2-HelloUser

Implantar no Cloud Run

  1. Implante o app no Cloud Run:
gcloud run deploy user-auth-lab --source . --region={{{ project_0.default_region | "REGION" }}}
  1. Se for necessário continuar, digite Y para sim.

Em alguns minutos, a implantação será concluída. Enquanto você espera, analise os arquivos do aplicativo conforme descrito abaixo.

Clique em Verificar meu progresso para conferir o objetivo. Acessar as informações de identidade do usuário

Analisar os arquivos do aplicativo

  1. Visualize o arquivo principal do aplicativo no Cloud Shell usando o comando cat:
cat main.py
  1. Confira o arquivo de modelo para saber como ele exibe os dados do usuário:
cat templates/index.html

Esta pasta contém o mesmo conjunto de arquivos visto no app anterior implantado, 1-HelloWorld, mas dois deles foram alterados: main.py e templates/index.html. O programa passou por mudanças para buscar as informações do usuário transmitidas pelo IAP no cabeçalho das solicitações, e o modelo agora exibe esses dados.

Existem duas linhas em main.py que buscam os dados de identidade transmitidos pelo IAP:

user_email = request.headers.get('X-Goog-Authenticated-User-Email') user_id = request.headers.get('X-Goog-Authenticated-User-ID')

Os cabeçalhos X-Goog-Authenticated-User- são transmitidos pelo IAP, e não há distinção nos nomes entre maiúsculas de minúsculas. Portanto, você pode digitá-los como preferir. Agora a instrução render_template inclui esses valores para eles serem exibidos:

page = render_template('index.html', email=user_email, id=user_id)

Coloque os nomes em chaves duplas para que o modelo index.html mostre esses valores:

Hello, {{ email }}! Your persistent ID is {{ id }}.

Os dados transmitidos têm o prefixo accounts.google.com, que mostra a origem das informações. Se você quiser, o aplicativo poderá remover tudo até os dois pontos (inclusive essa pontuação) para exibir os valores brutos.

Testar o app atualizado

  1. Recupere o URL do seu aplicativo:
gcloud run services describe user-auth-lab --region={{{ project_0.default_region | "REGION" }}} --format='value(status.url)'
  1. Abra esse URL em uma nova guia do navegador.
  2. Atualize a página, se necessário, para ver seu endereço de e-mail e ID persistente.

Desativar o IAP

O que acontece com o aplicativo quando o IAP é desativado ou ignorado? Desative o IAP para saber.

  1. Na janela do console do Cloud, no Menu de navegação, clique em Segurança > Identity-Aware Proxy.
  2. Clique no botão ativar/desativar do IAP ao lado do seu serviço do Cloud Run (por exemplo, user-auth-lab) para desativar o IAP.
  3. Clique em Permitir acesso público.
  4. Atualize a página da web do aplicativo. Você verá a mesma página, mas sem informações do usuário.

Como agora o aplicativo está desprotegido, um usuário pode enviar uma solicitação da web que parece ter passado pelo IAP. Por exemplo, execute o seguinte comando curl no Cloud Shell (substitua <your-url-here> pelo URL do seu app):

curl -X GET YOUR_URL -H "X-Goog-Authenticated-User-Email: totally fake email"

A página da web será exibida na linha de comando, mostrando o e-mail falso:

<!doctype html> <html> <head> <title>IAP Hello User</title> </head> <body> <h1>Hello World</h1> <p> Hello, totally fake email! Your persistent ID is None. </p> <p> This is step 2 of the User Authentication with IAP</em> codelab. </p> </body> </html>

Não há como o aplicativo saber que o IAP foi desativado ou ignorado. Para casos em que isso é um risco em potencial, a verificação criptográfica é uma solução.

Tarefa 3: usar a verificação criptográfica

Quando há o risco de o IAP ser desativado ou ignorado, o aplicativo pode verificar se as informações de identidade recebidas são válidas. Para isso, ele usa um cabeçalho de solicitação da Web adicionado pelo IAP, chamado X-Goog-IAP-JWT-Assertion. O valor do cabeçalho é um objeto assinado criptograficamente que também contém os dados de identidade do usuário. O aplicativo pode verificar a assinatura digital e usar os dados transmitidos neste objeto para ter certeza de que ele foi transmitido pelo IAP sem alterações.

A verificação da assinatura digital requer várias etapas adicionais, como a busca pelo conjunto mais recente de chaves públicas do Google. Você decide se o aplicativo precisa dessas etapas a mais com base na confidencialidade dele e no risco de que alguém possa desativar ou ignorar o IAP.

  • No Cloud Shell, mude para a pasta para esta primeira etapa:
cd ~/user-authentication-with-iap/3-HelloVerifiedUser

Implantar no Cloud Run

  1. Encontre o ID do cliente Público-alvo do JWT do cabeçalho assinado do seu serviço do Cloud Run protegido pelo IAP:

    • Acesse a página Identity-Aware Proxy no console do Cloud.

    • Localize o user-auth-lab na lista.

    • Observação: talvez seja necessário rolar a tabela de recursos para a direita (usando a barra de rolagem horizontal na parte de baixo da tabela) para revelar a coluna Ações à direita.

    • Em Ações, clique no botão de três pontos verticais ao lado do recurso e selecione Receber código do público-alvo do JWT.

    • No modal que aparece, copie e cole em um editor de texto a string do ID do cliente exibida e selecione OK.

  2. Implante o app no Cloud Run, definindo a variável de ambiente IAP_AUDIENCE com o valor do ID do cliente que você copiou:

gcloud run deploy user-auth-lab --source . --set-env-vars IAP_AUDIENCE="YOUR_CLIENT_ID" --region={{{ project_0.default_region | "REGION" }}}
  1. Se for necessário continuar, digite Y para sim.

Em alguns minutos, a implantação será concluída. Enquanto você espera, analise os arquivos do aplicativo conforme descrito abaixo.

Clique em Verificar meu progresso para conferir o objetivo. Use a verificação criptográfica

Analisar os arquivos do aplicativo

  1. Confira o novo arquivo auxiliar de autenticação no Cloud Shell usando o comando cat:
cat auth.py
  1. Confira o arquivo principal do aplicativo para saber como o método de usuário verificado é integrado:
cat main.py

Esta pasta contém o mesmo conjunto de arquivos visto em 2-HelloUser, com dois arquivos alterados e um novo. O novo arquivo é auth.py, que transmite um método user() para buscar e verificar as informações de identidade assinadas criptograficamente. Os arquivos alterados são main.py e templates/index.html, que agora usam os resultados desse método. Os cabeçalhos não verificados encontrados na última implantação também são mostrados para comparação.

  • A nova funcionalidade está principalmente na função user():
def user(): assertion = request.headers.get('X-Goog-IAP-JWT-Assertion') if assertion is None: return None, None info = jwt.decode( assertion, keys(), algorithms=['ES256'], audience=audience() ) return info['email'], info['sub']

assertion corresponde aos dados assinados criptograficamente que foram transmitidos no cabeçalho da solicitação especificada. O código usa uma biblioteca para validar e decodificar esses dados. A validação usa as chaves públicas atribuídas pelo Google para verificar os dados que assina e saber para que público os dados foram preparados (basicamente, o projeto do Google Cloud que está sendo protegido). As funções auxiliares keys() e audience() coletam e retornam esses valores.

O objeto assinado tem dois dados de que precisamos: o endereço de e-mail verificado e o valor de ID exclusivo, indicados no campo padrão sub, de assinante.

Isso conclui a Etapa 3.

Testar a verificação criptográfica

Quando a implantação estiver pronta, você poderá acessar o URL do seu aplicativo com:

gcloud run services describe user-auth-lab --region={{{ project_0.default_region | "REGION" }}} --format='value(status.url)'
  1. Abra esse URL em uma nova guia do navegador.
  2. Lembre-se de que você já desativou o IAP. Por isso, o aplicativo não mostrará dados dele. Verifique se uma página mostrando Nenhum aparece para e-mail e ID.
  3. Acesse a página Identity-Aware Proxy no console.
  4. Clique no botão IAP ao lado do serviço do Cloud Run para ativar o IAP novamente.
  5. Clique em Ativar para confirmar.
  6. No Cloud Shell, execute o comando a seguir e conceda permissão ao agente de serviço do IAP para invocar o serviço do Cloud Run:
gcloud run services add-iam-policy-binding user-auth-lab \ --member="serviceAccount:service-$(gcloud projects describe {{{project_0.project_id}}} --format='value(projectNumber)')@gcp-sa-iap.iam.gserviceaccount.com" \ --role="roles/run.invoker" \ --region={{{ project_0.default_region | "REGION" }}}
  1. Atualize a página do aplicativo. Verifique se o e-mail assinado criptograficamente e o ID do usuário agora são exibidos e verificados corretamente.

O endereço de e-mail indicado pelo método verificado não tem o prefixo accounts.google.com:.

Se o IAP estiver desativado ou for ignorado, não haverá dados verificados ou eles serão inválidos, porque eles só poderiam ter uma assinatura válida se fossem criados pelo proprietário das chaves privadas do Google.

Parabéns!

Você implantou um serviço do Cloud Run. Primeiro, você restringiu o acesso ao aplicativo somente aos usuários escolhidos. Depois, você buscou e exibiu a identidade dos usuários que o IAP permitiu acessar o aplicativo e viu como essas informações poderiam ser falsificadas se o IAP fosse desativado ou ignorado. Por fim, você verificou as declarações assinadas criptograficamente da identidade do usuário, que não podem ser falsificadas.

Próximas etapas/Saiba mais

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 28 de maio de 2026

Laboratório testado em 28 de maio de 2026

Copyright 2026 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.

Antes de começar

  1. Os laboratórios criam um projeto e recursos do Google Cloud por um período fixo
  2. Os laboratórios têm um limite de tempo e não têm o recurso de pausa. Se você encerrar o laboratório, vai precisar recomeçar do início.
  3. No canto superior esquerdo da tela, clique em Começar o laboratório

Usar a navegação anônima

  1. Copie o nome de usuário e a senha fornecidos para o laboratório
  2. Clique em Abrir console no modo anônimo

Fazer login no console

  1. Faça login usando suas credenciais do laboratório. Usar outras credenciais pode causar erros ou gerar cobranças.
  2. Aceite os termos e pule a página de recursos de recuperação
  3. Não clique em Terminar o laboratório a menos que você tenha concluído ou queira recomeçar, porque isso vai apagar seu trabalho e remover o projeto

Este conteúdo não está disponível no momento

Você vai receber uma notificação por e-mail quando ele estiver disponível

Ótimo!

Vamos entrar em contato por e-mail se ele ficar disponível

Um laboratório por vez

Confirme para encerrar todos os laboratórios atuais e iniciar este

Use a navegação anônima para executar o laboratório

A melhor maneira de executar este laboratório é usando uma janela de navegação anônima ou privada. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.

Conclua esta etapa rápida para iniciar o laboratório.