Comment puis-je configurer une fonction Lambda pour qu’elle se connecte à une instance RDS ?
J’aimerais que ma fonction AWS Lambda se connecte à une instance Amazon Relational Database Service (Amazon RDS).
Brève description
Remarque : les informations et étapes décrites ci-dessous concernent les instances Amazon RDS. Cette résolution s’applique également à tout point de terminaison ou base de données situé dans un cloud privé virtuel (VPC).
Vous devez définir les configurations de mise en réseau afin d’autoriser la connexion d’une fonction Lambda à une instance RDS.
Il existe différents paramètres de configuration pour chacun des types de connexion suivants :
- Une fonction Lambda et une instance RDS au sein du même VPC
- Une fonction Lambda et une instance RDS sur différents VPC
Pour des raisons de sécurité, il est recommandé de conserver votre instance RDS dans un VPC. Utilisez un service NoSQL tel qu’Amazon DynamoDB pour les bases de données publiques.
Une fonction Lambda située en dehors d’un VPC ne peut pas accéder à une instance RDS située dans un VPC.
Pour en savoir plus sur la configuration des paramètres réseau d’une fonction Lambda, consultez la page Configuration d’une fonction Lambda pour accéder aux ressources dans un VPC. En cas de configuration réseau incorrecte, la fonction Lambda échouera et affichera un message d’erreur de type Task timed out.
Pour connecter une fonction Lambda à un cluster de base de données Amazon Aurora, utilisez l’API de données pour Aurora sans serveur.
Résolution
Important : vous devez modifier tous les paramètres Plage de ports, Source et Destination fournis dans les exemples suivants conformément à vos propres configurations réseau. Le protocole TCP (Transmission Control Protocol) est le protocole requis pour chaque type de configuration réseau.
Une fonction Lambda et une instance RDS au sein du même VPC
Utilisez les configurations réseau suivantes pour connecter une fonction Lambda à une instance RDS au sein du même VPC.
Remarque : par défaut, tous les sous-réseaux d’un VPC contiennent une route locale. La destination est le routage inter-domaines sans classe (CIDR) du VPC et la cible est locale. Pour en savoir plus, consultez la page Concepts liés aux tables de routage.
1. Pour les groupes de sécurité, utilisez l’un des paramètres réseau suivants :
Lorsque les instances sont rattachées au même groupe de sécurité, ce dernier doit être la source de la règle entrante. Définissez le groupe de sécurité comme destination de la règle sortante.
Par exemple, si la fonction Lambda et l’instance RDS figurent toutes deux dans le groupe de sécurité sg-abcd1234, chaque instance est soumise aux règles entrantes et sortantes suivantes.
Exemple de règle entrante applicable aux instances rattachées au même groupe de sécurité
Type | Protocole | Plage de ports | Source |
TCP personnalisé | TCP | 3306 | sg-abcd1234 |
Exemple de règle sortante applicable aux instances rattachées au même groupe de sécurité
Type | Protocole | Plage de ports | Destination |
TCP personnalisé | TCP | 3306 | sg-abcd1234 |
-ou-
Lorsque les instances appartiennent à des groupes de sécurité différents, vérifiez que ceux-ci s’autorisent un accès mutuel.
Par exemple, si la fonction Lambda se trouve dans le groupe de sécurité sg-1234 et l’instance RDS dans sg-abcd, les règles suivantes seront appliquées à chaque groupe :
Exemple de règle sortante applicable à une fonction Lambda appartenant à un groupe de sécurité différent de celui de l’instance RDS à laquelle vous souhaitez la connecter
Type | Protocole | Plage de ports | Destination |
TCP personnalisé | TCP | 3306 | sg-abcd |
Exemple de règle entrante applicable à une instance RDS dans un groupe de sécurité différent de celui de la fonction Lambda à laquelle vous souhaitez la connecter
Type | Protocole | Plage de ports | Source |
TCP personnalisé | TCP | 3306 | sg-1234 |
Important : assurez-vous que les règles autorisent une connexion TCP sur le port de la base de données.
2. Vérifiez que les règles entrantes et sortantes autorisent la communication entre la fonction Lambda et l’instance RDS pour les listes de contrôle d’accès au réseau (NACL).
Remarque : par défaut, les NACL autorisent tout le trafic entrant et sortant. Il est toutefois possible de modifier ces paramètres par défaut.
Pour chaque sous-réseau associé à l’instance RDS et à la fonction Lambda, configurez les NACL de manière à autoriser la connexion TCP sortante aux CIDR des sous-réseaux de l’autre instance.
Remarque : l’exemple suivant inclut quatre exemples de sous-réseaux étiquetés par leurs CIDR :
Sous-réseaux de la fonction Lambda : 172.31.1.0/24 et 172.31.0.0/28.
Sous-réseaux de l’instance RDS : 172.31.10.0/24 et 172.31.64.0/20.
Exemple de règles sortantes applicables aux NACL des sous-réseaux d’une fonction Lambda
Type | Protocole | Plage de ports | Destination | Autoriser/Refuser |
TCP personnalisé | TCP | 3306 | 172.31.10.0/24 | Autoriser |
TCP personnalisé | TCP | 3306 | 172.31.64.0/20 | Autoriser |
Important : appliquez les mêmes règles sortantes aux NACL des sous-réseaux de l’instance RDS. Toutefois, la destination définie doit correspondre aux CIDR des sous-réseaux de la fonction Lambda.
Vérifiez que les NACL de chaque sous-réseau disposent bien d’une règle entrante sur les ports éphémères sur la plage CIDR des sous-réseaux de l’autre instance.
Exemple de règles entrantes applicables aux NACL des sous-réseaux d’une fonction Lambda
Type | Protocole | Plage de ports | Source | Autoriser/Refuser |
TCP personnalisé | TCP | 1024-65535 | 172.31.10.0/24 | Autoriser |
TCP personnalisé | TCP | 1024-65535 | 172.31.64.0/20 | Autoriser |
Important : appliquez les mêmes règles entrantes aux NACL des sous-réseaux de l’instance RDS. Toutefois, la source doit correspondre aux CIDR des sous-réseaux de la fonction Lambda.
Une fonction Lambda et une instance RDS sur différents VPC
Avant toute chose, utilisez l’appairage de VPC pour connecter les deux VPC. Appliquez ensuite les configurations réseau suivantes pour connecter la fonction Lambda d’un VPC à l’instance RDS de l’autre :
Important : vous devez activer le système de nom de domaine (DNS) pour la connexion d’appairage de VPC.
1. Pour la table de routage, confirmez le succès de la connexion d’appairage de VPC :
Pour la Destination, recherchez le CIDR du VPC appairé.
Pour la Cible, recherchez la connexion d’appairage.
Remarque : dans la figure ci-après, deux VPC sont présentés à titre d’exemple :
CIDR du VPC source (fonction Lambda) : 10.0.0.0/16
CIDR du VPC appairé (instance RDS) : 172.31.0.0/16
Connexion d’appairage : pcx-01234abcd
Exemple de table de routage pour un VPC source associé à la fonction Lambda
Destination | Cible |
172.31.0.0/16 | pcx-01234abcd |
10.0.0.0/16 | locale |
Exemple de table de routage pour un VPC appairé avec une instance RDS
Destination | Cible |
10.0.0.0/16 | pcx-01234abcd |
172.31.0.0/16 | locale |
Pour en savoir plus, consultez la page Mise à jour de vos tables de routage pour une connexion d’appairage de VPC.
2. Pour les groupes de sécurité, utilisez les paramètres réseau suivants :
Pour le groupe de sécurité de la fonction Lambda, assurez-vous que le trafic est autorisé à entrer et sortir du CIDR du VPC de l’instance RDS.
Remarque : l’exemple suivant inclut deux exemples de sous-réseaux étiquetés par leur CIDR :
Instance RDS : 172.31.0.0/16
Fonction Lambda : 10.0.0.0/16
Exemple de règle sortante applicable à une fonction Lambda située dans un VPC différent de celui de l’instance RDS
Type | Protocole | Plage de ports | Destination |
TCP personnalisé | TCP | 3306 | 172.31.0.0/16 |
Pour le groupe de sécurité de l’instance RDS, autorisez le trafic à entrer et à sortir du CIDR du groupe de sécurité de la fonction Lambda.
Exemple de règle entrante applicable à une instance RDS située dans un VPC différent de celui de la fonction Lambda
Type | Protocole | Plage de ports | Source |
TCP personnalisé | TCP | 3306 | 10.0.0.0/16 |
3. Pour les NACL, suivez les procédures détaillées à l’étape 3 de la section Une fonction Lambda et une instance RDS au sein du même VPC. L’origine du sous-réseau CIDR de la fonction Lambda se trouve dans un VPC différent.
Remarque : comme alternative à l’appairage de VPC, vous pouvez utiliser AWS PrivateLink pour accéder à Amazon RDS via les VPC. Cette solution fonctionne pour les VPC et les comptes AWS situés dans la même région AWS.
Contenus pertinents
- demandé il y a 3 moislg...
- demandé il y a un anlg...
- demandé il y a 4 moislg...
- demandé il y a 5 jourslg...
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 5 mois
- AWS OFFICIELA mis à jour il y a 3 ans