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](/content/images/size/w2000/2024/02/can-phone-568057_1280.jpg)
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:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-1lc6hakqkbfanc37bunjva.png)
![](https://www.palomamacetko.com.br/content/images/2024/02/1-diyw3awlhskt4dgmm_oeqg.png)
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:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-kjkxwp_yc04tnkqzreae2q.png)
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”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-4prjt8hk0b3is0bvfykc0q.png)
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:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-14lvbkqpcnufv41fodprcw.png)
Em “Geração automática da etiqueta de nome” preencha um nome para identificar sua VPC:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-6f3h8to-_szjm-s14ebgha.png)
Em “Número de zonas de disponibilidade” selecione “1” (Aqui você pode selecionar mais para criar uma redundância):
![](https://www.palomamacetko.com.br/content/images/2024/02/1--ulk3tkxbeq47ihhimrq7w.png)
Em “Gateways NAT” selecione “1 por AZ”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-mofdtfz6jqf60bf-pk_xma.png)
Em “Endpoints da VPC” selecione “Nenhuma”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-s6ixuo25sm_p_89fair9iw.png)
Agora clique em “Criar VPC”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-6p45pmriba889wnmr5arew.png)
Será exibido uma janela exibindo o progresso da criação, podem levar diversos minutos para finalizar a criação da VPC:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-vltjtf1oa9uiid5a6furuw.png)
Após a VPC ser criada, será exibido “Êxito”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-l_rfkygyt4p8vaej71wc9a.png)
Identificando IP Público
No lado esquerdo, selecione a VPC que criamos:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-ekf7jsaauzhnd-rg4haysw.png)
Clique em “Gateways NAT”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1--zbcmjk6khm5po98fqlxrg.png)
Será exibido apenas um Gateway com o sufixo “Public”, clique nele:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-ojtky0a2nxaomixjamrfpq.png)
O IP público será exibido no campo “Endereço IPv4 público primário”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-ivouhzylg7cp4ev6womnlw.png)
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”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-2rj2xsm2jqrwl3528rwiwa.png)
Clique em “Permissão”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-rcyr17nazwtwfpcudtz_2g.png)
Clique no nome da função, para ter acesso a edição das permissões:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-6b7s5k_wx5qjxwds1d6_hw.png)
Clique em “Adicionar Permissões” e em seguida em “Anexar Políticas”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-gm6amf5ehaksmzec8iffea.png)
Procure a permissão “AWSLambdaVPCAccessExecutionRole” e marque esta permissão na listagem:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-4et3w95s1l-nywazdyjakg.png)
Clique em “Adicionar Permissões”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-xminy3zv2dbdoohnwfdvzq.png)
Pronto! Agora atribuímos a permissão de acesso a VPC em nossa Função Lambda:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-nxat6jwqi4fom2x2ybutya.png)
Vinculando VPC em nossa Função Lambda
Em sua Função Lambda, clique em “Configurações” e após em “VPC”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-xnbcrey_7rmvh4sqhxynoa.png)
Clique em “Editar”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-tsqm0enftlgiya7elhvltq.png)
Selecione a VPC que criamos:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-kn0_rk6te7acodysj6wb6w.png)
Em “Sub-redes” selecione a sub-rede que possuem o nome “private”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-fnlbfyh3yaqpw7cvetnmfw.png)
Em “Grupos de Segurança” selecione o único grupo disponível em sua nova VPC:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-qtte9mu5r6g50uo2nwqrjg.png)
Em seguida, clique em “Salvar”:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-pklwrjmnglrkks4gy5l_5g.png)
Agora é necessário aguardar a Função atualizar, o que pode levar alguns minutos:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-1us_wxiwamv83n4-p8fmnw.png)
Pronto! Agora nossa Função Lambda esta conectada a nossa nova rede VPC:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-s382onsakkkaapoeakpwhq.png)
Testando
Agora iremos executar o teste algumas vezes, para confirmar o IP Público:
![](https://www.palomamacetko.com.br/content/images/2024/02/1-wow7ysjtzco1qghejv7wig.png)
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! 🌈