Como posso configurar uma VPN para usuários remotos se conectarem a um servidor AWS RDS?

4

Eu tenho desenvolvedores remotos que viajam e mudam constantemente os endereços IP. Eu gostaria que eles pudessem se conectar a uma VPN em execução em uma instância no EC2. Uma vez conectados à VPN com uma chave, eles podem usar a VPN para retransmitir tráfego para o servidor RDS. Alterar constantemente as configurações do grupo de segurança todos os dias para cada desenvolvedor não é uma opção.

Eu olhei para o OpenVPN e posso criar uma conexão VPN diretamente para a instância que hospeda a VPN. Acredito que minha rota não esteja funcionando porque o RDS não sabe como direcionar as respostas de volta à instância do RDS.

  1. É possível configurar o OpenVPN para rotear como eu gostaria?
  2. Se 1 não for possível, quais opções eu tenho para criar uma conexão segura e conhecida para o RDS a partir de fontes remotas desconhecidas.
por Morgan 02.05.2012 / 01:29

2 respostas

5

Uma solução muito simples seria usar apenas túneis SSH para transportar o tráfego SQL. Você não menciona o sistema operacional que está executando em suas instâncias do EC2, portanto, suponho que esteja executando o Linux (se você não estiver executando o Linux, gere uma instância de t1.micro para essa finalidade). muita potência para este tipo de tráfego). Então - com o servidor Linux em mãos, a configuração será bem fácil. Cada desenvolvedor precisará de uma conta nesse servidor e precisará gerar um par de chaves para si e fornecer a chave pública para implantar em suas contas de servidor.

Se eles estivessem usando um sistema operacional unixy, eles executariam um comando semelhante a este:

$ ssh user@ec2-host -L3306:a.b.c.d:3306

... onde "a.b.c.d" é o endereço IP da instância do RDS. Você só precisa se certificar de que cada usuário tenha subvenções apropriadas no banco de dados RDS para conectar-se a partir do host ec2 que eles estão passando.

Depois de fazer isso, os desenvolvedores se conectarão ao seu localhost, a porta 3306, e esse tráfego será encaminhado para a instância do RDS.

(Eu nunca usei o RDS, mas como ele é construído para ser um substituto do MySQL, sinto que minha suposição é correta e usa a porta 3306. Se ele usa uma porta diferente, mude o número da porta no final do comando acima)

    
por 02.05.2012 / 04:40
2

Sim, você não será capaz de fazer isso sem gastar um pouco. A solução mais fácil seria o tráfego VPN da NAT quando o gateway a envia para o RDS, para que o RDS saiba enviar o tráfego de volta ao seu gateway antes de fazer o arquivamento do NAT e enviá-lo de volta pela VPN. A outra maneira que pode funcionar é usando um VPC; Eu nunca usei isso com RDS (ou, para ser honesto, muito mesmo), mas como eu entendo a maneira como a rede VPC funciona, é possível que o RDS conecte-se ao seu VPC e, portanto, possa ser capaz de usar um gateway. Eu acho, no entanto, que o NAT vai acabar sendo a opção mais fácil.

    
por 02.05.2012 / 02:41