Группы безопасности Amazon EC2

Последний элемент вывода команды ec2-describe-instances, которая описывает резервацию ресурсов и которая по умолчанию до сих пор использовалась во всех примерах этой главы, указывает группу безопасности, в которой был запущен ваш экземпляр.

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

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

ПОЧЕМУ ГРУППА БЕЗОПАСНОСТИ

НЕ ЯВЛЯЕТСЯ СЕТЕВЫМ СЕГМЕНТОМ

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

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

жете работать с приложениями, которые полагаются на многоадресный (multicast) или широковещательный (broadcast) трафик.

    Хотя вы можете перевести свой сервер в так называемый "неразборчивый" режим (promiscuous mode)1, вы сможете наблюдать только тот сетевой трафик, где пунктом назначения является ваш сервер. Эта функция существенно повышает защищенность EC2, но одновременно она и затрудняет работу систем обнаружения вторжений в сеть (network intrusion detection systems).

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

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

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

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

ec2-authorize GROUP_NAME [OPTIONS]

Чтобы получить доступ к вашему новому экземпляру через командную оболочку, вам потребуется открыть порт SSH:

$ ec2-authorize default -p 22

PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0

Если вы хотите создать Web-сервер, вы, естественно, захотите предоставить к нему доступ через HTTP и HTTPS:

$ ec2-authorize default -p 80

PERMISSION default ALLOWS tcp 80 80 FROM CIDR 0.0.0.0/0

$ ec2-authorize default -p 443

PERMISSION default ALLOWS tcp 443 443 FROM CIDR 0.0.0.0/0

Вывод этой команды показывает, что для группы безопасности по умолчанию теперь определен доступ через указанные порты из любой точки в Интернете (запись FROM CIDR 0.0.0.0/0 означает "любой IP-адрес").

ВНИМАНИЕ!

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

1 Promiscuous mode или promisc mode — так называемый "неразборчивый" режим, в котором сетевая карта позволяет принимать все пакеты независимо от того, кому они адресованы. Подробнее см. http://en.wikipedia.org/wiki/Promiscuous_mode. — Прим. перев.

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

$ ec2-authorize default -P tcp -p 22 -s 10.0.0.1/32

Эта  команда  разрешит  доступ  по  протоколу  TCP  через  порт  22  только  из 10.0.0.1. Теперь вы сможете получить доступ к серверу через SSH:

ssh -i PRIVATE_KEY_FILE root@PUBLIC_IP

В данном случае вы можете ввести:

$ ssh -i id_rsa-mykeypair root@ec2-75-101-201-11.compute-1. amazonaws.com

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

Вы совершенно не обязательно должны быть ограничены только одной группой безопасности. Например, вы можете создать дополнительные группы безопасности с помощью команды ec2-add-group:

ec2-add-group GROUP -d DESCRIPTION

Например:

$ ec2-add-group mygroup -d MyGroup

GROUP mygroup MyGroup

За счет использования множества групп вы можете определять разные наборы правил для различных типов экземпляров — например открыть доступ через HTTP/HTTPS к группе балансировщика нагрузки, одновременно закрыв любой доступ к группе серверов приложений, за исключением доступа к Tomcat mod_jk1 из группы балансировщика нагрузки.

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

Источник: Риз Дж., Облачные вычисления: Пер. с англ. — СПб.: БХВ-Петербург, 2011. — 288 с.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете промотать до конца и оставить ответ. Pinging в настоящее время не допускается.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100