Назад |
Перейти на главную страницу
AWS Amazon EC2 - SSH-вход без пароля для пользователей без полномочий root с использованием пар ключей PEM
У нас есть несколько кластеров, работающих на AWS (HAProxy / Solr, PGPool / PostgreSQL), и мы настроили сценарии, позволяющие автоматически включать новые подчиненные экземпляры в кластеры, обновляя их IP-адреса до файлов конфигурации, хранящихся на S3, затем подключитесь к главному экземпляру по SSH, чтобы они загрузили исправленную конфигурацию и перезапустили службу. Все работает нормально, но при тестировании мы используем наш мастер pem для SSH, что означает, что он должен храниться в экземпляре. Не хорошо.
Мне нужен пользователь без полномочий root, который может использовать пару ключей AWS, у которого будет доступ sudo для запуска скриптов download-config-and-restart, но ничего больше. rbash кажется подходящим вариантом, но я понимаю, что это может быть небезопасно, если не настроить правильно.
Итак, какие дыры в безопасности есть в этом подходе:
- Новая пара ключей AWS создана для user.pem (на самом деле не называется user)
- Новый пользователь в экземплярах: пользователь
- Открытый ключ для пользователя находится в ~ user / .ssh / authorized_keys (берется путем создания нового экземпляра с user.pem и копирования его из /root/.ssh/authorized_keys)
- Закрытый ключ для пользователя находится в ~ user / .ssh / user.pem
- 'пользователь' имеет оболочку входа / home / user / bin / rbash
- ~ user / bin / содержит символические ссылки на / bin / rbash и / usr / bin / sudo
- В / etc / sudoers есть запись "user ALL = (root) NOPASSWD: [путь к скриптам]
- ~ user / .bashrc устанавливает PATH только на / home / user / bin /
- ~ user / .inputrc имеет 'set disable-completed on', чтобы предотвратить двойное табуляцию из 'sudo /' для поиска путей.
- ~ user / -R принадлежит root с доступом только для чтения к пользователю, за исключением ~ user / .ssh, у которого есть доступ на запись для пользователя (для записи известных_хостов), и ~ user / bin / *, которые имеют + x
- Взаимодействие между экземплярами использует ssh -o StrictHostKeyChecking = no -i ~ user / .ssh / user.pem user @ [host] sudo [scriptname] '
Любые мысли приветствуются.
Отметка...
Хорошо, нет ответов о том, что это ужасно раскрыто каким-либо образом, за исключением того факта, что если кто-то войдет в систему входа пользователя, он получит ключ PEM пользователя. Что не должно позволить им попасть в другое место *.
Он работает с вышеуказанным подходом.
* Применяются обычные предостережения