#amazon-web-services #amazon-vpc
#amazon-web-services #amazon-vpc
Вопрос:
Я настроил VPC с двумя подсетями public
и private
. В VPC много лямбд, и некоторым из них требуется доступ в Интернет. Итак, я добавил шлюз NAT на VPC. Тем не менее, это позволяет каждому лямбде иметь доступ в Интернет. Как я могу контролировать, какие лямбды могут иметь доступ в Интернет в VPC с NAT-шлюзом?
Ответ №1:
Я предполагаю, что лямбдам нужен доступ к определенным ресурсам в подсети, в которой они развернуты.
Если это так, то я предлагаю вам создать группу безопасности с нужными настройками и назначить эту группу безопасности всем лямбдам, для которых вы хотите ограничить доступ.
Если это не так, вы можете просто удалить ассоциацию VPC на уровне lambda.
Комментарии:
1. Да, вы правы. Это мой вариант использования. Это означает, что я не могу использовать NAT-шлюз для контроля того, кто может иметь доступ в Интернет или нет?
2. Я думаю, вы вносите некоторую путаницу. Все, что делает NAT, — это позволяет инстансам в частной подсети взаимодействовать с Интернетом. Вы имеете дело с лямбдами, а не с экземплярами.
Ответ №2:
У шлюзов NAT нет групп безопасности (SGS) или политик доступа. Таким образом, вы не можете контролировать доступ к Интернету с помощью NAT. Но есть некоторые суррогатные меры, которые вы можете рассмотреть:
- Создайте частную подсеть без маршрута к NAT и разместите там свои лямбда-функции. Без маршрута к NAT ничто из этой подсети не сможет взаимодействовать с Интернетом.
- Создайте специальный SG с пользовательским исходящим правилом, например, разрешите только исходящий трафик для CIDR вашего VPC или для SG, с которыми им разрешено только взаимодействовать.
- Создайте выделенный частный VPC только для лямбда-функций и сопоставьте его с вашим основным VPC. Пиринг VPC не является транзитивным, что означает, что ваши функции не смогут использовать NAT с основного VPC.
Комментарии:
1. Если я использую первый вариант, то мне придется создать три подсети в VPC. Один частный без маршрута к NAT. Один частный с маршрутом к NAT и один общедоступный. Правильно ли это?
2. @Да, это верно. И вы разместите лямбда-функции в частной подсети без nat.
Ответ №3:
Простой ответ: любая функция AWS Lambda, подключенная к общедоступной подсети, не будет иметь доступа к Интернету.
Это связано с тем, что таблица маршрутов для общедоступной подсети не отправляет трафик через NAT-шлюз, а сама функция Lambda не может использовать интернет-шлюз для доступа в Интернет.
Комментарии:
1. Мне нужно, чтобы некоторые из моих лямбд имели доступ к Интернету. итак, у меня есть интернет-шлюз в VPC.
2. Да, это нормально. Все функции Lambda, которым требуется доступ в Интернет, должны быть подключены к частной подсети. Любой, у которого не должно быть доступа в Интернет, должен быть подключен к общедоступной подсети.