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

Lecture de 7 minute(s)
0

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

Brève description

L'accès à Internet à partir d'un sous-réseau privé nécessite la traduction d'adresses réseau (NAT). Pour donner accès à Internet à une fonction Lambda connectée à un Amazon VPC, acheminez son trafic sortant vers une passerelle NAT ou une instance NAT dans un sous-réseau public.

Pour plus d'informations, veuillez consulter la rubrique Connect to the internet using an internet gateway (Se connecter à Internet à l'aide d'une passerelle Internet). Pour obtenir un exemple de configuration, veuillez consulter la rubrique VPC avec des sous-réseaux publics et privés (NAT).

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

Solution

(Facultatif) Créer un Amazon VPC à l'aide de l'assistant VPC dans la console de gestion AWS

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

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

2.    Choisissez VPC with Public and Private Subnets (VPC avec des sous-réseaux public et privé). Les nouveaux sous-réseau public et sous-réseau privé, y compris la passerelle Internet et la passerelle NAT associées, apparaissent dans la console du VPC Amazon.

Créer un sous-réseau public et un ou plusieurs sous-réseaux privés dans votre VPC Amazon

Pour connaître les instructions, veuillez consulter la rubrique Créer un sous-réseau dans votre VPC pour créer chacun de vos sous-réseaux.

Lorsque vous créez les sous-réseaux, pour Name tag (Nom de l'identification), saisissez un nom pour chaque sous-réseau, qui l'identifie comme sous-réseau public ou privé. Par exemple :Sous-réseau public, Lambda privée 1 et Lambda privée 2.

Remarque : il est recommandé de créer plusieurs sous-réseaux privés dans différentes zones de disponibilité. Cette pratique crée de la redondance et permet au service Lambda de maintenir la haute disponibilité pour votre fonction.

Créer une passerelle Internet et l'attacher à votre VPC

Pour connaître les instructions, consultez la section Création et attachement d'une passerelle Internet.

Créer une passerelle NAT

Pour connaître les instructions, consultez la section Création d'une passerelle NAT. Lorsque vous créez la passerelle NAT, pour Subnet (Sous-réseau), choisissez le sous-réseau que vous souhaitez rendre public. (Dans l'exemple précédent : Public subnet [Sous-réseau public].)

Remarque : pour tester la configuration de votre passerelle NAT, veuillez consulter la rubrique Tester la passerelle NAT publique.

Créer deux tables de routage personnalisées : une pour votre sous-réseau public et une pour votre sous-réseau privé

Remarque : lorsqu'une fonction Lambda connectée à Amazon VPC effectue 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é, une erreur est levée. Pour éviter les erreurs aléatoires, veillez à utiliser la même configuration pour tous les sous-réseaux utilisés par votre fonction.

Pour connaître les instructions, reportez-vous à la rubrique Créer une table de routage personnalisée. Lorsque vous créez les tables de routage, pour Name tag (Nom de l'identification), saisissez un nom pour chaque table de routage, qui vous aide à identifier le sous-réseau auquel elle est associée. Par exemple : Public subnet (Sous-réseau public) et Private Lambda (Lambda privée).

Pour chaque table de routage, veillez à effectuer les opérations suivantes :

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

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

2.    Ajoutez un nouvel acheminement à la table de routage qui inclut les configurations suivantes :

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

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

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

2.    Ajoutez un nouvel acheminement à la table de routage qui inclut les configurations suivantes :

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

Important : si vous utilisez une instance NAT, choisissez Network Interface (Interface réseau). Choisissez Save routes (Enregistrer les acheminements).

Remarque : assurez-vous que les acheminements vers votre passerelle NAT sont actifs. Si la passerelle NAT est supprimée et que vous n'avez pas mis à jour les acheminements, elles sont dans un état de blackhole (trou noir). Pour plus d'informations, veuillez consulter la rubrique Supprimer une passerelle NAT.

Vérifier que l'ACL réseau autorise les requêtes sortantes de votre fonction Lambda et le trafic entrant si nécessaire

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 de l'ACL réseau, assurez-vous que vous autorisez toujours les requêtes sortantes de votre fonction Lambda.

Assurez-vous également que votre ACL réseau autorise le trafic entrant suivant en fonction de 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 des sous-réseaux privés utilisant une instance NAT, autorisez le trafic entrant sur les ports éphémères utilisés par le système d'exploitation de votre instance NAT.

Remarque : pour plus d'informations, veuillez consulter la rubrique Confidentialité du trafic interréseau dans Amazon VPC.

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

1.    Ouvrez la page Roles (Rôles) dans la console AWS Identity and Access Management (IAM).

2.    Choisissez Create role (Créer un rôle). La page Create role (Créer un rôle) s'ouvre.

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

Dans la section Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez AWS service (Service AWS).
Pour Common use cases (Cas d'utilisation courants), choisissez Lambda.
Choisissez Next: Permissions (Étape suivante : autorisations).
Sous Attach permissions policies (Attacher les politiques d'autorisations), recherchez AWSLambdaVPCAccessExecutionRole.
Sélectionnez la politique portant ce nom. Choisissez Next: Tags (Étape suivante : identifications).
(Facultatif) Ajoutez des identifications pour votre cas d'utilisation.
Choisissez Next: Review (Étape suivante : vérification).
Pour Role name (Nom du rôle), saisissez un nom pour le rôle d'exécution Lambda. Par exemple, exécution_base_vpc-lambda.
(Facultatif) Pour Role Description (Description du rôle), saisissez la description du rôle. Choisissez Create role (Créer un rôle).

Associez le rôle à la Fonction Lambda

1.    Ouvrez la page Functions (Fonctions) dans la console Lambda.

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

3.    Sélectionnez l'onglet Configuration, puis Permissions (Autorisations).

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

5.    Choisissez la liste déroulante Rôle existant, puis choisissez votre rôle. Par exemple, exécution_base_vpc-lambda.

6.    Choisissez Save (Enregistrer).

Pour plus d'informations, veuillez consulter les rubriques Rôle d'exécution Lambda et Création d'un rôle d'exécution dans la console IAM.

Configurez votre fonction Lambda pour qu'elle se connecte à votre Amazon VPC

1.    Ouvrez la page Functions (Fonctions) dans la console Lambda.

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

3.    Choisissez l'onglet Configuration.

4.    Choisissez VPC dans la barre de navigation de gauche, puis choisissez Edit (Modifier). Ensuite, saisissez les champs suivants :

Pour Virtual Private Cloud (VPC), sélectionnez votre VPC.
Pour le champ Subnets (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 (ainsi que les noms, si vous les avez nommés).
Pour le champ Security groups (Groupes de sécurité), sélectionnez un groupe de sécurité.

Remarque : le groupe de sécurité par défaut autorise tout le trafic Internet sortant et s'avère être suffisant pour la plupart des cas d'utilisation. Pour plus d'informations, veuillez consulter la rubrique Contrôler le trafic vers les ressources à l'aide de groupes de sécurité.

5.    Choisissez Save (Enregistrer).


Informations connexes

Configuration d'une fonction Lambda pour accéder à des ressources dans un VPC

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

Comment puis-je résoudre les problèmes d'échec de la fonction Lambda ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois
Aucun commentaire