Que endereço um firewall de nuvem vê quando a VPN está ativa
Um túnel completo muda o endereço de origem que o seu banco de dados vê. Mova a lista de permissões, o caminho privado ou o túnel dividido, não a credencial.
Um banco de dados que funciona antes de a VPN conectar e falha depois raramente é um problema de credenciais. Firewalls de nuvem comparam endereços de origem, e um túnel completo substitui o que estavam comparando. A diferença entre o que você acha que o seu portátil envia e o que o servidor recebe é o bug inteiro, e é mensurável em um passo.
No que o endereço de origem se torna
Num túnel completo, cada pacote sai pela gateway VPN, então o servidor vê o endereço de saída da gateway em vez da sua conexão doméstica. Se houver um proxy de encaminhamento no caminho, é o endereço dele que chega. Ambos são origens legítimas, e nenhum deles é o endereço da sua regra original.
As regras de firewall do Azure SQL nos níveis de servidor e de banco de dados comparam o endereço do cliente que chega ao servidor lógico, que depois de um túnel completo é o endereço de saída. Um grupo de segurança da AWS que permite um único endereço comporta-se da mesma forma. O pacote é descartado antes da autenticação, então o erro que você recebe parece uma falha de rede em vez de um problema de permissões. É exatamente por isso que as pessoas começam a redefinir senhas.
Onde a lista de permissões é decidida
Leia a regra que corresponde ao caminho que falha, não a regra que você lembra de ter criado. Anote o escopo, a porta, o protocolo e se ela é avaliada antes de qualquer verificação de identidade.
Depois decida qual camada possui legitimamente a decisão. Uma regra de endereço responde de onde vem o tráfego. Um endpoint privado responde se o serviço é acessível por um caminho privado. Uma exceção de túnel dividido responde quais destinos contornam o túnel. Não são intercambiáveis, e cada uma falha de forma diferente quando o túnel muda.
Três reparos, três camadas
Cada opção abaixo corrige o fluxo por um motivo diferente, e escolher a errada produz uma conexão que funciona até a próxima mudança de gateway.
| Repair | Layer it changes | What it does not fix |
|---|---|---|
| Add the egress address to the rule | Source address matching | Nothing about routing, and it breaks when the egress moves |
| Use a private endpoint | Whether the service is reached privately | A client that still resolves the public name |
| Add a split-tunnel exception | Which flows bypass the tunnel | An expired credential or a wrong password |
Adicionar o endereço de saída é a menor mudança e a mais frágil, porque uma nova gateway ou uma região diferente a invalidam em silêncio. Documente o endereço ao lado da definição do túnel para que os dois se movam juntos. Uma faixa ampla temporária é um diagnóstico, não um reparo; deixá-la no lugar é como serviços internos acabam expostos.
Por que uma plataforma gerenciada não pode entrar no túnel
Plataformas de aplicação como Heroku, AppHarbor ou CloudBees executam o seu código num ambiente sem dispositivo tun ou tap e sem privilégios para criar um. O modelo de entrada delas é HTTP e não um socket de escuta arbitrário. Um buildpack que inclui um binário de VPN continua sem ter onde colocar a interface. Os padrões viáveis são um endereço de saída estático que o banco de dados possa permitir, um produto de conexão privada oferecido pela plataforma ou um proxy numa DMZ alcançado por HTTPS.
Esse proxy é um caminho de acesso com a sua própria autenticação e registo. Ele não torna a plataforma membro da sua VPN, e descrevê-la assim produz regras que ninguém consegue auditar.
Verifique a partir do cliente que falhou
Reconecte e repita o caminho exato do cliente. Verifique o endereço de origem que o serviço registra, a rota que o cliente escolhe para o nome do banco de dados e o resultado da consulta real, nessa ordem. Um teste a partir da gateway prova que a gateway funciona, o que nunca esteve em dúvida. Se a conexão agora autentica e a consulta ainda falha, o problema restante é a permissão no banco de dados.
Reveja estas regras sempre que o túnel mudar. Uma gateway substituída ou uma nova faixa de saída quebram o caminho sem qualquer alteração na configuração da aplicação.