Управление несколькими серверами, более 90 в настоящее время с 3 devops через Ansible. Все работает отлично, однако сейчас существует гигантская проблема безопасности. Каждый devop использует свой собственный локальный ключ ssh, чтобы получить доступ напрямую к серверам. Каждый devop использует ноутбук, и каждый ноутбук потенциально может быть скомпрометирован, таким образом, открывая всю сеть серверов prod для атаки.
Я ищу решение для централизованного управления доступом и, таким образом, блокирования доступа для любого данного ключа. Не похоже на то, как ключи добавляются в bitbucket или github.
Вдобавок ко всему, я бы предположил, что решением будет туннель от одной машины, шлюза, до желаемого сервера prod ... при прохождении шлюза запрос будет подбирать новый ключ и использовать для получения доступа к продукту. сервер. В результате мы можем быстро и эффективно прекратить доступ для любого devop в течение нескольких секунд, просто отказав в доступе к шлюзу.
Это хорошая логика? Кто-нибудь уже видел решение, чтобы помешать этой проблеме?
источник
Ответы:
Это слишком сложно (проверка, есть ли у ключа доступ к конкретному серверу prod). Используйте сервер шлюза в качестве хоста перехода, который принимает каждый действительный ключ (но может легко удалить доступ к определенному ключу, который по очереди удаляет доступ ко всем серверам), а затем добавлять только разрешенные ключи к каждому соответствующему серверу. После этого убедитесь, что вы можете получить доступ к SSH-порту каждого сервера только через хост перехода.
Это стандартный подход.
источник
Инженеры не должны запускать ANSI непосредственно со своего ноутбука, если только это не среда разработки / тестирования.
Вместо этого имейте центральный сервер, который извлекает runbook из git. Это позволяет дополнительные элементы управления (четыре глаза, обзор кода).
Объедините это с бастионом или хостом прыжка, чтобы ограничить доступ дальше.
источник
Netflix реализовал ваши настройки и выпустил бесплатное программное обеспечение, чтобы помочь в этой ситуации.
Смотрите это видео https://www.oreilly.com/learning/how-netflix-gives-all-its-engineers-ssh-access или эту презентацию по адресу https://speakerdeck.com/rlewis/how-netflix-gives- все-его-инженеры-ssh-доступ-к-экземплярам, работающим в производстве с основной точкой:
Их программное обеспечение доступно здесь: https://github.com/Netflix/bless
Некоторые интересные вещи, даже если вы не реализуете их полное решение:
источник
OneIdentity (ex-Balabit) SPS - это именно то, что вам нужно в этом сценарии. С помощью этого устройства вы можете управлять идентификаторами пользователей практически на любых машинах, отслеживать поведение пользователей, отслеживать и предупреждать, а также индексировать все, что пользователи делают для последующих проверок.
источник
Мое предложение состоит в том, чтобы запретить доступ по SSH с компьютеров пользователей.
Вместо этого вы должны
Образец исполнения модели,
ИЛИ
Если вы ограничены в ресурсах сервера, тот же сервер Jenkins может также содержать Git (scm-manager), хотя существует дополнительная угроза безопасности, если один из компьютеров разработчика заражен. Вы можете решить эту проблему, отключив сервер Jenkins от Интернета и локально разрешив зависимости Ansible.
источник