Как безопасно запустить экземпляр EC2 в пользовательской VPC

Узнайте, как перейти от стандартных сетевых настроек AWS к безопасной пользовательской конфигурации виртуального частного облака (VPC). Это руководство подробно описывает создание VPC, определение публичных/приватных подсетей, настройку таблиц маршрутизации для контролируемого доступа в Интернет (через IGW или NAT) и применение строгих правил групп безопасности для безопасного запуска и управления экземплярами EC2.

29 просмотров

Безопасный запуск экземпляра EC2 в пользовательской VPC

Запуск экземпляра Amazon EC2 непосредственно в общедоступной сети AWS выполняется быстро, но для любой производственной, промежуточной или конфиденциальной среды он создает ненужный риск. Обеспечение безопасности ваших вычислительных ресурсов требует их изоляции в Virtual Private Cloud (VPC) — вашей собственной логически изолированной части AWS Cloud. Это руководство проведет вас через основные шаги по настройке пользовательской VPC, определению необходимых сетевых компонентов, таких как подсети и таблицы маршрутизации, а также безопасному запуску экземпляра EC2, защищенного строгими правилами групп безопасности.

Освоение настройки VPC является основой для создания надежной, масштабируемой и безопасной инфраструктуры AWS. Вручную определяя границы вашей сети, вы получаете детальный контроль над потоком трафика, IP-адресацией и внешними подключениями, что значительно повышает защиту вашей прикладной среды от несанкционированного доступа.

Понимание основных компонентов безопасной VPC

Virtual Private Cloud (VPC) — это основа, на которой строится вся безопасная сетевая инфраструктура AWS. Перед запуском экземпляра необходимо убедиться, что следующие компоненты настроены правильно:

  1. VPC: Основной контейнер для вашей сети, определяющий диапазон частных IP-адресов (блок CIDR).
  2. Подсети: Разделения внутри VPC, классифицируемые как Общедоступные (с прямым доступом в Интернет) или Частные (изолированные).
  3. Internet Gateway (IGW): Требуется для ресурсов в общедоступных подсетях для связи с Интернетом.
  4. Таблицы маршрутизации: Правила, определяющие, куда направляется сетевой трафик из подсетей.
  5. Группы безопасности (SG): Stateful-брандмауэры, управляющие входящим и исходящим трафиком на уровне экземпляра.

Шаг 1: Создание пользовательской VPC и подсетей

Начнем с создания сетевой оболочки и ее сегментации на функциональные области. Для стандартной настройки мы рекомендуем как минимум одну общедоступную и одну частную подсеть.

1.1 Создание VPC

При создании вашей VPC выберите частный блок CIDR, который не пересекается с какими-либо локальными сетями, к которым вы можете подключиться позже (например, с использованием AWS VPN или Direct Connect).

Пример CIDR VPC: 10.0.0.0/16

1.2 Создание подсетей

Подсети должны находиться в определенной Зоне доступности (AZ) для обеспечения высокой доступности. Для этого примера мы создадим одну общедоступную и одну частную подсеть в us-east-1a.

  • Общедоступная подсеть: 10.0.1.0/24 (Используется для bastion-хостов или балансировщиков нагрузки)
  • Частная подсеть: 10.0.2.0/24 (Используется для серверов приложений и баз данных)

Шаг 2: Настройка интернет-соединения и маршрутизации

Ресурсы в частных подсетях не должны иметь прямого доступа в Интернет. Ресурсы в общедоступной подсети должны быть правильно маршрутизированы для доступа в Интернет через Internet Gateway (IGW).

2.1 Подключение Internet Gateway (IGW)

  1. Создайте ресурс IGW в консоли AWS.
  2. Прикрепите этот IGW к вашей недавно созданной VPC.

2.2 Настройка таблиц маршрутизации

Таблицы маршрутизации определяют пути трафика. Вам потребуется как минимум две: одна для общедоступной подсети и одна для частной подсети.

Общедоступная таблица маршрутизации

Эта таблица направляет весь нелокальный трафик (0.0.0.0/0) к присоединенному Internet Gateway.

Назначение Цель
10.0.0.0/16 (CIDR VPC) local
0.0.0.0/0 igw-xxxxxxxx (Ваш ID IGW)

Свяжите эту таблицу маршрутизации с вашей Общедоступной подсетью (10.0.1.0/24).

