2012-07-03 4 views
2

У нас есть система, работающая на Beanstalk Amazon. Мы хотели бы ограничить доступ только к серверу HTTPS. Блокировка HTTP по настройкам среды - это предотвращает доступ через DNS-сервер beanstalk. Однако, если кто-то знает общедоступный IP-адрес (или имя) любого из серверов - он может обращаться к ним напрямую через HTTP. Кажется, что LB перенаправляет запросы на порт 80, поэтому мы не можем изменить группу безопасности и удалить порт 80. Есть ли простой способ ограничить доступ к HTTP только из LB? СпасибоПредотвращение доступа HTTP к серверам Эластичного бобового фонаря Amazon

ответ

0

Вы должны быть в состоянии сделать это через EC2 Security Groups, который является средой для эластичного объекта Beanstalk.

По умолчанию это позволяет подключаться к порту 80 с любого IP-адреса, но вы можете удалить это правило или заменить его собственным IP-адресом (для целей тестирования).

В противном случае вы можете перенаправить весь HTTP-трафик на HTTPS на уровне приложения или просто проверить свойство CGI * server_port_secure * и отказаться от ответа.

+0

Amazon использует CloudWatch для мониторинга серверов с использованием HTTP. Если мониторинг не удался - сервер завершен и запускается новый. Amazon не предоставляет диапазон IP-адресов, откуда поступают запросы CloudWatch, что означает, что мы не можем установить группу безопасности для включения только CloudWatch. Нам необходимо предоставить доступ к любому IP-адресу, который мы пытаемся предотвратить. Сами серверы не обрабатывают HTTPS (обрабатывается LB), поэтому маршрутизация всего трафика на HTTPS создаст цикл, где сервер пересылает HTTPS запросы на серверы как HTTP, а серверы отправляют их обратно. – user964797

+0

По моему опыту, если проверка работоспособности никогда не проходила, она не будет прерывать какие-либо экземпляры сервера, чтобы попытаться снова заставить ее работать, но это, похоже, не документировано. Кроме того, вы можете получить HTTPS или простой TCP, используя строки HTTPS: 443 и TCP: 80 в качестве адреса проверки работоспособности. –

0

Да, вам нужно, чтобы http/80 был открыт для проверки работоспособности. Вы можете перенаправить все остальные запросы (кроме URL проверки работоспособности) на использование https. Таким образом, хотя порт открыт, вы «не обслуживаете какие-либо данные небезопасным способом».

0

У вас есть по крайней мере два варианта:

1 - Установите групповую политику безопасности, что позволяет получить доступ на порт 80 от только балансировки нагрузки. ВАЖНЫЙ!!! Не используйте IP-адрес балансировки нагрузки в группе безопасности экземпляров. Вместо этого используйте идентификатор группы безопасности балансировки нагрузки.

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