Предположим, вас попросили создать виртуальную машину на AWS для выполнения некоторых критических операций для вашего бизнеса; К нему необходимо получить доступ к Интернету, но сопровождающие могут получить доступ только к людям/услугам, которые хотели бы установить/обновить программное обеспечение). Как бы вы это сделали?
Это серия из 2 постов. В первом посте мы рассмотрим, что происходит, когда вы создадите экземпляр EC2 (VM) в AWS; Это было бы вступительным сообщением для другой статьи о архивировании безопасного решения в безопасной сети в облаке.
Почему это важно?
При создании решений в облаке очень важно иметь в виду безопасность. На самом деле, очень важно, чтобы он был высоким приоритетом, если не самым высоким.
Кроме того, я хотел бы подчеркнуть важность поддержания ресурсов в частных подсетях в AWS (или в любом другом облаке), так как это то, что я использовал, чтобы игнорировать, когда я постепенно внедрял решения в прошлом. Однако, поскольку система масштабирует, было бы гораздо сложнее настраивать и изменить эти конфигурации.
Как упоминалось ранее, в этом примере мы хотели бы построить сервер, который имеет исходящий доступ к Интернету, но отрицает входящий трафик, за исключением сопровождающих через SSH.
Создайте экземпляр EC2
Мы можем просто создать новый экземпляр EC2, используя CloudFormation. Шаблон будет выглядеть так:
AWSTemplateFormatVersion: "2010-09-09" Description: Secure EC2 instance that can access the internet Resources: AwesomeEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-0947d2ba12ee1ff75" InstanceType: "t2.micro" Tags: - Key: "Name" Value: "AwesomeEC2Instance" - Key: "Owner" Value: "Ali"
Теперь давайте создадим этот стек в CloudFormation. Я буду использовать командную строку для этого, но не стесняйтесь делать это вручную из консоли AWS.
aws cloudformation create-stack --stack-name private-network --template-body file://infra/template.yml
Откройте консоль AWS и перейдите к CloudFormation. Проверьте события:
Ниже приведен набор операций, выполненных за кулисами, когда мы создаем экземпляр EC2 таким образом (После этого списка мы рассмотрим каждый компонент, объясняющий его функциональность, что даст больше знакомства с терминами пользователя):
- Очевидно, что сама виртуальная машина была создана. Перейдите к EC2 и обратите внимание на создание экземпляра EC2.
- Выберите экземпляр и перейдите на вкладку «Сеть». Обратите внимание, как экземпляр был создан в VPC и подсети, без четкого его.
- Перейдите к вкладке «Безопасность». Обратите внимание, что группа безопасности по умолчанию прикреплена к созданному экземпляру.
- Эта группа безопасности имеет исходящие правила, показывающие
0.0.0.0/0
Как пункт назначения -> это означает, что трафик из этого экземпляра может перейти в общедоступный Интернет. - Эта группа безопасности имеет входящие правила, показывающие все из SRC, равные той же безопасности -> это означает, что эта группа безопасности доступна только из других ресурсов в одной и той же группе безопасности.
- Эта группа безопасности имеет исходящие правила, показывающие
SSH в экземпляр
Прежде чем вступить в объяснение этих компонентов, давайте попытаемся подключиться к экземпляру, чтобы понять текущий уровень доступа.
- Щелкните правой кнопкой мыши экземпляр и нажмите «Подключить». На вкладке «Подключение экземпляра EC2» нажмите кнопку «Подключить»
- Это позволяет простому и безопасному способу подключения к созданному экземпляру EC2 с помощью Secure Shell (SSH), без необходимости обмена ключами
- Недавно открытая вкладка показывает следующую ошибку: Это связано с тем, что входящий доступ разрешен только из ресурсов в одной и той же группе безопасности. Чтобы преодолеть это, мы можем отредактировать входящее правило в группе безопасности, чтобы разрешить SSH доступ только с вашего собственного IP -адреса:
- Попробуйте снова подключиться. Сейчас на новой вкладке открывается оболочка с успешным соединением SSH с экземпляром. Тип
Ping 1.1.1.1
И вы должны получить результат.
Это показывает нам, что мы можем подключиться к Интернету изнутри экземпляра, и мы можем безопасно SSH к экземпляру. Все это было обработано в группе уровня безопасности, которая в идеале должно быть последним уровнем защиты. Как сделать это лучше? Это будет тема следующего поста в блоге, но я хотел бы выявить ваши мысли до тех пор.
Каковы все эти компоненты, которые были прикреплены/использовались?
В этом разделе мы подробно рассмотрим эти компоненты, которые были прикреплены, когда мы создали наш экземпляр EC2.
Во -первых, стоит отметить, что услуга EC2 в AWS является частной службой. Это означает, что он не подключен к Интернету по умолчанию (это не имеет ничего общего с возможностью доступа к нему или нет, но исключительно связано с его сетевой настройкой); Как вы видели в предыдущем разделе, мы получили другую конфигурацию, чтобы получить правильное соединение с нашим экземпляром EC2.
Таким образом, полный набор используемых компонентов будет выглядеть что -то похожее на следующую диаграмму:
Ниже приведены некоторые дополнительные данные.
VPC — мы получили VPC (виртуальную частную сеть), прикрепленную к нашему экземпляру
VPC — это сервис AWS, где вы создаете частную изолированную сеть. В этой сети вы можете определить сетевые адреса для вашей инфраструктуры среди других деталей.
- Это VPC по умолчанию, который создается автоматически при создании учетной записи AWS.
- VPC является региональной службой, поэтому вы найдете другой VPC по умолчанию в каждом регионе. VPC, прикрепленный к экземпляру EC2, является тем, который был создан в том же регионе, имеющем этот экземпляр.
Подсеть
Подсеть — это просто подсеть VPC в пределах одной зоны Avaialbosial.
VPC по умолчанию имеет несколько подсети (по одной подсети в каждой зоне доступности региона, где создается VPC). Экземпляр EC2 также создается в одной зоне, поэтому у нас есть подсеть этой зоны, связанной с ним.
Маршрутный стол
Каждый VPC имеет маршрутизатор, который используется для маршрутизации трафика между подсети и контролируется таблицей маршрутов. Когда трафик покидает подсеть, маршрутизатор VPC проверяет поле назначения маршрута и определяет, куда отправить в трафик с помощью целевого поля.
Следующая таблица показывает, что весь трафик с IPS назначения в 172.31.0.0/16
Сеть будет ориентироваться на локальный, это сеть VPC. Трафик с назначением 0.0.0.0/0
будет нацелен на интернет -шлюз:
Интернет -шлюз
Это шлюз, который позволяет общаться между VPC и Интернетом.
Некачественный
Это список контроля доступа сети, который обеспечивает уровень безопасности или фильтрации трафика вокруг подсети. По умолчанию это допускает весь входящий и исходящий трафик. Каждая подсеть в VPC связана с этим NaCl. Можно явно настроить его, чтобы разрешить или отрицать определенный трафик.
Группа безопасности
Группа безопасности также фильтрует трафик, но обрабатывает безопасность иначе, чем NaCls. По умолчанию группа безопасности имеет неявное правило отказа для всего входящего трафика и позволяет весь исходящий трафик. Невозможно явно отклонить трафик в группе безопасности, такой как остановка трафика, исходящего от определенного IP (это когда мы используем NaCl).
Я надеюсь, что это было полезно. Как бы вы предложили настроить сеть в следующий раз, когда вас попросят создать экземпляр EC2?
Смотрите это место для второй части.
Оригинал: «https://dev.to/ahaydar/building-a-secure-network-in-aws-part-1-hk4»