Частная таблица маршрутизации

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

Назначение Цель
10.0.0.0/16 (CIDR VPC) local

Свяжите эту таблицу маршрутизации с вашей Частной подсетью (10.0.2.0/24).

Рекомендация: Если ресурсам в частной подсети требуется загружать исправления или обновления, следует использовать NAT Gateway, размещенный в общедоступной подсети. В этом случае частная таблица маршрутизации будет направлять трафик 0.0.0.0/0 на NAT Gateway, а не на IGW.

Шаг 3: Определение строгих правил групп безопасности

Группы безопасности (SG) действуют как виртуальные брандмауэры для ваших экземпляров EC2. Они работают на уровне экземпляра и являются stateful (возвратный трафик автоматически разрешен).

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

Пример группы безопасности для веб-сервера (частная подсеть)

Если этот экземпляр EC2 является сервером приложений, доступным только с балансировщика нагрузки приложений (ALB), расположенного в общедоступной подсети, правила должны быть очень строгими:

Входящие правила

Тип Протокол Диапазон портов Источник
HTTP TCP 80 ID SG ALB
HTTPS TCP 443 ID SG ALB
SSH TCP 22 Диапазон IP вашей корпоративной сети или ID SG Bastion Host

Исходящие правила

По умолчанию исходящий трафик обычно разрешен ко всем назначениям (0.0.0.0/0). При необходимости вы можете ограничить его далее (например, разрешив только подключения к SG экземпляра RDS).

Совет по безопасности: Никогда не назначайте 0.0.0.0/0 для порта 22 (SSH) или порта 3389 (RDP) в общедоступной группе безопасности. Всегда ограничивайте доступ к управлению известными внутренними диапазонами IP-адресов.

Шаг 4: Безопасный запуск экземпляра EC2

При запуске экземпляра убедитесь, что вы сопоставили его с правильными сетевыми компонентами, созданными выше.

  1. Выберите AMI и тип экземпляра: Выберите желаемый образ Amazon Machine Image (AMI) и аппаратные характеристики.
  2. Настройки сети: На шаге «Настроить сведения об экземпляре»:
    • Сеть: Выберите вашу Пользовательскую VPC.
    • Подсеть: Выберите Частную подсеть (10.0.2.0/24), если вы запускаете сервер приложений, который не должен быть напрямую доступен из Интернета.
    • Автоматическое назначение общедоступного IP: Убедитесь, что этот параметр Отключен, если вы запускаете экземпляр в частной подсети. (Если вы выберете общедоступную подсеть, вы можете включить этот параметр для экземпляра, которому требуется прямой общедоступный доступ, например, для bastion-хоста).
    • Группы безопасности: Выберите Группу безопасности, которую вы настроили на Шаге 3.
  3. Хранилище и пара ключей: Настройте хранилище и привяжите пару ключей для безопасного SSH-доступа.

Доступ к экземплярам в частной подсети

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

  1. Bastion Host (Jump Box): Запустите небольшой, защищенный экземпляр EC2 в Общедоступной подсети. Сначала подключитесь по SSH к bastion-хосту, а затем с bastion-хоста подключитесь по SSH к частному экземпляру, используя его частный IP-адрес.
  2. AWS Systems Manager (SSM) Session Manager: Это предпочтительный современный метод. Если у экземпляра установлен агент SSM и привязана соответствующая IAM-роль, разрешающая подключение к SSM, вы можете инициировать безопасную сессию оболочки непосредственно из консоли AWS без необходимости входящих правил SSH или Bastion Host.

Итоги и дальнейшие шаги

Защита экземпляра EC2 в пользовательской VPC включает в себя многоуровневую сетевую безопасность от макроуровня (VPC, подсети, таблицы маршрутизации) до микроуровня (группы безопасности). Тщательно контролируя IP-адресацию и поток трафика:

  • Вы гарантируете, что серверы приложений размещаются в изолированных частных подсетях.
  • Вы используете IGW или NAT Gateway только при необходимости.
  • Вы применяете принцип наименьших привилегий с помощью входящих правил группы безопасности.

После запуска экземпляра не забывайте отслеживать его активность с помощью AWS CloudTrail и VPC Flow Logs для обеспечения непрерывной видимости трафика вашей частной сети.