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

7 minuto de leitura
1

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

Breve descrição

O acesso à Internet a partir de uma sub-rede privada requer a conversão de endereços de rede (NAT). Para conceder acesso à Internet a uma função do Lambda que está conectada à Amazon VPC, direcione seu tráfego de saída para um gateway NAT ou instância NAT em uma sub-rede pública.

Para obter mais informações, consulte Estabelecer conexão com a Internet usando um gateway da Internet. Para ver um exemplo de configuração, consulte VPC com servidores em sub-redes privadas e NAT.

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

Resolução

(Opcional) Crie uma nova Amazon VPC usando o assistente de VPC no Console de Gerenciamento da AWS

Observação: se você usar o assistente de VPC para criar uma nova Amazon VPC, avance para a seguinte seção: Crie um perfil de execução do Lambda para a VPC.

1.    Abra o assistente de VPC no Console de Gerenciamento da AWS.

2.    Selecione VPC com sub-redes públicas e privadas. As novas Sub-rede pública e Sub-rede privada, incluindo o gateway da Internet e o gateway NAT associados, aparecem no console da Amazon VPC.

Crie uma sub-rede pública e uma ou mais sub-redes privadas na Amazon VPC

Para obter instruções, consulte Criar uma sub-rede para criar cada uma das sub-redes.

Ao criar as sub-redes, em Etiqueta de nome, insira um nome para cada sub-rede que as identifique como pública ou privada. Por exemplo: Sub-rede pública, Lambda privado 1 e Lambda privado 2.

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

Crie um gateway da Internet e conecte-o à sua Amazon VPC

Para obter instruções, consulte Criar e associar um gateway da Internet à VPC.

Crie um gateway NAT

Para obter instruções, consulte Criar um gateway NAT. Ao criar o gateway NAT, em Sub-rede, escolha a sub-rede que você deseja tornar pública. (Do exemplo anterior: Sub-rede pública.)

Observação: para testar a configuração do gateway NAT, consulte Testar o gateway NAT público.

Crie duas tabelas de rotas personalizadas: uma para a sub-rede pública e outra para a sub-rede privada

Observação: quando uma função do Lambda que está conectada à Amazon VPC faz solicitações, ela seleciona aleatoriamente uma sub-rede associada. Se a função usar uma sub-rede mal configurada, você receberá um erro. Para evitar erros aleatórios, certifique-se de usar a mesma configuração para todas as sub-redes usadas pela sua função.

Para obter instruções, consulte Criar uma tabela de rotas personalizada. Ao criar as tabelas de rotas, em Tag de nome, insira um nome para cada tabela de rotas que o ajude a identificar a sub-rede à qual ela está associada. Por exemplo: Sub-rede pública e Lambda privado.

Para cada tabela de rotas, certifique-se de concluir as seguintes etapas:

Para a tabela de rotas da sub-rede pública

1.    Associe a tabela de rotas da sub-rede pública** (Sub-rede pública**) à sub-rede que você deseja tornar pública.

2.    Adicione uma nova rota à tabela de rotas que inclua as seguintes configurações:

Em Destino, insira 0.0.0.0/0.
Em Destino, escolha Gateway da Internet e, em seguida, escolha o ID (igw-123exemplo) do gateway da Internet criado. Selecione Salvar rotas.

Para a tabela de rotas da sub-rede privada

1.    Associe a tabela de rotas da sub-rede privada** (Lambda privada**) às sub-redes privadas.

2.    Adicione uma nova rota à tabela de rotas que inclua as seguintes configurações:

Em Destino, insira 0.0.0.0/0.
Em Destino, escolha Gateway NAT. Em seguida, escolha o ID do gateway NAT (nat-123exemplo) criado.

Importante: se você estiver usando uma instância NAT, escolha Interface de rede. 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, elas estarão em status buraco negro. Para obter mais informações, consulte Excluir um gateway NAT.

Verifique se a sua ACL da rede permite solicitações de saída de sua função do Lambda e tráfego de entrada conforme necessário

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

Além disso, certifique-se de que a ACL da rede permita o seguinte tráfego de entrada com base na sua configuração da VPC:

  • 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 usadas pelo sistema operacional da sua instância NAT.

Observação: para obter mais informações, consulte Privacidade do tráfego entre redes na Amazon VPC.

Crie um perfil de execução do Lambda para a VPC

1.    Abra a página Perfis no console do AWS Identity and Access Management (IAM).

2.    Selecione Criar perfil. A página Criar perfil será aberta.

3.    Na página Criar perfil, conclua as seguintes etapas:

Em Selecionar tipo de entidade confiável, selecione Serviço da AWS.
Para Casos de uso comuns, escolha Lambda.
Escolha Próximo: Permissões.
Em Anexar políticas de permissões, pesquise por AWSLambdaVPCAccessExecutionRole.
Selecione a política com esse nome. Em seguida, escolha Próximo: Etiquetas.
(Opcional) Adicione etiquetas de acordo com o seu caso de uso.
Escolha Próximo: Revisão.
Em Nome do perfil, insira um nome para seu perfil de execução do Lambda. Por exemplo: lambda_vpc_basic_execution.
(Opcional) Em Descrição do perfil, insira uma descrição do perfil. Selecione Criar perfil.

Anexe o perfil à função do Lambda

1.    Abra a página Funções no console do Lambda.

2.    Escolha o nome da função que você deseja conectar à Amazon VPC.

3.    Selecione a guia Configuração e, em seguida, escolha Permissões.

4.    Em Perfil de execução, escolha Editar.

5.    Escolha a lista suspensa Perfil existente e, em seguida, escolha o seu perfil. Por exemplo: lambda_vpc_basic_execution.

6.    Escolha Salvar.

Para obter mais informações, consulte Função de execução do Lambda e Criar uma função de execução no console do IAM.

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

1.    Abra a página Funções no console do Lambda.

2.    Escolha o nome da função que você deseja conectar à Amazon VPC.

3.    Escolha a guia Configuração.

4.    Escolha VPC na barra de navegação esquerda e escolha Editar. Em seguida, preencha os seguintes campos:

Em Nuvem privada virtual (VPC), escolha a sua VPC.
Em Sub-redes, selecione as sub-redes privadas que você criou. Identifique-as pelos IDs de sub-rede (e nomes, se você as nomeou).
Em Grupos de segurança, escolha um grupo de segurança.

Observação: o grupo de segurança padrão permite todo o tráfego de saída da Internet e é suficiente para a maioria dos casos de uso. Para obter mais informações, consulte Controle o tráfego para seus recursos da AWS usando grupos de segurança.

5.    Escolha Salvar.

Informações relacionadas

Como conectar as redes de saída aos recursos em uma VPC

Solucionar problemas de redes no Lambda

How do I troubleshoot Lambda function failures?

AWS OFICIAL
AWS OFICIALAtualizada há um ano