Aws Lambda — IP Fixo no Tráfego de Saída

Passo a passo para atribuir um IP público fixo a uma função Lambda na AWS

Aws Lambda — IP Fixo no Tráfego de Saída

Olá Gente!


Lambda é um dos serviços que mais utilizo na AWS, me permite criar micro-serviços para diversas necessidades.


Porem, a alguns dias me surgiu uma necessidade diferenciada.

Eu precisava buscar dados de uma API, porem, esta API permite apenas que IPs previamente liberados acessem a API.


Então fui testar qual o IP Público que é utilizado quando a função lambda faz uma request.

Para isto, crie uma função em Nodejs, que busca o IP Público:


Como já era óbvio, não existe um IP Fixo no tráfego da função, então, cada teste me retornava um IP diferente:


Vamos Resolver Isto?


Nas configurações das funções Lambda, podemos configurar para que a função utilize uma rede VPC própria, e nesta rede, podemos configurar o tráfego de saída para sair sempre do mesmo IP.


A primeira coisa que precisamos fazer é acessar as configurações do serviço VPC:


Aqui iremos criar uma VPC que quando o tráfego da rede privada for para a rede pública, passe por um Gateway NAT onde um (ou diversos) IPs serão fixados.


Criando VPC


Em “Suas VPCs” clique em “Criar VPC”:


Será aberto uma janela para configurarmos a VPC e todos seus recursos, porem, são necessários customizar apenas alguns campos, os outros, que não irei descrever abaixo, não devem ser alterados.


Em “Recursos a serem criados” selecione “VPC e muito mais”, isto ira criar a VPC e todos os recursos necessários:


Em “Geração automática da etiqueta de nome” preencha um nome para identificar sua VPC:


Em “Número de zonas de disponibilidade” selecione “1” (Aqui você pode selecionar mais para criar uma redundância):


Em “Gateways NAT” selecione “1 por AZ”:


Em “Endpoints da VPC” selecione “Nenhuma”:


Agora clique em “Criar VPC”:


Será exibido uma janela exibindo o progresso da criação, podem levar diversos minutos para finalizar a criação da VPC:


Após a VPC ser criada, será exibido “Êxito”:


Identificando IP Público


No lado esquerdo, selecione a VPC que criamos:


Clique em “Gateways NAT”:


Será exibido apenas um Gateway com o sufixo “Public”, clique nele:


O IP público será exibido no campo “Endereço IPv4 público primário”:


Neste caso, o IP Público é:

54.165.76.118


Pronto! Agora temos nossa função VPC com IP Público Fixo!


Configurando Função Lambda para ter Acesso as VPC


Em sua função lambda, clique em “Configurações”:


Clique em “Permissão”:


Clique no nome da função, para ter acesso a edição das permissões:


Clique em “Adicionar Permissões” e em seguida em “Anexar Políticas”:


Procure a permissão “AWSLambdaVPCAccessExecutionRole” e marque esta permissão na listagem:


Clique em “Adicionar Permissões”:


Pronto! Agora atribuímos a permissão de acesso a VPC em nossa Função Lambda:


Vinculando VPC em nossa Função Lambda


Em sua Função Lambda, clique em “Configurações” e após em “VPC”:


Clique em “Editar”:


Selecione a VPC que criamos:


Em “Sub-redes” selecione a sub-rede que possuem o nome “private”:


Em “Grupos de Segurança” selecione o único grupo disponível em sua nova VPC:


Em seguida, clique em “Salvar”:


Agora é necessário aguardar a Função atualizar, o que pode levar alguns minutos:


Pronto! Agora nossa Função Lambda esta conectada a nossa nova rede VPC:


Testando


Agora iremos executar o teste algumas vezes, para confirmar o IP Público:


E com isto, confirmamos que o IP público esta fixado em:

54.165.76.118


Terminamos por hoje, entusiastas da Lambda! 👩‍💻

Até a próxima execução da função! 🌈