Pular para o conteúdo principal

Planejamento de Instâncias de Computação na Nuvem NNumbers Cloud

Os fatores abaixo precisam ser considerados quando estiver sendo feito o planejamento de implantação de instâncias de cloud computing:

  • A criação de uma rede privada (VPC). Veja: Tutorial de Redes.

  • A criação de um roteador da rede pública para a rede privada. Veja: Tutorial Roteadores.

  • Se for necessário manter o IP público (e.g. para uso em registro DNS, balanceamento de carga, escalonamento horizontal, failover, switchover), é necessário que seja reservado IP(s) flutuante(s). Veja: Tutorial IPs Flutuantes.

  • Para criar uma conexão entre redes de uma rede dentro de um projeto com a rede interna da empresa ou outra rede externa ao projeto, e para melhor segurança de gerenciamento interno das instâncias sem expor serviços (e.g. ssh) direto nas redes públicas, é possível criar uma rede privada virtual através do serviço de VPN. Veja: Tutorial VPN Site-to-Site.

  • Para expor os serviços necessários é necessário criar grupos de segurança com regras de acordo com o tipo de serviço. Cada regra tem uma origem em notação CIDR, e escolher essa origem errado é o erro mais caro desta etapa — veja Origem das regras: o que o CIDR significa, abaixo. Veja também: Tutorial Grupos de Segurança.

  • Para criar um balanceamento de carga com mais garantia de disponibilidade é necessário criar grupos de servidores. A criação de grupos de servidores define regras de afinidade e anti-afinidade. Veja: Tutorial Load Balancers (Balanceamento de Carga).

  • Para balanceamento de carga e melhor aproveitamento de IPs públicos reservados, existe o serviço de balanceamento de carga (Load Balancer) que permite realizar balanceamento de carga para as instâncias desejadas. Veja: Tutorial Load Balancers (Balanceamento de Carga).

  • Opcionalmente, algumas modificações podem ser realizadas na inicialização da imagem padrão através do uso do cloud-init. Através do cloud-init é possível fazer alterações no nome padrão do usuário, atualização e instalação de pacotes na inicialização da instância, etc.

Origem das regras: o que o CIDR significa​

Toda regra de um grupo de segurança tem uma origem escrita em notação CIDR — um endereço seguido de uma barra e um número. Esse número é a quantidade de bits fixos do endereço, e ele decide quantos endereços a regra libera.

NotaçãoQuantos endereços IPv4Significa
203.0.113.45/321Exatamente aquele endereço
203.0.113.0/24256Aquela faixa
10.0.0.0/816.777.216Toda a faixa privada 10.x.x.x
0.0.0.0/0todosQualquer endereço da internet
Dois valores que são confundidos com frequência

0.0.0.0/32 não significa "qualquer rede". Ele é um CIDR de um único endereço — e o endereço 0.0.0.0 não pertence a máquina nenhuma, então a regra não libera ninguém.

"Qualquer rede" é 0.0.0.0/0. Em IPv6, o equivalente é ::/0.

SSH (porta 22) nunca deve ser liberado para 0.0.0.0/0​

Uma porta 22 aberta para a internet inteira recebe tentativas de autenticação automatizadas em minutos. Prefira, nesta ordem:

  1. Seu endereço público em /32 — para acesso pontual de administração.
  2. VPN site-to-site — acesso pela rede da empresa, sem expor a porta. Ver VPN site-to-site.
  3. Bastion (jump host) — uma única instância exposta, e as demais alcançáveis só por ela. Ver Acesso SSH.
  4. Grupo de segurança de origem — libere pelo grupo de segurança, não por endereço, quando a origem for outra instância do mesmo projeto.

Exemplos lado a lado​

IntençãoInseguroSeguro
Administrar via SSHTCP 22 de 0.0.0.0/0TCP 22 de 203.0.113.45/32
Publicar um site—TCP 443 de 0.0.0.0/0 (esta é a intenção)
Banco acessível pela aplicaçãoTCP 5432 de 0.0.0.0/0TCP 5432 do grupo de segurança da aplicação
Diagnóstico com pingICMP de 0.0.0.0/0ICMP da sua faixa de administração

HTTP e HTTPS públicos podem usar 0.0.0.0/0: é exatamente o que se quer de um site público. A diferença é que ali a exposição é a intenção, e no SSH é um acidente.

Descobrir o seu endereço público​

Use um serviço que você já confia e que declara o que faz. Dois exemplos operados por provedores conhecidos:

curl https://checkip.amazonaws.com
curl https://api.ipify.org

Se a sua empresa tem saída de internet fixa, peça a faixa à equipe de rede em vez de descobrir o endereço do seu computador — o endereço doméstico costuma mudar.

Entrada e saída são regras diferentes​

  • Entrada (ingress) — quem pode iniciar conexão para a instância. É onde mora o risco de exposição.
  • Saída (egress) — para onde a instância pode iniciar conexão. O padrão costuma ser liberado; restringi-lo limita o estrago de uma instância comprometida.

Validar que a regra funciona​

Depois de criar a regra, confirme de fora da instância:

# Deve conectar a partir do endereço que você liberou
ssh usuario@203.0.113.10

# Deve falhar por tempo esgotado a partir de outro endereço
nc -vz -w 5 203.0.113.10 22

Um Connection timed out a partir de um endereço não liberado é o resultado esperado — é a prova de que a regra está restringindo.

Revogar depois do uso​

Regra de acesso pontual precisa de prazo. Ao terminar a manutenção, remova a regra no painel (Rede → Grupos de Segurança → Gerenciar Regras → excluir) e confirme que o acesso deixou de funcionar. Uma regra /32 esquecida vira uma porta aberta para um endereço que, meses depois, pode ser de outra pessoa.

Para acesso a instância(s) de computação Linux na nuvem NNumbers Cloud é necessário:​

  • A criação de um par de chaves para acesso SSH ou importação de uma chave existente. A(s) chave(s) criada(s) ou importada(s) ser(á)(ão) utilizadas no momento da criação da(s) instância(s).

  • Ou através da criação de um usuário e senha no momento da criação da instância computacional através do uso de um script (formato YAML) cloud-init.

Próximos passos​