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:
Ao terminar de atualizar valores, clique em Criar para criar o modelo.
Etapa 2: criar um grupo de instâncias gerenciadas
No console 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 de instâncias gerenciadas.
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 mudar o número de instâncias, primeiro desative 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ê precisará de um nome de domínio e um certificado assinado. Você pode registrar um domínio no Google Domains ou usar o registro de domínios de sua escolha. Registre seu domínio antes de continuar este guia.
Configurar seu certificado
Crie um certificado que identifique seu site para os usuários. Para saber como criar um certificado, consulte Usar certificados SSL gerenciados pelo Google.
Sua CA precisa verificar se você tem o nome de domínio que registrou. Nas etapas abaixo, você criará uma VM para autenticar seu domínio na CA.
Criar uma VM para autenticar a propriedade do domínio
No console 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áfego HTTPS
Quando terminar de atualizar 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 para apontar para a VM, siga as etapas abaixo para configurar registros A:
- Acesse a conta do seu domínio no host de domínio.
- Encontre a página onde atualizar os registros DNS do seu domínio. O nome dessa página pode ser algo como "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 a 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 as etapas abaixo:
No console 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 -f
Use um navegador da Web para acessar o nome de domínio registrado anteriormente. O navegador exibirá
Hello
e 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 (em inglês) executando os seguintes comandos na VM, em que YOUR_DOMAIN é seu nome de domínio, sem incluir protocolo:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
Durante esse processo, a Let's Encrypt poderá solicitar um endereço de e-mail para que possa enviar um lembrete quando seu certificado estiver prestes a expirar (por padrão, 3 meses após a emissão). Você também precisa concordar com os Termos de Serviço estabelecidos pela Let's Encrypt.
Quando o registro estiver concluído, você verá esta mensagem: Congratulations! Your certificate and chain have been saved at...
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, você verá uma mensagem parecida com esta: 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 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 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 exibida, insira um Nome para seu 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 proteger o acesso aos seus aplicativos.
O Cloud CDN e o IAP não são compatíveis. Se o Cloud CDN estiver ativado e você selecionar a opção para ativar o IAP, o Cloud CDN será desativado automaticamente.
Clique em Criar. A página Balanceamento de carga será exibida, e o novo balanceador de carga será criado na respectiva lista.
Depois que o console do Google Cloud concluir a criação do novo balanceador de carga, clique no nome dele e anote o endereço IP externo em Detalhes > Front-end. Você precisará dele na próxima etapa.
Configurar seu domínio para apontar para o balanceador de carga
Para configurar seu domínio para apontar para o balanceador de carga, configure os registros A seguindo as etapas abaixo:
- Acesse a conta do seu domínio no host de domínio.
- Encontre a página onde atualizar os registros DNS do seu domínio. O nome dessa página pode ser algo como "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 acima. Não inclua a porta
:443
no 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ê verá erros "HTTP 502".
- Quando o balanceador de carga estiver pronto, você verá "Solicitação não autorizada".
Para saber mais, consulte Sobre os registros A.
Reiniciar suas VMs
Para autenticar corretamente as solicitações do IAP, reinicie as VMs no seu MIG, seguindo as etapas abaixo:
- No console 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 que é exibida, defina os valores a seguir:
- 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 seu firewall para bloquear o acesso às VMs subjacentes e permitir somente o acesso por meio do IAP:
- Acesse o Google Cloud console
Rede VPC > Regras de firewall.
ACESSAR A PÁGINA "REGRAS DE FIREWALL" - Marque a caixa de seleção ao lado das regras a seguir:
- default-allow-http
- default-allow-https
- default-allow-internal
- Clique em Excluir.
- Clique em Criar regra de firewall e defina os valores a seguir:
- Nome: allow-iap-traffic
- Destinos: todas as instâncias na rede
- Intervalos de IPs de origem (pressione Enter depois de colar cada valor na caixa). Os intervalos de IP estão na lista de permissões porque são um pré-requisito
para a comunicação do balanceador de carga 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 seu projeto, siga as etapas abaixo:
- No console Google Cloud , acesse a página Segurança > Identity-Aware Proxy e selecione o projeto em que você quer ativar o IAP.
ACESSAR A PÁGINA "IDENTITY-AWARE PROXY" Se a tela de consentimento do OAuth ainda não tiver sido configurada no seu projeto, você será solicitado a fazer 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.
-
Acesse a tela de consentimento OAuth.
Ao lado de my-backend-service,
Na janela Ativar IAP que aparece, marque a caixa de seleção ao lado de "Li os requisitos de configuração e configurei meu recurso do Compute Engine de acordo com a documentação".
Clique em Ativar.
Adicionar principais à lista de acesso
Em seguida, você vai adicionar principais à lista de acesso do IAP para seu projeto.
- Na página IAM e administrador > Identity-Aware Proxy, na seção Acessoà direita, clique em Adicionar.
- Insira os participantes que você quer dar acesso, incluindo você mesmo, 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 espaço de trabalho do Google: example.com
Etapa 6: testar o IAP
Para testar se o IAP está funcionando corretamente, siga as etapas abaixo:
- Acesse seu domínio em um navegador da Web.
- Se aparecer "Solicitação não autorizada", tente novamente em alguns minutos.
- Quando aparecer a tela de login do Google, conecte-se usando a Conta do Google a que você concedeu acesso na etapa anterior.
- Você verá uma mensagem como esta: "Hi, user@example.com. I am my-managed-instance-group-29z6."
- Tente atualizar a página. Seu navegador mostrará os nomes das três máquinas em seu grupo de instâncias gerenciadas. 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.