arrow_back

Redes VPC: como controlar o acesso

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Redes VPC: como controlar o acesso

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermediário
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP213

Laboratórios autoguiados do Google Cloud

Visão geral

Neste laboratório, você vai criar dois servidores da Web nginx e controlar o acesso HTTP externo utilizando regras de firewall com tags. Em seguida, você vai analisar os papéis do IAM e as contas de serviço.

Objetivos

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

  • Criar um servidor da Web nginx
  • 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 Start Lab

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 permite que você realize as atividades em um ambiente real de nuvem, 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 ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

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

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    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. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. 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 GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

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.

Depois de se conectar, vai notar 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 YOUR_PROJECT_ID

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.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net 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_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

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 de boas-vindas para diferenciá-los.

Crie o servidor blue

Crie o servidor blue com uma tag de rede.

  1. No console, acesse Menu de navegação (Ícone do menu de navegação) > Compute Engine > Instâncias de VM.

  2. Clique em Criar instância.

  3. Defina estes valores e mantenha os demais como padrão:

    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.

  4. Clique em Opções avançadas > Rede.

  5. 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.
  1. Clique em Criar.

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 o servidor blue.

Crie o servidor green

Crie o servidor green sem uma tag de rede.

  1. Ainda no console, na página Instâncias de VM, clique em Criar instância.

  2. Defina os seguintes valores e mantenha o restante como padrão:

    Propriedade Valor (digite o valor ou selecione a opção conforme especificado)
    Nome green
    Região
    Zona
  3. Clique em Criar.

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 o servidor green.

Instale o nginx e personalize a página de boas-vindas

Instale o nginx nas duas instâncias de VM e modifique a página de boas-vindas para diferenciar os servidores.

  1. Ainda na caixa de diálogo Instâncias de VM, em blue, clique em SSH para iniciar um terminal e se conectar.

  2. No terminal SSH de "blue", execute o comando a seguir para instalar o nginx:

sudo apt-get install nginx-light -y
  1. Abra a página de boas-vindas no editor nano:
sudo nano /var/www/html/index.nginx-debian.html
  1. Substitua a linha <h1>Welcome to nginx!</h1> por <h1>Welcome to the blue server!</h1>.
  2. Pressione CTRL+o, ENTER e CTRL+x.
  3. 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>
  1. Feche o terminal SSH de blue:
exit

Repita as mesmas etapas para o servidor green:

  1. Em green, clique em SSH para iniciar um terminal e se conectar.
  2. Instale o nginx:
sudo apt-get install nginx-light -y
  1. Abra a página de boas-vindas no editor nano:
sudo nano /var/www/html/index.nginx-debian.html
  1. Substitua a linha <h1>Welcome to nginx!</h1> por <h1>Welcome to the green server!</h1>.
  2. Pressione CTRL+o, ENTER e CTRL+x.
  3. 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>
  1. 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 de boas-vindas.

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.

  1. No console, acesse Menu de navegação (Ícone do menu de navegação) > Rede VPC > Firewall.
  2. 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 por meio da tag de rede web-server.
  1. Clique em Criar regra de firewall.

  2. 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.
  1. Clique em Criar.

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 a regra de firewall com tag.

Crie uma test-vm

Crie uma instância test-vm com a linha de comando do Cloud Shell.

  1. Abra um novo terminal do Cloud Shell.

  2. 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 vai 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.

  1. No Console, acesse Menu de navegação (Ícone do menu de navegação) > Compute Engine > Instâncias de VM.
  2. Anote os endereços IP internos e externos de blue e green.
  3. Em test-vm, clique em SSH para iniciar um terminal e conectar.
  4. 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! será exibido.

  1. 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.
  1. 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.

  1. 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.
  1. 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.

  1. Volte ao terminal SSH da instância test-vm.
  2. 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!
  1. Tente excluir a regra de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
  1. 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.

  1. No console, acesse Menu de navegação (Ícone do menu de navegação) > IAM e administrador > Contas de serviço.

  2. Encontre a conta de serviço padrão do Compute Engine.

  3. Clique em Criar conta de serviço.

  4. Dê à conta de serviço o nome Network-admin e clique em CRIAR E CONTINUAR.

  5. Em Selecionar papel, selecione Compute Engine > Administrador de rede do Compute. Clique em CONTINUAR e em CONCLUÍDO.

  6. 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.

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

  8. 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.

  1. Volte ao terminal SSH da instância test-vm.
  2. Para fazer o upload de credentials.json pelo terminal SSH da VM, clique no ícone Fazer upload de um arquivo no canto superior direito.
  3. Selecione credentials.json e faça upload dele.
  4. 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.
  5. 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.
  1. 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.

  1. Tente excluir a regra de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
  1. Se for solicitado, digite Y para continuar.

O resultado será semelhante a este:

ERROR: (gcloud.compute.firewall-rules.delete) Could not fetch resource: - Required 'compute.firewalls.delete' permission for 'projects/[PROJECT_ID]/global/firewalls/allow-http-web-server' Observação: o comando não funciona! Observação: como esperado, o papel Administrador de rede tem permissões para listar, mas não para modificar 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.

  1. No console, acesse Menu de navegação (Ícone do menu de navegação) > IAM e administrador > IAM.

  2. Encontre a conta Network-admin. Concentre-se na coluna Nome para identificar essa conta.

  3. Na conta Network-admin, clique no ícone de lápis.

  4. Mude o Papel para Compute Engine > Administrador de segurança do Compute.

  5. Clique em Salvar.

  6. Volte ao terminal SSH da instância test-vm.

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

  1. Tente excluir a regra de firewall allow-http-web-server:
gcloud compute firewall-rules delete allow-http-web-server
  1. Se for solicitado, digite Y para continuar.

O resultado será semelhante a este:

Deleted [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-00e186e4b1cec086/global/firewalls/allow-http-web-server].

Isso deve funcionar.

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.

  1. Volte ao terminal SSH da instância test-vm.
  2. 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!
  1. 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 por meio de uma regra de firewall com tag. Em seguida, você criou uma conta de serviço, primeiramente com o papel Administrador de rede e depois com o papel Administrador de segurança para ver as diferentes permissões desses papéis.

Caso sua empresa tenha uma equipe de segurança que gerencie firewalls e certificados SSL, além de uma equipe de rede que cuida dos outros recursos de rede, conceda o papel Administrador de segurança à equipe de segurança e o papel Administrador de rede à equipe de rede.

Próximas etapas / Saiba mais

Para saber mais sobre os conceitos básicos do Google Cloud Identity and Access Management, confira Visão geral do Google Cloud Identity and Access Management.

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 19 de setembro de 2023

Laboratório testado em 19 de setembro de 2023

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