Я настраиваю стандартную структуру AWS VPC: общедоступную подсеть, несколько частных подсетей, хосты на каждой, ELB и т. Д. Оперативный доступ к сети будет осуществляться либо через хост-бастион ssh, либо через экземпляр openvpn.
Попав в сеть (бастион или openvpn), администраторы используют ssh для доступа к отдельным экземплярам.
Из того, что я могу сказать, похоже, что все документы зависят от одного пользователя с правами sudo и одним открытым ключом ssh. Но действительно ли это лучшая практика? Разве не лучше, если каждый пользователь будет обращаться к каждому хосту под своим именем?
Таким образом, я могу развернуть учетные записи и открытые ключи ssh на каждом сервере, но это быстро становится неуправляемым.
Как люди рекомендуют управлять учетными записями пользователей? Я смотрел:
Что рекомендуют люди?
ПРИМЕЧАНИЕ. Я переместил это из случайной публикации в StackOverflow.
IAM предназначен исключительно для доступа для создания / изменения / уничтожения ресурсов AWS. Это не имеет ничего общего с предоставлением доступа ssh к вашим серверам. Если ваши пользователи делать нужен доступ к API AWS, тогда да, обязательно предоставьте им пользователей IAM.
Что касается создания пользователей, развертывания ключей и т.д. Просто используйте систему управления конфигурацией. Я использую для этого Ansible, и это очень просто. Я могу развернуть своих пользователей, их ключи и их привилегии sudo на одном сервере так же просто, как и на 1000 серверах.
Что бы вы ни делали, ни при каких обстоятельствах не разрешайте использование общей учетной записи, общих ключей и т. Д.
Userify.com управляет учетными записями пользователей, ключами SSH и ролями sudo.
Довольно легко развернуть с использованием пользовательских данных AWS (на вкладке «Дополнительно» при запуске экземпляра) или вставить его прямо в сценарий UserData для группы автомасштабирования или всякий раз, когда вы запускаете экземпляр вручную, что здорово, потому что оно работает еще до того, как вы войдите в систему. (Или вы можете просто вставить однострочник в консоль сервера, но это не так весело ..)
Он также поддерживает Chef и тому подобное, и каждый пользователь (разработчик / администратор / и т. Д.) Получает свой собственный веб-логин для обновления ключей. Это довольно безболезненно.