Como conceder acesso à Internet a uma função do Lambda que está conectada à Amazon VPC?

5 minuto de leitura
1

Quero conceder acesso à Internet a uma função do AWS Lambda que possui uma conexão à Amazon Virtual Private Cloud (Amazon VPC).

Breve descrição

Por padrão, as funções do Lambda são executadas em uma VPC gerenciada pelo Lambda com acesso à Internet. Para acessar recursos em uma VPC em sua conta da AWS, adicione uma configuração de VPC à função. Essa configuração restringe a função aos recursos dentro da VPC, a menos que a VPC tenha acesso à Internet.

Mesmo quando você associa uma função do Lambda a uma sub-rede pública, a função não pode se conectar diretamente à Internet. Uma função em uma VPC tem um endereço IP privado e exige um gateway NAT ou uma instância NAT para que a VPC acesse a Internet.

Observação: você pode usar endpoints de VPC para se conectar a serviços compatíveis da AWS de dentro de uma conexão da Amazon VPC sem acesso à Internet.

Resolução

Crie uma sub-rede pública e uma sub-rede privada no Amazon VPC

Crie uma sub-rede privada para sua função do Lambda e uma sub-rede pública para seu gateway NAT. No campo Tag de nome, insira um nome para cada sub-rede que a identifique como pública ou privada. Por exemplo, use a sub-rede pública, o Lambda privado 1 e o Lambda privado 2.

Observação: é uma prática recomendada criar mais de uma sub-rede privada em diferentes zonas de disponibilidade. Essa ação cria redundância e permite que o Lambda mantenha alta disponibilidade para sua função.

Use um gateway da Internet para adicionar acesso de internet à sub-rede

Crie um gateway da internet e, então, anexe-o à sua VPC.

Crie um gateway NAT

Crie um gateway NAT. Em Sub-rede, escolha a sub-rede que você deseja tornar pública. Por exemplo, escolha Sub-rede pública.

(Opcional) Teste a configuração do gateway NAT.

Crie duas tabelas de rotas personalizadas

Observação: Quando uma função do Lambda em uma VPC faz solicitações, a função seleciona aleatoriamente uma sub-rede associada. Se a função usar uma sub-rede mal configurada, você recebe um erro. Para evitar esse problema, certifique-se de usar a mesma configuração para todas as sub-redes usadas pela sua função.

Para configurar suas tabelas de rotas personalizadas, conclua as etapas a seguir para sua sub-rede pública e privada:

  1. Crie uma tabela de rotas personalizada. Para o campo Tag de nome, insira um nome para cada tabela de rotas que ajude a identificar a sub-rede à qual ela está associada. Por exemplo, use a sub-rede pública e o Lambda privado.
  2. Associe a tabela de rotas da sub-rede à sub-rede pública ou privada.
  3. Adicione uma nova rota à tabela de rotas e inclua as seguintes configurações:
    Em Destino, insira 0.0.0.0/0.
    Para Target, escolha gateway da internet ou gateway NAT. Para a sub-rede pública, selecione o ID do gateway da internet. Para a sub-rede privada, selecione o ID do gateway NAT.
    Importante: Se você usar uma instância NAT em vez de um gateway NAT, escolha Interface de rede em vez de gateway NAT.
  4. Selecione Salvar rotas.

Observação: certifique-se de que as rotas para o gateway NAT estejam em status ativo. Se o gateway NAT for excluído e você não tiver atualizado as rotas, as rotas terão um status buraco negro. Para obter mais informações, consulte Excluir um gateway NAT.

Revise sua configuração da ACL de rede

A lista de controle de acesso à rede (ACL de rede) padrão na VPC permite todo o tráfego de entrada e saída. Se você alterar as regras da ACL de rede, certifique-se de permitir solicitações de saída da sua função do Lambda. Além disso, certifique-se de que sua ACL de rede permita o seguinte tráfego de entrada:

  • Para sub-redes privadas que usam um gateway NAT, permita tráfego de entrada nas portas efêmeras 1024-65535.
  • Para sub-redes privadas que usam uma instância NAT, permita tráfego de entrada nas portas efêmeras que o sistema operacional (SO) da sua instância NAT utiliza.

Para obter mais informações, consulte Garantir privacidade do tráfego entre redes na Amazon VPC.

Criar uma função de execução do Lambda

Crie um perfil de execução do Lambda para a VPC. Em seguida, atualize a função do Lambda para usar a nova função de execução do Lambda.

Configure sua função do Lambda para se conectar à sua VPC

Anexe sua função à sua VPC e defina as seguintes configurações:

Para funções do Lambda com uma conexão da Amazon VPC, você pode usar um gateway da internet somente de saída para acessar a internet. Para obter mais informações, consulte o suporte IPv6.

Informações relacionadas

Solucionar problemas de redes no Lambda

Como soluciono problemas de tempo limite com uma função do Lambda que está em uma Amazon VPC?

Como soluciono um erro ETIMEDOUT na minha função do Lambda?

Conceder às funções do Lambda acesso aos recursos em uma Amazon VPC

Como soluciono falhas de funções do Lambda?

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses