Управление доступом между экземплярами в EC2 - PullRequest
7 голосов
/ 02 апреля 2012

Мы находимся в процессе настройки нашей ИТ-инфраструктуры на Amazon EC2. Предположим настройку в соответствии с: Х производственных серверов Y постановочные серверы Сортировка журналов и мониторинг сервера Сервер сборки Очевидно, что нам нужно, чтобы разные серверы общались друг с другом. Новая сборка должна быть передана на промежуточный сервер. Сборщик журналов должен получать журналы с рабочих серверов. Мы быстро понимаем, что сталкиваемся с проблемами при управлении ключами доступа. Каждый сервер имеет свою собственную пару ключей и, возможно, свою собственную группу безопасности. Мы заканчиваем копированием файлов * .pem с сервера на сервер, что делает насмешкой над безопасностью. Сервер сборки имеет ключи доступа промежуточных серверов для подключения через ssh и запуска новой сборки. Промежуточные серверы также имеют ключи доступа производственных экземпляров (глоток!) Я провел несколько интенсивных поисков в сети, но не смог найти никого, кто бы говорил о разумном способе решения этой проблемы. Как люди с настройкой, подобной нашей, справляются с этой проблемой? Мы знаем, что наш текущий способ работы неправильный. Вопрос в том, что это правильный путь? Ценю твою помощь! Спасибо

[Update] Наша ситуация усложняется тем, что по крайней мере сервер сборки должен быть доступен с внешнего сервера (в частности, github). Мы используем Jenkins, а хук post commit требует общедоступного URL. Бастионный подход, предложенный @rook, в этой ситуации терпит неудачу.

Ответы [ 2 ]

5 голосов
/ 03 апреля 2012

Очень хорошим способом обработки доступа к коллекции экземпляров EC2 является использование Bastion Host .

Все машины, которые вы используете на EC2, должны запрещать доступ SSH к открытому Интернету, кроме Bastion Host.Создайте новую политику безопасности под названием «Bastion Host» и разрешите только порт 22 входящим из бастиона всем остальным экземплярам EC2.Все ключи, используемые вашей коллекцией EC2, находятся на хосте бастиона.Каждый пользователь имеет свою учетную запись на хосте бастиона.Эти пользователи должны пройти аутентификацию на бастионе, используя защищенный паролем файл ключей.После входа в систему у них должен быть доступ к любым ключам, которые им необходимы для выполнения своей работы.Когда кого-то увольняют, вы удаляете его учетную запись в бастион.Если пользователь копирует ключи из бастиона, это не имеет значения, потому что они не могут войти в систему, если они сначала не вошли в бастион.

0 голосов
/ 03 апреля 2012

Создайте два набора пар ключей: одну для промежуточных серверов и одну для рабочих серверов.Вы можете предоставить разработчикам промежуточные ключи и сохранить производственные ключи в секрете.

Я бы поставил новые сборки на S3 и запустил скрипт perl, чтобы извлечь последний код из ваших корзин S3 и установитьих на соответствующих серверах.Таким образом, вам не нужно вручную проверять все сборки в нем каждый раз.Вы также можете автоматизировать этот процесс с помощью каких-либо инструментов для автоматизации непрерывной сборки, которые будут собирать и выгружать сборку в ваши корзины S3 соответственно.Надеюсь, это поможет ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...