Как ограничить доступ в Интернет в VPC с nat-шлюзом?

#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, которым требуется доступ в Интернет, должны быть подключены к частной подсети. Любой, у которого не должно быть доступа в Интернет, должен быть подключен к общедоступной подсети.