AWS VPC - зачем вообще нужна частная подсеть?

8

В Amazon VPC мастер создания VPC позволяет создать единую «общедоступную подсеть» или же мастер может создать «общедоступную подсеть» и «частную подсеть». Первоначально вариант публичной и частной подсетей казался хорошим по соображениям безопасности, позволяя размещать веб-серверы в общедоступной подсети, а серверы баз данных переходить в частную подсеть.

Но с тех пор я узнал, что экземпляры EC2 в общедоступной подсети недоступны из Интернета, если вы не связываете Amazon ElasticIP с экземпляром EC2. Таким образом, кажется, что только с одной общедоступной конфигурацией подсети можно было бы просто не связывать ElasticIP с серверами баз данных и в конечном итоге обеспечить такой же уровень безопасности.

Кто-нибудь может объяснить преимущества конфигурации публичной + частной подсети? Преимущества этого конфига больше связаны с автоматическим масштабированием или на самом деле менее безопасно иметь одну общедоступную подсеть?

JKim
источник
Что бы это ни стоило, к экземплярам EC2 в общедоступной подсети можно обращаться из Интернета, даже без ElasticIP - они все равно получают общедоступный IP-адрес. Разница между этим общедоступным IP-адресом и ElasticIP заключается в том, что общедоступный IP-адрес может измениться, когда вы перезагружаете свой экземпляр, тогда как ElasticIP остается на нем столько времени, сколько вы хотите.
offby1

Ответы:

4

Это граница безопасности для частной подсети, которой вы можете управлять с помощью различных групп безопасности из общедоступной подсети. Если один из ваших экземпляров в публичной подсети был взломан, будет гораздо сложнее взломать экземпляры в частной подсети, если вы не слишком либеральны в своих политиках доступа.

generalnetworkerror
источник
1
Спасибо. VPC с общедоступной частной подсетью кажется правильным, если AWS бесплатно добавит экземпляр NAT. Я думаю о небольших развертываниях и пытался выяснить, стоит ли стоимость экземпляра NAT каждый месяц преимуществ конфигурации 2 подсетей.
JKim
2
@jkim Теперь это стало намного доступнее, когда они наконец-то поддерживают t1.microVPC.
Джеффри Хантин
2

Помимо последствий для безопасности, в игру вступает еще один аспект: если вы хотите разрешить экземплярам без эластичных IP-адресов доступ в Интернет, вам могут потребоваться 2 (или более) разных подсетей.

Перефразируя документацию AWS , в VPC есть три способа разрешить доступ к Интернету экземплярам:

  1. Эластичные IP-адреса - но вы получите только 5 по умолчанию, я думаю, и тогда вам придется платить за больше
  2. Маршрутизация трафика через виртуальный частный шлюз - для этого требуется наличие аппаратного VPN-подключения к корпоративной (или домашней) сети.
  3. Настройте экземпляр NAT и направьте весь исходящий трафик через NAT

Третий вариант интересен тем, что экземпляр NAT должен находиться в «общедоступной» подсети, где весь исходящий трафик направляется в шлюз Интернета, но все остальные экземпляры должны находиться в «частной» подсети, где весь исходящий трафик направляется к экземпляру NAT.

Короче говоря, если вы планируете использовать NAT, вам нужно как минимум 2 подсети.

Том Полтон
источник
Спасибо, Том. Я думаю, что также возможно иметь 1 общедоступную подсеть, но назначить ElasticIP только экземпляру NAT. Другие экземпляры в общедоступной подсети будут иметь исходящий доступ в Интернет через интернет-шлюз, а входящий доступ можно настроить через переадресацию портов на экземпляре NAT. У меня сложилось впечатление, что 2 подсети - это "правильный" путь, но я не вижу кристально чистой причины для этого.
JKim