Je souhaite accorder un accès Internet à ma fonction AWS Lambda dotée d’une connexion à un Amazon Virtual Private Cloud (Amazon VPC).
Brève description
Par défaut, les fonctions Lambda s'exécutent dans un VPC géré par Lambda qui dispose d'un accès Internet. Pour accéder aux ressources d'un VPC depuis votre compte AWS, ajoutez une configuration VPC à la fonction. Cette configuration limite la fonction aux ressources du VPC, sauf si celui-ci dispose d'un accès Internet.
Même lorsque vous associez une fonction Lambda à un sous-réseau public, la fonction ne peut pas se connecter directement à Internet. Une fonction d'un VPC dispose d’une adresse IP privée et nécessite une passerelle NAT ou une instance NAT pour que le VPC puisse accéder à Internet.
Remarque : Vous pouvez également utiliser les points de terminaison d'un VPC pour vous connecter aux services AWS pris en charge à partir d’une connexion Amazon VPC sans accès Internet.
Résolution
Créer un sous-réseau public et un sous-réseau privé dans Amazon VPC
Créez un sous-réseau privé pour votre fonction Lambda et un sous-réseau public pour votre passerelle NAT. Dans le champ Identification de nom, saisissez un nom pour chaque sous-réseau qui l'identifie comme public ou privé. Par exemple, utilisez Sous-réseau public, Lambda privé 1 et Lambda privé 2.
Remarque : Il est recommandé de créer plusieurs sous-réseaux privés dans différentes zones de disponibilité. Cette action crée une redondance et permet à Lambda de maintenir une disponibilité élevée pour votre fonction.
Utiliser une passerelle Internet pour ajouter un accès Internet au sous-réseau
Créez une passerelle Internet, puis attachez-la à votre VPC.
Créer une passerelle NAT
Créez une passerelle NAT. Pour Sous-réseau, choisissez le sous-réseau que vous souhaitez rendre public. Par exemple, sélectionnez Sous-réseau public.
(Facultatif) Testez la configuration de votre passerelle NAT.
Créer deux tables de routage personnalisées
Remarque : Lorsqu'une fonction Lambda d'un VPC envoie des requêtes, elle sélectionne de manière aléatoire un sous-réseau associé. Si la fonction utilise un sous-réseau mal configuré, un message d'erreur s'affiche. Pour éviter ce problème, assurez-vous d'utiliser la même configuration pour tous les sous-réseaux utilisés par votre fonction.
Pour configurer vos tables de routage personnalisées, procédez comme suit pour vos sous-réseaux publics et privés :
- Créez une table de routage personnalisée. Dans le champ Identification de nom, saisissez un nom pour chaque table de routage afin de vous aider à identifier le sous-réseau auquel elle est associée. Par exemple, utilisez Sous-réseau public et Lambda privé.
- Associez la table de routage du sous-réseau au sous-réseau privé ou public.
- Ajoutez une nouvelle route à la table de routage et incluez les configurations suivantes :
Dans le champ Destination, saisissez 0.0.0.0/0.
Pour Cible, sélectionnez Passerelle Internet ou Passerelle NAT. Pour le sous-réseau public, sélectionnez l'ID de la passerelle Internet. Pour le sous-réseau privé, sélectionnez l'ID de la passerelle NAT.
Important : Si vous utilisez une instance NAT au lieu d'une passerelle NAT, sélectionnez Interface réseau au lieu de Passerelle NAT.
- Sélectionnez Enregistrer les routes.
Remarque : Vérifiez que les routes qui mènent à votre passerelle NAT sont à l’état Actif. Si la passerelle NAT est supprimée et que vous n'avez pas mis à jour les routes, celles-ci indiquent l'état Blackhole. Pour en savoir plus, consultez la section Supprimer une passerelle NAT.
Vérifier la configuration de votre ACL réseau
La liste de contrôle d'accès au réseau (ACL réseau) par défaut de votre VPC autorise tout le trafic entrant et sortant. Si vous modifiez les règles ACL réseau, vérifiez que vous autorisez toujours les requêtes sortantes provenant de votre fonction Lambda. Assurez-vous également que votre ACL réseau autorise le trafic entrant suivant :
- Pour les sous-réseaux privés qui utilisent une passerelle NAT, autorisez le trafic entrant sur les ports éphémères 1024-65535.
- Pour les sous-réseaux privés qui utilisent une instance NAT, autorisez le trafic entrant sur les ports éphémères qu'utilise le système d'exploitation de votre instance NAT.
Pour en savoir plus, consultez la section Garantir la confidentialité du trafic inter réseau dans Amazon VPC.
Créer un rôle d’exécution Lambda
Créez un rôle d'exécution Lambda pour votre VPC. Puis, mettez à jour la fonction Lambda pour utiliser le nouveau rôle d'exécution Lambda.
Configurer votre fonction Lambda pour la connecter à votre VPC
Attachez votre fonction à votre VPC et configurez les paramètres suivants :
Pour les fonctions Lambda dotées d’une connexion Amazon VPC, vous pouvez utiliser une passerelle Internet de sortie uniquement pour accéder à Internet. Pour plus d'informations, consultez la section IPv6 support.
Informations connexes
Résolution des problèmes de mise en réseau dans Lambda
Comment puis-je résoudre les problèmes de délai d'expiration d’une fonction Lambda dans un réseau Amazon VPC ?
Comment puis-je résoudre une erreur ETIMEDOUT dans ma fonction Lambda ?
Permettre aux fonctions Lambda d'accéder aux ressources d'un Amazon VPC
Comment puis-je corriger les défaillances de la fonction Lambda ?