GSP213

Visão geral
No mundo real, você precisa proteger dados sensíveis e garantir a disponibilidade contínua de seus web apps. Aprenda a usar a rede VPC do Cloud para criar uma implantação de servidor da Web mais segura, escalonável e gerenciável dentro do seu ambiente do Google Cloud.
Neste laboratório, você vai criar dois servidores da Web nginx na rede VPC padrão e controlar o acesso HTTP externo a eles utilizando regras de firewall com tags. Em seguida, você vai analisar os papéis do IAM e as contas de serviço.
- O uso de dois servidores Web fornecem a você redundância: se um servidor falhar, o outro continua atendendo ao tráfego da Web, evitando a inatividade.
- As regras de firewall com tags oferecem controle granular sobre qual tráfego é permitido para alcançar servidores da Web específicos.
- Ao conceder permissão a uma conta de serviço para executar tarefas, você aplica o princípio de privilégio mínimo, protegendo seus recursos do Cloud.
Objetivos
Neste laboratório, você vai aprender a:
- Criar um servidor da Web nginx em uma rede VPC
- Criar regras de firewall com tags
- Criar uma conta de serviço com papéis do IAM
- Analisar as permissões dos papéis de administrador de rede e segurança
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
-
Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:
- O botão Abrir Console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
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 Fazer 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.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
-
Clique em Próxima.
-
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Detalhes do Laboratório.
-
Clique em Próxima.
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, é possível que receba cobranças adicionais.
-
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 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.
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.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
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.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (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.
Tarefa 1: crie os servidores da Web
Nesta seção, você vai criar dois servidores da Web (blue e green) na rede VPC padrãodefault. Em seguida, você vai instalar o nginx nesses servidores e modificar a página inicial para diferenciá-los.
Crie o servidor blue
Crie o servidor blue com uma tag de rede.
-
No console do Cloud, acesse Menu de navegação (
) > Compute Engine > Instâncias de VM.
-
Para criar uma instância, clique em Criar instância.
-
Na Configuração da máquina.
Selecione os seguintes valores:
| Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
| Nome |
blue |
| Região |
|
| Zona |
|
Para saber mais, confira a seção Regiões e zonas disponíveis no guia Regiões e zonas do Compute Engine.
-
Clique em Rede.
- Em Tags de rede, digite
web-server.
Observação: as redes usam tags para identificar quais instâncias de VM estão sujeitas a determinadas regras de firewall e rotas de rede. Posteriormente neste laboratório, você vai criar uma regra de firewall para permitir acesso HTTP às instâncias de VM com a tag web-server. Como alternativa, marque a caixa de seleção Permitir tráfego HTTP para definir essa instância como http-server e criar a regra de firewall com tag em tcp:80.
-
Clique em Criar.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você concluiu a tarefa, vai receber uma pontuação de avaliação.
Crie o servidor blue.
Crie o servidor green
Crie o servidor green sem uma tag de rede.
-
Ainda no console, na página Instâncias de VM, clique em Criar instância.
-
Na Configuração da máquina.
Selecione os seguintes valores:
| Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
| Nome |
green |
| Região |
|
| Zona |
|
-
Clique em Criar.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você concluiu a tarefa, vai receber uma pontuação de avaliação.
Crie o servidor green.
Instale o nginx e personalize a página inicial
Instale o nginx nas duas instâncias de VM e modifique a página inicial para diferenciar os servidores.
- Ainda na caixa de diálogo Instâncias de VM, em blue, clique em SSH para iniciar um terminal e se conectar.
Observação: se a conexão com a VM falhar com um erro SSH authentication failed, clique em Tentar de novo para restabelecer a conexão.
- No terminal SSH de blue, execute o comando a seguir para instalar o nginx:
sudo apt-get install nginx-light -y
- Abra a página inicial no editor nano:
sudo nano /var/www/html/index.nginx-debian.html
- Substitua a linha
<h1>Welcome to nginx!</h1> por <h1>Welcome to the blue server!</h1>.
- Pressione CTRL+o, ENTER e CTRL+x.
- Veja a mudança:
cat /var/www/html/index.nginx-debian.html
A saída precisa conter o seguinte:
<h1>Welcome to the blue server!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
- Feche o terminal SSH de blue:
exit
Repita as mesmas etapas para o servidor green:
- Em green, clique em SSH para iniciar um terminal e se conectar.
- Instale o nginx:
sudo apt-get install nginx-light -y
- Abra a página inicial no editor nano:
sudo nano /var/www/html/index.nginx-debian.html
- Substitua a linha
<h1>Welcome to nginx!</h1> por <h1>Welcome to the green server!</h1>.
- Pressione CTRL+o, ENTER e CTRL+x.
- Veja a mudança:
cat /var/www/html/index.nginx-debian.html
A saída precisa conter o seguinte:
<h1>Welcome to the green server!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
- Feche o terminal SSH de green:
exit
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você concluiu a tarefa, vai receber uma pontuação de avaliação.
Instale o Nginx e personalize a página inicial.
Tarefa 2: crie a regra de firewall
Crie a regra de firewall com tag e teste a conectividade HTTP.
Crie a regra de firewall com tag
Crie uma regra de firewall que seja válida para as instâncias de VM com a tag de rede web-server.
- No console do Cloud, acesse Menu de navegação (
) > Rede VPC > Firewall.
- Encontre a regra de firewall default-allow-internal.
Observação: a regra de firewall default-allow-internal permite o tráfego em todos os protocolos e portas na rede default. Crie uma regra de firewall para permitir o tráfego de fora dessa rede somente para o servidor blue com a tag de rede web-server.
-
Clique em Criar regra de firewall.
-
Defina os seguintes valores e mantenha o restante como padrão.
| Propriedade |
Valor (digite o valor ou selecione a opção conforme especificado) |
| Nome |
allow-http-web-server |
| Rede |
default |
| Destinos |
Tags de destino especificadas |
| Tags de destino |
web-server |
| Filtro de origem |
Intervalos IPv4 |
| Intervalos IPv4 de origem |
0.0.0.0/0 |
| Protocolos e portas |
Protocolos e portas especificados. Marque tcp, digite: 80. Depois marque Outros protocolos e digite: icmp. |
Observação: inclua /0 em Intervalos de IP de origem para especificar todas as redes.
- Clique em Criar.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você concluiu a tarefa, vai receber uma pontuação de avaliação.
Crie a regra de firewall com tag.
Crie uma test-vm
Crie uma instância test-vm com a linha de comando do Cloud Shell.
-
Abra um novo terminal do Cloud Shell.
-
Execute o comando a seguir para criar uma instância test-vm, na zona :
gcloud compute instances create test-vm --machine-type=e2-micro --subnet=default --zone={{{project_0.default_zone|ZONE}}}
O resultado será semelhante a este:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
test-vm {{{project_0.default_zone|ZONE}}} e2-micro 10.142.0.4 35.237.134.68 RUNNING
Observação: você pode facilmente criar instâncias de VM no console ou na linha de comando gcloud.
Testar a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você concluiu a tarefa, vai receber uma pontuação de avaliação.
Crie uma test-vm.
Teste a conectividade HTTP
Em test-vm, use curl nos endereços IP internos e externos de blue e green.
- No console, acesse Menu de navegação (
) > Compute Engine > Instâncias de VM.
- Anote os endereços IP internos e externos de blue e green.
- Em test-vm, clique em SSH para iniciar um terminal e conectar.
- Execute o comando abaixo para testar a conectividade HTTP do IP interno de blue. Substitua o IP interno de blue no comando pelo valor correto.
curl <Insira o IP interno de blue aqui>
O título Welcome to the blue server! vai aparecer.
- Execute o comando abaixo para testar a conectividade HTTP do IP interno de green. Substitua o IP interno de green no comando pelo valor correto.
curl -c 3 <Insira o IP interno de green aqui>
O título Welcome to the green server! será exibido.
Observação: é possível acessar os dois servidores por HTTP com os endereços IP internos. A conexão em tcp:80 é permitida pela regra de firewall default-allow-internal, já que a test-vm está na mesma rede VPC que a rede default do servidor da Web.
- Execute o comando abaixo para testar a conectividade HTTP do IP externo de blue. Substitua o IP externo de blue no comando pelo valor correto.
curl <Insira o IP externo de blue aqui>
O título Welcome to the blue server! será exibido.
- Execute o comando abaixo para testar a conectividade HTTP do IP externo de green. Substitua o IP externo de green no comando pelo valor correto.
curl -c 3 <Insira o IP externo de green aqui>
Observação: o comando não vai funcionar! A solicitação vai travar.
- Pressione CTRL+c para interromper a solicitação HTTP.
Observação: como esperado, só é possível acessar por HTTP o endereço IP externo do servidor blue, uma vez que allow-http-web-server aplica-se somente a instâncias de VMs com a tag web-server.
É possível verificar o mesmo comportamento no navegador. Para isso, abra uma nova guia e acesse http://[IP externo do servidor].
Tarefa 3: analise os papéis de administrador de rede e segurança
Com o Cloud IAM, é possível autorizar quem pode realizar ações em recursos específicos. Isso dá a você visibilidade e controle total para gerenciar os recursos de nuvem de forma centralizada. Os papéis a seguir são usados junto a redes com apenas um projeto para controlar de maneira independente o acesso administrativo para cada rede VPC.
-
Administrador de rede: permissões para criar, modificar e excluir recursos de rede, exceto regras de firewall e certificados SSL.
-
Administrador de segurança: permissões para criar, modificar e excluir regras de firewall e certificados SSL.
Para analisar esses papéis, aplique-os a uma conta de serviço, que é uma Conta do Google especial pertencente à sua instância de VM em vez de pertencer a um usuário final específico. Em vez de criar um novo usuário, você autorizará a test-vm a usar a conta de serviço para demonstrar as permissões dos papéis Administrador de rede e Administrador de segurança.
Verifique as permissões atuais
Atualmente, a test-vm usa a conta de serviço padrão do Compute Engine, que é ativada em todas as instâncias criadas pela linha de comando do Cloud Shell e pelo console do Cloud.
Tente listar ou excluir as regras de firewall disponíveis em test-vm.
- Volte ao terminal SSH da instância test-vm.
- Tente listar as regras de firewall disponíveis:
gcloud compute firewall-rules list
O resultado será semelhante a este:
ERROR: (gcloud.compute.firewall-rules.list) Some requests did not succeed:
- Insufficient Permission
Observação: o comando não vai funcionar!
- Tente excluir a regra de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
- Se for solicitado, digite Y para continuar.
O resultado será semelhante a este:
ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource:
- Insufficient Permission
Observação: o comando não vai funcionar!
Observação: a conta de serviço padrão do Compute Engine não tem as permissões corretas para listar ou excluir regras de firewall. O mesmo se aplica a outros usuários que não têm os papéis corretos.
Crie uma conta de serviço
Crie uma conta de serviço e aplique o papel Administrador de rede.
-
No console, acesse Menu de navegação (
) > IAM e administrador > Contas de serviço.
-
Encontre a conta de serviço padrão do Compute Engine.
-
Clique em Criar conta de serviço.
-
Dê à conta de serviço o nome Network-admin e clique em CRIAR E CONTINUAR.
-
Em Selecionar papel, selecione Compute Engine > Administrador de rede do Compute. Clique em CONTINUAR e em CONCLUÍDO.
-
Depois de criar a conta de serviço Network-admin, clique nos três pontos no canto direito e em Gerenciar chaves no menu suspenso. Clique em Adicionar chave e selecione Criar nova chave no menu suspenso. Clique em Criar para fazer o download do resultado JSON.
-
Clique em Fechar.
Será feito o download de um arquivo de chave JSON no computador local. Encontre esse arquivo de chave. Você vai fazer o upload dele para a VM em uma etapa posterior.
-
Renomeie o arquivo de chave JSON na máquina local como credentials.json.
Teste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você concluiu a tarefa, vai receber uma pontuação de avaliação.
Crie um conta de serviço Network-admin.
Autorize a test-vm e verifique as permissões
Autorize a test-vm a usar a conta de serviço Network-admin.
- Volte ao terminal SSH da instância test-vm.
- Para fazer o upload de credentials.json pelo terminal SSH da VM, clique no ícone Fazer upload de um arquivo no canto superior direito.
- Selecione credentials.json e faça upload dele.
- Clique em Fechar na janela "Transferência de arquivo".
Observação: se necessário, clique em Tentar de novo na caixa de diálogo Falha na conexão via Cloud Identity-Aware Proxy para fazer o upload do arquivo de novo.
- Autorize a VM com as credenciais que você enviou:
gcloud auth activate-service-account --key-file credentials.json
Observação: não é preciso inicializar o SDK Cloud porque ele já está pré-instalado na imagem que você está usando. Caso esteja fazendo o laboratório em um ambiente diferente, siga estes procedimentos de instalação do SDK Cloud.
- Tente listar as regras de firewall disponíveis:
gcloud compute firewall-rules list
O resultado será semelhante a este:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
allow-http-web-server default INGRESS 1000 tcp:80
default-allow-icmp default INGRESS 65534 icmp
default-allow-internal default INGRESS 65534 all
default-allow-rdp default INGRESS 65534 tcp:3389
default-allow-ssh default INGRESS 65534 tcp:22
Isso deve funcionar.
- Tente excluir a regra de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
- Se for solicitado, digite Y para continuar.
O resultado será parecido com este:
ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource:
- Required 'compute.firewall.delete' permission for 'projects/[PROJECT_ID]/global/firewall/allow-http-web-server'
Observação: isso não vai funcionar.
Observação: como esperado, o papel Administrador de rede tem permissões para listar, mas não para mudar nem excluir regras de firewall.
Atualize a conta de serviço e verifique as permissões
Atribua o papel Administrador de segurança à conta de serviço Network-admin.
-
No console, acesse Menu de navegação (
) > IAM e administrador > IAM.
-
Encontre a conta Network-admin. Concentre-se na coluna Nome para identificar essa conta.
-
Na conta Network-admin, clique no ícone de lápis.
-
Mude o Papel para Compute Engine > Administrador de segurança do Compute.
-
Clique em Salvar.
-
Volte ao terminal SSH da instância test-vm.
-
Tente listar as regras de firewall disponíveis:
gcloud compute firewall-rules list
O resultado será semelhante a este:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
allow-http-web-server default INGRESS 1000 tcp:80
default-allow-icmp default INGRESS 65534 icmp
default-allow-internal default INGRESS 65534 all
default-allow-rdp default INGRESS 65534 tcp:3389
default-allow-ssh default INGRESS 65534 tcp:22
Isso deve funcionar.
- Tente excluir a regra de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
- Se for solicitado, digite Y para continuar.
O resultado será parecido com este:
Deleted [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-00e186e4b1cec086/global/firewall/allow-http-web-server].
Isso deve resolver.
Observação: como esperado, o papel Administrador de segurança tem permissões para listar e excluir regras de firewall.
Verifique a exclusão da regra de firewall
Verifique se não é mais possível acessar por HTTP o IP externo do servidor blue, já que você excluiu a regra de firewall allow-http-web-server.
- Volte ao terminal SSH da instância test-vm.
- Execute o comando abaixo para testar a conectividade HTTP do IP externo de blue. Substitua o IP externo de blue no comando pelo valor correto.
curl -c 3 <Insira o IP externo de blue aqui>
Observação: o comando não vai funcionar!
- Pressione CTRL+c para interromper a solicitação HTTP.
Observação: atribua o papel Administrador de segurança à conta de serviço ou usuário correto para evitar mudanças indesejadas nas regras de firewall.
Parabéns!
Neste laboratório, você criou dois servidores da Web nginx e controlou o acesso HTTP externo usando uma regra de firewall com tags. Em seguida, você criou uma conta de serviço, primeiramente com o papel Administrador de rede e depois com o Administrador de segurança para ver as diferentes permissões desses papéis.
Próximas etapas / Saiba mais
Saiba mais sobre contas de serviço e papéis neste laboratório:
Confira a Visão geral do Google Cloud Identity and Access Management para saber mais sobre os conceitos básicos do produto.
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 9 de junho de 2025
Laboratório testado em 9 de junho de 2025
Copyright 2025 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.