Comment accorder un accès Internet à une fonction Lambda connectée à un Amazon VPC ?

Lecture de 7 minute(s)
0

Je souhaite accorder un accès Internet à ma fonction AWS Lambda connectée à un Amazon Virtual Private Cloud (Amazon VPC).

Brève description

Une traduction d'adresses réseau (NAT) est nécessaire pour pouvoir accéder à Internet à partir d'un sous-réseau privé. Pour accorder un accès Internet à une fonction Lambda connectée à un Amazon VPC, vous devez acheminer son trafic sortant vers une passerelle NAT ou une instance NAT dans un sous-réseau public.

Pour en savoir plus, consultez la page Se connecter à Internet à l'aide d'une passerelle Internet. Pour voir un exemple de configuration, consultez la page VPC avec serveurs dans des sous-réseaux privés et NAT.

Remarque : vous pouvez également utiliser les points de terminaison d'un VPC pour vous connecter aux services AWS pris en charge depuis un Amazon VPC sans accès à Internet.

Résolution

(Facultatif) Création d'un nouvel Amazon VPC à l'aide de l'assistant VPC de la console de gestion AWS

Remarque : si vous utilisez l'assistant VPC pour créer un nouvel Amazon VPC, passez directement à la section : Création d'un rôle d'exécution Lambda pour votre VPC.

1.    Ouvrez l'assistant VPC dans la console de gestion AWS.

2.    Choisissez un VPC avec des sous-réseaux publics et privés. Les nouveaux sous-réseau public et sous-réseau privé, ainsi que leur passerelle Internet et leur passerelle NAT apparaissent dans la console Amazon VPC.

Création d'un sous-réseau public et d'un ou de plusieurs sous-réseaux privés dans votre Amazon VPC

Pour obtenir des instructions, consultez la page Création d'un sous-réseau afin de créer chacun de vos sous-réseaux.

Lorsque vous créez les sous-réseaux, saisissez un nom pour chaque sous-réseau qui l'identifie comme public ou privé dans le champ Balise de nom. Exemple : 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é. En effet, plusieurs zones de disponibilité créent une redondance et permettent au service Lambda d'assurer une haute disponibilité pour votre fonction.

Création et association d'une passerelle Internet à votre Amazon VPC

Pour obtenir des instructions, consultez la page Créer et attacher une passerelle Internet.

Créer une passerelle NAT

