Objetivos
Neste tutorial, você vai aprender o seguinte:
- Criar um modelo de instância do Compute Engine e um grupo gerenciado de instâncias (MIG).
- conseguir um nome de domínio e um certificado;
- Criar um balanceador de carga HTTPS com um certificado.
- ativar o IAP;
- testar o funcionamento do IAP.
Custos
Neste tutorial, usamos componentes faturáveis do Google Cloud, incluindo:
- Compute Engine
- 4 máquinas virtuais (VMs)
- Rede
- Regra de encaminhamento do balanceador de cargaglobal
- Tráfego de entrada
Para uma estimativa de custo com base no uso projetado, consulte esta calculadora de preços.
Antes de começar
Antes de iniciar este tutorial, você precisa do seguinte:
Selecione ou crie um projeto do Google Cloud .
ACESSAR A PÁGINA PROJETOSAtive o faturamento no projeto. Saiba como Modificar as configurações de faturamento de um projeto.
Etapa 1: criar um modelo do Compute Engine
No console do Google Cloud , acesse a página Compute Engine > Criar um modelo de instância e selecione o projeto em que você quer criar um modelo.
ACESSAR A PÁGINA "CRIAR UM MODELO DE INSTÂNCIA"
Use os valores padrão, exceto estes:
- Tipo de máquina:
- micro (f1-micro)
- Escopos de acesso:
- Definir o acesso para cada API
- Compute Engine: somente leitura
- Firewall:
- Permitir tráfego HTTP
- Na seção Gerenciamento, em Automação > Script de inicialização, copie e cole o script a seguir:
Depois de concluir a atualização dos valores, clique em Criar para criar o modelo.
Etapa 2: criar um grupo gerenciado de instâncias
No console do Google Cloud , acesse a página Compute Engine > Criar um novo grupo de instâncias e selecione o projeto em que você quer criar um grupo gerenciado de instâncias.
ACESSAR A PÁGINA "CRIAR UM GRUPO DE INSTÂNCIAS"
Use os valores padrão, exceto estes:
- Nome: my-managed-instance-group
- Local: várias zonas
- Modelo de instância: selecione o modelo de instância que você criou na etapa 1
- Número de instâncias:para alterar o número de instâncias, primeiro é preciso desativar o escalonamento automático.
- Modo de escalonamento automático: não faça escalonamento automático
Verificação de integridade: selecione Criar verificação de integridade e insira os seguintes valores:
- Nome: my-health-check
- Protocolo: HTTP
Para usar a nova verificação de integridade, clique em Salvar e continuar.
Quando terminar de atualizar os valores, clique em Criar para criar o grupo de instâncias gerenciadas (MIG, na sigla em inglês).
Etapa 3: conseguir um nome de domínio e um certificado
Para usar o balanceador de carga com tráfego HTTPS, você precisa de um nome de domínio e de um certificado assinado. Você pode registrar um domínio no Cloud Domains ou usar o registrador de domínios de sua escolha. Registre seu domínio antes de continuar.
Configurar seu certificado
Crie um certificado que identifique seu site para os usuários. Para saber como criar um certificado, consulte Como usar certificados SSL gerenciados pelo Google.
Sua CA precisa verificar se você tem o nome de domínio que registrou. Nas etapas a seguir, você vai criar uma VM para autenticar seu domínio com a CA.
Criar uma VM para autenticar a propriedade do domínio
No console do Google Cloud , acesse a página Compute Engine > Criar uma instância.
ACESSAR A PÁGINA "CRIAR UMA INSTÂNCIA"
Use os valores padrão, exceto estes:
- Nome: certbot-vm
- Tipo de máquina: micro (f1-micro)
- Escopos de acesso:
- Definir o acesso para cada API
- Compute Engine: leitura/gravação
- Imagem do disco de inicialização:
- Debian GNU/Linux 9 (Stretch)
- Firewall:
- Permitir tráfego HTTP
- Permitir tráfegos HTTPS
Quando terminar de atualizar os valores, clique em Criar para criar a instância de VM. Anote o endereço IP externo da VM que você acabou de criar. Você precisará dele na próxima etapa.
Configurar seu domínio para apontar para a VM
Para configurar seu domínio de modo que ele aponte para a VM, siga estas etapas para configurar os registros A:
- Acesse sua conta do domínio no host de domínio.
- Encontre a página onde atualizar os registros DNS do seu domínio. Essa página pode ser chamada de Gerenciamento de DNS, Gerenciamento de servidor de nomes ou Configurações avançadas.
- Mude seus registros A para os seguintes valores:
- Nome/Host/Alias: @
- Valor:o endereço IP externo da VM que você criou para autenticar sua propriedade do domínio acima.
- TTL: o padrão do seu registrador ou 86400 (um dia).
- Aguarde a atualização do registro DNS. A propagação do registro adicionado pode levar até um dia.
Para saber mais, consulte Sobre os registros A.
Testar o servidor
Para testar se o servidor está funcionando corretamente, siga estas etapas:
No console do Google Cloud , acesse a página Compute Engine > Instâncias de VM.
ACESSAR A PÁGINA "INSTÂNCIAS DE VM"Em Conectar na certbot-vm, clique em SSH.
Execute os seguintes comandos para executar um pequeno servidor da Web em sua VM:
mkdir web cd web echo "Hello" > index.html sudo busybox httpd -v -fUse um navegador da Web para acessar o nome de domínio registrado anteriormente. O navegador exibirá
Helloe sua sessão SSH mostrará uma mensagem com... response:200. Se isso não ocorrer, aguarde alguns minutos e repita esta etapa.Após o teste ser bem-sucedido, pressione Ctrl+C para parar o servidor da Web.
Criar um certificado
Para criar um certificado, registre-se na Let's Encrypt executando os seguintes comandos na VM, em que YOUR_DOMAIN é seu nome de domínio, sem incluir o protocolo:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
Durante esse processo, a Let's Encrypt pode solicitar um endereço de e-mail para enviar um lembrete quando seu certificado expirar (por padrão, 3 meses após a emissão). Você também precisa concordar com os Termos de Serviço da Let's Encrypt.
Quando o registro estiver concluído, uma mensagem com o texto
Congratulations! Your certificate and chain have been saved at... vai aparecer.
Adicionar o certificado ao seu projeto
Para adicionar o certificado ao seu projeto, execute os comandos a seguir na VM:
sudo su cd /etc/letsencrypt/live/YOUR_DOMAIN gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem
Depois de criar o certificado, uma mensagem parecida com esta vai aparecer: Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
Antes de continuar, encerre a sessão SSH.
Etapa 4: criar um balanceador de carga
Antes de iniciar esta etapa, feche a sessão SSH iniciada na etapa anterior. Quando estiver pronto, siga as etapas abaixo para criar um balanceador de carga:
No console do Google Cloud , acesse a página Serviços de rede > Criar um balanceador de carga e selecione o projeto em que você quer criar um balanceador de carga.
ACESSAR A PÁGINA "CRIAR UM BALANCEADOR DE CARGA"Em Balanceamento de carga HTTP(S), clique em Iniciar configuração.
Selecione Da Internet para minhas VMs.
Na página Novo balanceador de carga de aplicativo externo que aparece, insira um Nome para o balanceador de carga.
Clique em Configuração de back-end.
Em Serviços de back-end e buckets de back-end, selecione Criar um serviço de back-end.
Adicione um nome para o serviço de back-end, como
my-backend-service.
Acesse a seção Segurança e selecione Ativar o IAP para garantir o acesso aos seus aplicativos.
O Cloud CDN e o IAP não são compatíveis. Se o Cloud CDN estiver ativado e for selecionada a opção para ativar o IAP, o Cloud CDN será desativado automaticamente.
Clique em Criar. A página Balanceamento de carga é carregada, e o novo balanceador de carga é exibido na lista de balanceadores de carga.
Depois que o console do Google Cloud criar o novo balanceador de carga, clique no nome dele e anote o endereço IP externo exibido em Detalhes > Front-end. Você vai usar isso na próxima etapa.
Configurar seu domínio para apontar para o balanceador de carga
Para configurar seu domínio de modo que ele aponte para o balanceador de carga, configure os registros A seguindo estas etapas:
- Acesse sua conta do domínio no host de domínio.
- Encontre a página onde atualizar os registros DNS do seu domínio. Essa página pode ser chamada de Gerenciamento de DNS, Gerenciamento de servidor de nomes ou Configurações avançadas.
- Mude seus registros A para os seguintes valores:
- Nome/Host/Alias: @
- Valor:o endereço IP externo do balanceador de carga que você criou
anteriormente. Não inclua a porta
:443no seu registro DNS. - TTL: o padrão do seu registrador ou 86400 (um dia).
- Aguarde a atualização do registro DNS. A propagação do registro que você acabou de adicionar pode levar até um dia.
- Para testar o balanceador de carga, acesse seu domínio com um protocolo
https://em um navegador da Web.- Se o balanceador de carga ainda não estiver configurado, você vai receber erros "HTTP 502".
- Quando o balanceador de carga estiver pronto, você verá "Solicitação não autorizada".
Para mais informações, consulte Sobre os registros A.
reiniciar suas VMs
Para autenticar corretamente as solicitações do IAP, reinicie as VMs do MIG.
- No console do Google Cloud , acesse a página
Compute Engine > Grupos de instâncias.
ACESSAR A PÁGINA "GRUPOS DE INSTÂNCIAS" - Clique em my-managed-instance-group.
- Na parte superior da página de detalhes do grupo de instâncias, clique em Reinicialização/substituição contínua.
- Na página Reiniciar/substituir instâncias de my-managed-instance-group,
defina os seguintes valores:
- Operação: reiniciar
- Máximo indisponível: três instâncias de três instâncias
- Tempo mínimo de espera: 0s
- Quando terminar de atualizar os valores, clique em Reiniciar.
Etapa 5: configurar o IAP
Configurar seu firewall
Em seguida, configure o firewall para bloquear o acesso às VMs e permitir o acesso somente pelo IAP:
Acesse o console do Google Cloud Rede VPC > Regras de firewall.
ACESSAR A PÁGINA "REGRAS DE FIREWALL"Marque a caixa de seleção ao lado das seguintes regras:
default-allow-http
default-allow-https
default-allow-internal
Clique em Excluir.
Clique em Criar regra de firewall e defina os seguintes valores:
Nome: allow-iap-traffic
Destinos: todas as instâncias na rede
Intervalos de IP de origem (pressione Enter depois de colar cada valor no campo): é preciso permitir o tráfego desses intervalos de endereços IP para que o balanceador de carga possa se comunicar com os back-ends.
130.211.0.0/22
35.191.0.0/16
Protocolos e portas:
Protocolos e portas especificados
tcp:80
Quando terminar de atualizar os valores, clique em Criar.
Configurar o IAP
Para configurar o IAP no projeto, siga estas etapas:
1. No console do Google Cloud , acesse a página Segurança > Identity-Aware Proxy e selecione o projeto em que você quer ativar o IAP.ACESSE A PÁGINA IDENTITY-AWARE PROXY 1. Se você não configurou a tela de permissão OAuth do projeto, será solicitado que você faça isso:
-
Acesse a tela de consentimento OAuth.
Configurar tela de consentimento - Em E-mail de suporte, selecione o endereço de e-mail que você quer exibir como um contato público. O endereço de e-mail precisa pertencer à conta de usuário conectada no momento ou a um grupo do Google em que o usuário conectado seja gerente ou proprietário.
- Digite o Nome do aplicativo que você quer exibir.
- Adicione os detalhes opcionais que você quiser.
- Clique em Salvar.
Para alterar as informações na tela de consentimento do OAuth posteriormente, como o nome do produto ou o endereço de e-mail, repita as etapas anteriores.
1. Ao lado de my-backend-service, 1. Na janela Ativar IAP, marque a caixa de seleção ao lado de "Li os requisitos de configuração e defini o recurso do Compute Engine de acordo com a documentação". 1. Clique em Ativar.Adicionar principais à lista de acesso
Adicione principais à lista de acesso do IAP do projeto.
- Na seção Acesso, no lado direito de Segurança > Identity-Aware Proxy, clique em Adicionar.
- Insira os principais a quem você quer conceder acesso, incluindo você, e
atribua a eles o papel Usuário do app da Web protegido pelo IAP. Os principais podem ser:
- Contas do Google: user@gmail.com
- Grupos do Google: admins@googlegroups.com
- Contas de serviço: server@example.gserviceaccount.com
- Domínios do Google Workspace: example.com
Etapa 6: testar o IAP
Para testar se o IAP está funcionando corretamente, siga estas etapas:
1. No seu navegador da Web, navegue até seu domínio. Se aparecer "Solicitação não autorizada", tente novamente em alguns minutos. 1. Quando aparecer uma tela de login do Google, faça login usando a Conta do Google a que você deu acesso na etapa anterior. 1. Uma mensagem como "Olá, user@example.com. Sou my-managed-instance-group-29z6" será exibida. 1. Tente atualizar a página. O navegador vai mostrar os nomes das três máquinas no grupo gerenciado de instâncias. Trata-se do balanceador de carga distribuindo tráfego pelas VMs do grupo.Parabéns! Você ativou o serviço de balanceamento de carga usando o IAP.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Depois de configurar o IAP para o Compute Engine, limpe os recursos criados no Google Cloud para não receber cobranças por eles no futuro. As seções a seguir explicam como excluir ou desativar esses recursos.
Excluir o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Como excluir instâncias
Para excluir uma instância do Compute Engine:
- No console do Google Cloud , acesse a página Instâncias de VM.
- Marque a caixa de seleção da instância que será excluída.
- Para excluir a instância, clique em Mais ações, clique em Excluir e siga as instruções.
Como excluir regras de firewall para a rede padrão
Para excluir uma regra de firewall:
- No console do Google Cloud , acesse a página Firewall.
- Marque a caixa de seleção da regra de firewall que você quer excluir.
- Para excluir a regra de firewall, clique em Excluir.
A seguir
- Tente modificar o app de exemplo que usamos neste tutorial para exibir outros dados.
- Leia as práticas recomendadas para entender como criar seus próprios apps e protegê-los com o IAP.