Назад | Перейти на главную страницу

Рекомендации: закрытые ключи AWS EC2

Я боролся с закрытыми ключами AWS, пытаясь сохранить все свои учетные данные AWS безопасными, надежными и организованными. Должен ли я использовать один и тот же ключ AWS для нескольких экземпляров EC2 или у каждого экземпляра должен быть свой уникальный закрытый ключ?

Я искал лучшую практику в этом отношении. Если вы дополнительно можете объяснить, почему, я был бы очень признателен.

Я склоняюсь к практике предоставления каждому экземпляру уникального закрытого ключа для разделения безопасности.

Заранее спасибо!

Просто чтобы расширить ответ @steenhulthin.

Я считаю, что сгенерированную EC2 пару ключей лучше всего рассматривать как главный ключ в экземпляре, и это необязательно. Это не система управления доступом на уровне пользователей.

Я считаю, что лучшая практика заключается в следующем

Нужно ли мне удаленно входить в экземпляр?

ДА: Создайте экземпляр EC2 с парой ключей

Я считаю, что лучше всего создавать пару ключей EC2 для каждого экземпляра. Если пара ключей подвергается риску, доступ ограничивается только этим экземпляром. Однако парой ключей для каждого экземпляра может быть сложно управлять, в этом случае найдите логический способ сгруппировать экземпляры и использовать пару ключей для каждой группы. Например. группировать по роли или роли и приложению.

НЕТ: Создайте экземпляр EC2 без пары ключей.

Это, очевидно, более безопасно, поскольку у вас нет ключа, который можно потерять / скомпрометировать. Экземпляр по своей сути недоступен обычными методами. Следование этому методу требует, чтобы управление экземпляром / настройка были полностью автоматизированы (Chef, Puppet и т. Д.), И это более дорогостоящий вариант. В целом, насколько безопаснее это делает экземпляр, остается предметом обсуждения и зависит от того, как настроена ваша автоматизация.

Каковы лучшие практики управления парами ключей EC2? Это тот вопрос, на который у меня пока нет хорошего ответа.

Вам нужно разрешить людям удаленный доступ к экземплярам? Как предлагает @steenhulthin, либо создайте локальные учетные записи для каждого пользователя, либо используйте централизованную аутентификацию и авторизацию.

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

Думаю, этот вопрос лучше подходит для serverfault.com.

Тем не менее: если вы работаете с экземплярами в одиночку, я не вижу смысла создавать пару ключей для каждого экземпляра. Я думаю, что пара ключей должна быть для каждого пользователя.

Если многопользовательские пользователи должны получить доступ к машинам, я бы добавил новую пару ключей в экземпляр ec2, как описано здесь: https://forums.aws.amazon.com/message.jspa?messageID=185184 и немного подробнее о процессе генерации пары ключей здесь: http://seabourneinc.com/2011/01/19/change-key-pairs-on-aws-ec2-instance/

Я написал статью о лучших практиках SSH, включая управление ключами, перенаправление портов и перенаправление агентов. Вы можете найти это полезным. Здесь ссылка на сайт.

Вот несколько хороших занятий:

  1. Иметь один SSH-ключ на человека
  2. Защитите свой SSH-ключ - никогда не делитесь секретным ключом, по возможности зашифруйте
  3. Никогда не используйте ключи, созданные AWS
  4. Используйте индивидуальный логин (пользователя) ID, не используйте общие логины.

В статье упоминаются также другие вещи, связанные с SSH и доступом пользователей.