Pour obtenir des instructions, consultez la page Créer une passerelle NAT. Lorsque vous créez la passerelle NAT, dans le champ Sous-réseau, choisissez le sous-réseau que vous souhaitez rendre public (suivant l'exemple précédent : Sous-réseau public).

Remarque : pour tester la configuration de votre passerelle NAT, consultez la page Tester la passerelle NAT publique.

Création de deux tables de routage personnalisées, l'une pour votre sous-réseau public, l'autre pour votre sous-réseau privé

Remarque : lorsqu'une fonction Lambda connectée à un Amazon 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'affichera. Pour éviter les erreurs aléatoires, tâchez d'utiliser la même configuration pour tous les sous-réseaux utilisés par votre fonction.

Pour obtenir des instructions, consultez la page Créer une table de routage personnalisée. Lorsque vous créez des tables de routage, dans le champ Balise de nom, saisissez un nom pour chaque table de routage qui vous permet d'identifier le sous-réseau auquel elle est associée. Exemple : Sous-réseau public et Lambda privé.

Suivez ces étapes pour chaque table de routage :

Pour la table de routage du sous-réseau public

1.    Associez la table de routage du sous-réseau public (Sous-réseau public) au sous-réseau que vous souhaitez rendre public.

2.    Ajoutez une nouvelle route à la table de routage qui inclut les configurations suivantes :

Dans le champ Destination, saisissez 0.0.0.0/0.
Pour le champ Cible, choisissez Passerelle Internet, puis choisissez l'ID (igw-123example) de la passerelle Internet que vous avez créée. Choisissez Enregistrer les routes.

Pour la table de routage du sous-réseau privé

1.    Associez la table de routage du sous-réseau privé (Lambda privé) aux sous-réseaux privés.

2.    Ajoutez une nouvelle route à la table de routage qui inclut les configurations suivantes :

Dans le champ Destination, saisissez 0.0.0.0/0.
Pour le champ Cible, choisissez Passerelle NAT. Choisissez ensuite l'ID de la passerelle NAT (nat-123example) que vous avez créée.

Important : si vous utilisez une instance NAT, choisissez plutôt Interface réseau. Choisissez Enregistrer les routes.

Remarque : vérifiez que les routes qui mènent à votre passerelle NAT sont actives. Si la passerelle NAT est supprimée et que vous n'avez pas mis à jour les routes, celles-ci indiqueront l'état Blackhole. Pour en savoir plus, consultez la page Supprimer une passerelle NAT.

Vérifiez que votre ACL réseau autorise les demandes sortantes provenant de votre fonction Lambda et le trafic entrant, le cas échéant

La liste de contrôle d'accès au réseau (ACL réseau) par défaut de votre Amazon VPC autorise tout le trafic entrant et sortant. Si vous modifiez les règles ACL réseau, vérifiez que vous autorisez toujours les demandes sortantes provenant de votre fonction Lambda.

Vous devez également vous assurer que votre ACL réseau autorise le trafic entrant suivant selon la configuration de votre VPC :

  • 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.

Remarque : pour en savoir plus, consultez la page Confidentialité du trafic inter réseau dans Amazon VPC.

Création d'un rôle d'exécution Lambda pour votre VPC

1.    Ouvrez la page Rôles dans la console Gestion des identités et des accès AWS (AWS IAM).

2.    Choisissez Créer un rôle. La page Créer un rôle s'ouvre.

3.    Sur la page Créer un rôle, procédez comme suit :

Pour le champ Sélectionner le type d'entité de confiance, choisissez Service AWS.
Pour Cas d'utilisation courants, choisissez Lambda.
Choisissez Suivant : autorisations.
Sous Attacher des politiques d'autorisation, recherchez AWSLambdaVPCAccessExecutionRole.
Sélectionnez la politique portant ce nom. Choisissez ensuite Suivant : balises.
(Facultatif) Ajoutez des ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)balises[ en fonction de votre cas d'utilisation.
Choisissez Suivant : vérifier.
Dans le champ Nom du rôle, saisissez le nom de votre rôle d'exécution Lambda. Par exemple : lambda_vpc_basic_execution.
(Facultatif) Dans le champ Description du rôle, saisissez une description du rôle. Choisissez Créer un rôle.

Association du rôle à la fonction Lambda

1.    Ouvrez la page Fonctions dans la console Lambda.

2.    Choisissez le nom de la fonction que vous souhaitez connecter à votre Amazon VPC.

3.    Sélectionnez l'onglet Configuration, puis choisissez Autorisations.

4.    Dans Rôle d'exécution, choisissez Modifier.

5.    Choisissez la liste déroulante Rôles existants, puis choisissez votre rôle. Par exemple : lambda_vpc_basic_execution.

6.    Choisissez Enregistrer.

Pour en savoir plus, consultez les pages Rôle d'exécution Lambda et Création d'un rôle d'exécution dans la console IAM.

Configuration de votre fonction Lambda pour la connecter à votre Amazon VPC

1.    Ouvrez la page Fonctions dans la console Lambda.

2.    Choisissez le nom de la fonction que vous souhaitez connecter à votre Amazon VPC.

3.    Ouvrez l'onglet Configuration.

4.    Choisissez VPC dans la barre de navigation de gauche, puis choisissez Modifier. Renseignez ensuite les champs suivants :

Dans le champ Cloud privé virtuel (VPC), choisissez votre VPC.
Dans le champ Sous-réseaux, sélectionnez les sous-réseaux privés que vous avez créés. Identifiez-les par leurs ID de sous-réseau (et leurs noms, si vous les avez nommés).
Dans le champ Groupes de sécurité, choisissez un groupe de sécurité.

Remarque : le groupe de sécurité par défaut autorise tout le trafic Internet sortant et suffit pour la plupart des cas d'utilisation. Pour en savoir plus, consultez la page Contrôler le trafic vers vos ressources AWS à l'aide de groupes de sécurité.

5.    Choisissez Enregistrer.

Informations connexes

Connexion des réseaux sortants aux ressources d'un VPC

Résolution des problèmes de réseaux dans Lambda

Comment corriger les défaillances de la fonction Lambda ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an