Habilitar o acesso à Internet para funções do Lambda conectadas à VPC
Por padrão, as funções do Lambda são executadas em uma VPC gerenciada pelo Lambda que tem acesso à Internet. Para acessar recursos em uma VPC em sua conta, você pode adicionar uma configuração de VPC a uma função. A menos que a VPC tenha acesso à Internet, isso restringirá a função aos recursos dentro dessa VPC. Esta página explica como fornecer acesso à Internet às funções do Lambda conectadas à VPC.
Criar a VPC
O fluxo de trabalho Criar VPC cria todos os recursos de VPC necessários para que uma função do Lambda acesse a Internet pública usando uma sub-rede privada, inclusive sub-redes, gateway NAT, gateway da Internet e entradas na tabela de rotas.
Como criar a VPC
Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/
. -
No painel, escolha Criar VPC.
-
Em Resources to create (Recursos a serem criados), escolha VPC and more (VPC e mais).
-
Configurar a VPC
-
Em Name tag auto-generation (Geração automática de tags de nome), insira um nome para a VPC.
-
Em Bloco CIDR IPv4, é possível manter a sugestão padrão ou inserir o bloco CIDR exigido por sua aplicação ou rede.
-
Se a sua aplicação se comunica usando endereços IPv6, escolha Bloco CIDR IPv6, Bloco CIDR IPv6 fornecido pela Amazon.
-
-
Configurar as sub-redes
-
Em Número de zonas de disponibilidade, escolha 2. Recomendamos pelo menos duas AZs para alta disponibilidade.
-
Em Number of public subnets (Número de sub-redes públicas), escolha 2.
-
Em Number of private subnets (Número de sub-redes privadas), escolha 2.
-
É possível manter o bloco CIDR padrão para a sub-rede pública ou, alternativamente, expandir Personalizar blocos CIDR da sub-rede e inserir um bloco CIDR. Para obter mais informações, consulte Blocos CIDR de sub-rede.
-
-
Em Gateways NAT, escolha 1 por zona de disponibilidade para melhorar a resiliência.
-
Em Gateway da Internet somente de saída, escolha Sim se tiver optado por incluir um bloco CIDR IPv6.
-
Em Endpoints da VPC, mantenha o valor padrão (Gateway do S3). Não há custo para essa opção. Para obter mais informações, consulte Tipos de endpoints da VPC para o Amazon S3.
-
Em Opções de DNS, mantenha as configurações padrão.
-
Escolha Criar VPC.
Configurar a função do Lambda
Como configurar uma VPC ao criar uma função
Abra a página Funções
do console do Lambda. -
Escolha a opção Criar função.
-
Em Basic information (Informações básicas), para Function name (Nome da função), insira um nome para a função.
-
Expanda Advanced settings (Configurações avançadas).
-
Selecione Habilitar VPC e, em seguida, escolha uma VPC.
-
(Opcional) Para permitir tráfego IPv6 de saída, selecione Permitir tráfego IPv6 para sub-redes de pilha dupla.
-
Em Sub-redes, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
nota
Se você selecionou Permitir tráfego IPv6 para sub-redes de pilha dupla, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.
-
Em Grupos de segurança, selecione um grupo de segurança que permita tráfego de saída.
-
Escolha a opção Criar função.
O Lambda criará automaticamente um perfil de execução com a política AWSLambdaVPCAccessExecutionRole gerenciada pela AWS. As permissões nessa política são necessárias apenas para criar interfaces de rede elástica para a configuração da VPC, mas não para invocar a função. Para aplicar permissões com privilégios mínimos, você pode remover a política AWSLambdaVPCAccessExecutionRole do seu perfil de execução após criar a função e a configuração da VPC. Para ter mais informações, consulte Permissões obrigatórias do IAM.
Como configurar uma VPC para uma função existente
Para adicionar uma configuração de VPC a uma função existente, o perfil de execução da função precisa ter permissão para criar e gerenciar interfaces de rede elástica. A política AWSLambdaVPCAccessExecutionRole gerenciada pela AWS inclui as permissões necessárias. Para aplicar permissões com privilégios mínimos, você pode remover a política AWSLambdaVPCAccessExecutionRole do seu perfil de execução após criar a configuração da VPC.
Abra a página Funções
do console do Lambda. -
Escolha uma função.
-
Escolha a guia Configuração e depois VPC.
-
Em VPC, selecione Edit (Editar).
-
Selecionar a VPC.
-
(Opcional) Para permitir tráfego IPv6 de saída, selecione Permitir tráfego IPv6 para sub-redes de pilha dupla.
-
Em Sub-redes, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
nota
Se você selecionou Permitir tráfego IPv6 para sub-redes de pilha dupla, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.
-
Em Grupos de segurança, selecione um grupo de segurança que permita tráfego de saída.
-
Escolha Salvar.
Testar a função
Use o seguinte exemplo de código para confirmar se a sua função conectada à VPC pode acessar a Internet pública. Se for bem-sucedido, o código retornará um código de status 200
. Se não for bem-sucedido, o tempo-limite da função esgotará.
Se você já tiver uma VPC, mas precisar configurar o acesso público à Internet para uma função do Lambda, siga estas etapas. Este procedimento pressupõe que a VPC tenha pelo menos duas sub-redes. Se você não tiver duas sub-redes, consulte Criar uma sub-rede no Guia do usuário da Amazon VPC.
Verifique a configuração da tabela de rotas
Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/
. -
Escolha o ID da VPC.
-
Role para baixo até a seção Mapa de recursos. Anote os mapeamentos da tabela de rotas. Abra cada tabela de rotas mapeada para uma sub-rede.
-
Role para baixo até a guia Rotas. Examine as rotas para determinar se uma das opções a seguir é verdadeira. É necessário atender a cada um desses requisitos com uma tabela de rotas separada.
-
O tráfego vinculado à Internet (
0.0.0.0/0
para IPv4,::/0
para IPv6) é roteado para um gateway da Internet (igw-xxxxxxxxxx
). Isso significa que a sub-rede associada à tabela de rotas é uma sub-rede pública.nota
Se sua sub-rede não tiver um bloco CIDR IPv6, você verá somente a rota IPv4 (
0.0.0.0/0
).exemplo tabela de rotas de sub-rede pública
-
O tráfego vinculado à Internet para IPv4 (
0.0.0.0/0
) é roteado para um gateway NAT (nat-xxxxxxxxxx
) associado a uma sub-rede pública. Isso significa que a sub-rede é uma sub-rede privada capaz de acessar a Internet por meio do gateway NAT.nota
Se a sub-rede tiver um bloco CIDR IPv6, a tabela de rotas também deverá rotear o tráfego IPv6 direcionado à Internet (
::/0
) para um gateway da Internet somente de saída (eigw-xxxxxxxxxx
). Se sua sub-rede não tiver um bloco CIDR IPv6, você verá somente a rota IPv4 (0.0.0.0/0
).exemplo tabela de rotas de sub-rede privada
-
-
Repita a etapa anterior até ter revisado cada tabela de rotas associada a uma sub-rede em sua VPC e confirmar que tem uma tabela de rotas com um gateway da Internet e uma tabela de rotas com um gateway NAT.
Se você não tiver duas tabelas de rotas, uma com uma rota para um gateway da Internet e outra com uma rota para um gateway NAT, siga estas etapas a fim de criar os recursos e as entradas da tabela de rotas ausentes.
Siga estas etapas para criar uma tabela de rotas e associá-la a uma sub-rede.
Para criar uma tabela de rotas personalizada usando o console da Amazon VPC
-
Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/
. -
No painel de navegação, escolha Route tables.
-
Escolha Create Route Table (Criar tabela de rotas).
-
(Opcional) Em Name (Nome), insira um nome para a tabela de rotas.
-
Em VPC, escolha sua VPC.
-
(Opcional) Para adicionar uma etiqueta, escolha Add new tag (Adicionar nova etiqueta) e insira a chave e o valor da etiqueta.
-
Escolha Create Route Table (Criar tabela de rotas).
-
Na guia Subnet Associations (Associações da sub-rede) selecione Edit subnet associations (Editar associações da sub-rede).
-
Marque a caixa de seleção para a sub-rede associada à tabela de rotas.
-
Selecione Salvar associações.
Siga estas etapas para criar um gateway da Internet, anexá-lo à sua VPC e adicioná-lo à tabela de rotas da sua sub-rede pública.
Para criar um gateway da Internet
Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/
. -
No painel de navegação, escolha Internet gateways (Gateways da Internet).
-
Escolha Criar gateway da Internet.
-
(Opcional) Insira um nome para o gateway da Internet.
-
(Opcional) Para adicionar uma tag, escolha Add new tag (Adicionar nova tag) e insira a chave e o valor da tag.
-
Escolha Criar gateway da Internet.
-
Escolha Anexar a uma VPC no banner na parte superior da tela, selecione uma VPC disponível e escolha Anexar gateway da Internet.
-
Escolha o ID da VPC.
-
Escolha o ID da VPC novamente para abrir a página de detalhes da VPC.
-
Role para baixo até a seção Mapa de recursos e escolha uma sub-rede. Os detalhes sobre a sub-rede são exibidos em uma nova guia.
-
Escolha o link em Tabela de rotas.
-
Escolha o ID da tabela de rotas para abrir a respectiva página de detalhes da tabela de rotas.
-
Em Rotas, escolha Editar rotas.
-
Escolha Adicionar rota e, em seguida, insira
0.0.0.0/0
na caixa Destino. -
Em Destino, selecione Gateway da Internet e, em seguida, escolha o gateway da Internet que você criou anteriormente. Se a sub-rede tiver um bloco CIDR IPv6, você também deverá adicionar uma rota para
::/0
ao mesmo gateway da Internet. -
Escolha Salvar alterações.
Siga estas etapas para criar um gateway NAT, associá-lo a uma sub-rede pública e adicioná-lo à tabela de rotas da sua sub-rede privada.
Para criar um gateway NAT e associá-lo a uma sub-rede pública
-
No painel de navegação, escolha Gateways NAT.
-
Escolha Criar um gateway NAT.
-
(Opcional) Insira um nome para o gateway NAT.
-
Em Sub-rede, selecione uma sub-rede pública na sua VPC. (Uma sub-rede pública é uma sub-rede que tem uma rota direta para um gateway da Internet em sua tabela de rotas.)
nota
Os gateways NAT estão associados a uma sub-rede pública, mas a entrada da tabela de rotas está na sub-rede privada.
-
Em ID de alocação de IP elástico, selecione um endereço IP elástico ou escolha Alocar IP elástico.
-
Escolha Criar um gateway NAT.
Para adicionar uma rota ao gateway NAT na tabela de rotas da sub-rede privada
-
No painel de navegação, escolha Sub-redes.
-
Selecione uma sub-rede privada em sua VPC. (Uma sub-rede privada é uma sub-rede que não tem uma rota direta para um gateway da Internet em sua tabela de rotas.)
-
Escolha o link em Tabela de rotas.
-
Escolha o ID da tabela de rotas para abrir a respectiva página de detalhes da tabela de rotas.
-
Role para baixo e escolha a guia Rotas e Editar rotas
-
Escolha Adicionar rota e, em seguida, insira
0.0.0.0/0
na caixa Destino. -
Em Destino, selecione Gateway NAT e, em seguida, escolha o gateway NAT que você criou anteriormente.
-
Escolha Salvar alterações.
Siga estas etapas para criar um gateway da Internet somente de saída e adicioná-lo à tabela de rotas da sua sub-rede privada.
Como criar um gateway da Internet somente de saída para a VPC
No painel de navegação, escolha Gateways da Internet somente de saída.
Escolha Criar um Gateway da Internet somente de saída.
-
(Opcional) Insira um nome.
-
Selecione a VPC para a qual será criado um gateway de Internet somente de saída.
Escolha Criar um Gateway da Internet somente de saída.
-
Escolha o link em ID da VPC anexada.
-
Escolha o link em ID da VPC para abrir a página de detalhes da VPC.
-
Role para baixo até a seção Mapa de recursos e escolha uma sub-rede privada. (Uma sub-rede privada é uma sub-rede que não tem uma rota direta para um gateway da Internet em sua tabela de rotas.) Os detalhes sobre a sub-rede são exibidos em uma nova guia.
-
Escolha o link em Tabela de rotas.
-
Escolha o ID da tabela de rotas para abrir a respectiva página de detalhes da tabela de rotas.
-
Em Rotas, escolha Editar rotas.
-
Escolha Adicionar rota e, em seguida, insira
::/0
na caixa Destino. -
Em Destino, selecione Gateway da Internet somente de saída e, em seguida, escolha o gateway que você criou anteriormente.
-
Escolha Salvar alterações.
Configurar a função do Lambda
Como configurar uma VPC ao criar uma função
Abra a página Funções
do console do Lambda. -
Escolha a opção Criar função.
-
Em Basic information (Informações básicas), para Function name (Nome da função), insira um nome para a função.
-
Expanda Advanced settings (Configurações avançadas).
-
Selecione Habilitar VPC e, em seguida, escolha uma VPC.
-
(Opcional) Para permitir tráfego IPv6 de saída, selecione Permitir tráfego IPv6 para sub-redes de pilha dupla.
-
Em Sub-redes, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
nota
Se você selecionou Permitir tráfego IPv6 para sub-redes de pilha dupla, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.
-
Em Grupos de segurança, selecione um grupo de segurança que permita tráfego de saída.
-
Escolha a opção Criar função.
O Lambda criará automaticamente um perfil de execução com a política AWSLambdaVPCAccessExecutionRole gerenciada pela AWS. As permissões nessa política são necessárias apenas para criar interfaces de rede elástica para a configuração da VPC, mas não para invocar a função. Para aplicar permissões com privilégios mínimos, você pode remover a política AWSLambdaVPCAccessExecutionRole do seu perfil de execução após criar a função e a configuração da VPC. Para ter mais informações, consulte Permissões obrigatórias do IAM.
Como configurar uma VPC para uma função existente
Para adicionar uma configuração de VPC a uma função existente, o perfil de execução da função precisa ter permissão para criar e gerenciar interfaces de rede elástica. A política AWSLambdaVPCAccessExecutionRole gerenciada pela AWS inclui as permissões necessárias. Para aplicar permissões com privilégios mínimos, você pode remover a política AWSLambdaVPCAccessExecutionRole do seu perfil de execução após criar a configuração da VPC.
Abra a página Funções
do console do Lambda. -
Escolha uma função.
-
Escolha a guia Configuração e depois VPC.
-
Em VPC, selecione Edit (Editar).
-
Selecionar a VPC.
-
(Opcional) Para permitir tráfego IPv6 de saída, selecione Permitir tráfego IPv6 para sub-redes de pilha dupla.
-
Em Sub-redes, selecione todas as sub-redes privadas. As sub-redes privadas podem acessar a Internet por meio do gateway NAT. Conectar uma função a uma sub-rede pública não permite que ela tenha acesso à Internet.
nota
Se você selecionou Permitir tráfego IPv6 para sub-redes de pilha dupla, todas as sub-redes selecionadas deverão ter um bloco CIDR IPv4 e um bloco CIDR IPv6.
-
Em Grupos de segurança, selecione um grupo de segurança que permita tráfego de saída.
-
Escolha Salvar.
Testar a função
Use o seguinte exemplo de código para confirmar se a sua função conectada à VPC pode acessar a Internet pública. Se for bem-sucedido, o código retornará um código de status 200
. Se não for bem-sucedido, o tempo-limite da função esgotará.