web-dev-qa-db-fra.com

Règle entrante du groupe de sécurité AWS. permet la fonction lambda

J'exécute un service sur mon instance EC2 et je souhaite configurer une règle entrante permettant uniquement à ma fonction lambda d'y accéder. Le groupe de sécurité me permet de restreindre l'accès à une adresse IP spécifique, mais je ne pense pas que les fonctions lambda aient une adresse IP spécifique attribuée. Y a-t-il un moyen de faire ce que je veux?

15
Chris

Si vous activez l'accès VPC pour votre fonction Lambda, comme indiqué dans cet article de blog , vous allez créer un groupe de sécurité que vos fonctions Lambda utiliseront dans votre VPC. À ce stade, il vous suffit d'entrer dans le groupe de sécurité utilisé par votre instance EC2 et d'accorder l'accès au groupe de sécurité utilisé par la fonction Lambda. C'est la méthode que je recommande.

Si vous n'utilisez pas l'accès VPC, votre instance EC2 doit être accessible au public et vous utiliserez essentiellement Internet pour accéder à l'instance EC2 à partir de la fonction Lambda. Si tel est le cas, il n’existe aucun moyen efficace de limiter cela dans le groupe de sécurité. Vous pourriez (avec difficulté) l'ouvrir uniquement aux demandes qui proviennent de dans AWS , mais cela laisse tout de même le faire pour tous les autres utilisateurs d'AWS. Si vous devez utiliser Internet pour accéder à votre instance EC2 à partir de Lambda, il est préférable d’envoyer une sorte de jeton de sécurité à chaque demande envoyée par Lambda et d’ignorer toutes les demandes du serveur EC2 ne contenant pas ce jeton de sécurité.

24
Mark B

Une adresse IP temporaire sera attribuée à votre Lambda lorsqu’il sera exécuté. Si vous configurez le rôle IAM qui lui est associé afin qu’il puisse autoriser/révoquer l’entrée du groupe de sécurité, vous pouvez le laisser "entrer" dans votre groupe sec. Consultez this article pour un exemple d’ajout d’un bloc IP ou CIDR à votre liste entrante. Je le nettoierais tout de suite quand la fonction serait faite.

1
Bence Bodrogi

Une Lambda sans association de VPC sera sur Internet et affectée à une adresse IP publique arbitraire (à partir des adresses IP enregistrées Amazon) qui ne sera pas une adresse fixe. Il est donc presque impossible de placer cette adresse dans la liste blanche dans le SG de votre EC2, car la prochaine fois que Lambda augmentera, l'adresse IP pourrait changer et n'est pas prévisible. 

Cependant, il existe un moyen de limiter partiellement l'accès réseau uniquement aux ressources situées dans le VPC, y compris Lambda (les composants étant affectés aux adresses IP internes). Supposons que vous souhaitiez que le serveur EC2 soit accessible uniquement à partir du réseau vpc interne. Par conséquent, vous le placez dans votre sous-réseau interne sans adresse IP publique. Vous pouvez maintenant configurer SG sur votre EC2 pour n'accepter que les adresses IP de la plage CIDR de sous-réseau interne de votre VPC. En associant Lambda à ce VPC et en le plaçant dans le sous-réseau privé, Lambda obtiendra une adresse IP arbitraire de la plage CIDR interne de votre VPC, qui se situe évidemment dans la plage SG déjà configurée pour votre EC2 (Si vous allez avoir beaucoup de Lambda en parallèle assurez-vous simplement que vous avez suffisamment d’adresses IP dans votre plage CIDR définie).

Si vous souhaitez que vos composants communiquent en interne tout en pouvant accéder à Internet, vous pouvez également ajouter une passerelle NAT routable vers IGW, puis ajouter une règle de routage aux sous-réseaux internes pour pointer vers votre NAT. Passerelle. Par conséquent, tous vos composants du sous-réseau interne se verront attribuer une table de routage pointant vers NAT, puis sur Internet.

1
Zoobin