Как управлять парами ключей EC2 для нескольких пользователей?

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

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

А что будет, если завтра один из товарищей по команде уйдет? Мне нужно будет воссоздать машину с новой парой ключей.

Как я могу правильно управлять ключами, чтобы у каждого члена команды был свой уникальный ключ, связанный с его/ее пользователем IAM, поэтому, как только он/она покинет компанию, я смогу аннулировать его/ее ключ?


person Alon    schedule 06.08.2020    source источник


Ответы (4)


Старайтесь не предоставлять PEM для экземпляров всем, держите их у администраторов в таком инструменте, как хранилище паролей.

Помните, что для ротации этих PEM вам потребуется вручную заменить author_keys в любом экземпляре Linux, а для экземпляров Windows, где вы используете этот PEM для получения пароля Windows, вам потребуется заменить и запустить новый PEM.

У AWS есть несколько решений, которые упрощают безопасный доступ к вашим экземплярам Linux:

  • Если вам не требуется на самом деле SSH для хоста, а просто нужен терминальный доступ, вы можете использовать Диспетчер сеансов. С помощью этого инструмента вы можете получить доступ к терминалу в консоли AWS или подключиться через ссылку CLI. Взаимодействие с терминалом можно ограничить разрешить только определенные команды с функциональностью для аудит встроен.
  • Если вы хотите подключиться к терминалу, вы можете использовать подключение экземпляра EC2. Используя эту опцию, вы можете сгенерировать временный ключ, а затем предоставить этот через интерфейс командной строки, чтобы разрешить временный доступ с помощью этого PEM. Как только эта команда будет выполнена (и выполнена успешно), вы сможете временно подключиться к экземпляру, используя SSH-терминал с вашим временным PEM.
person Chris Williams    schedule 06.08.2020

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

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

person Mark B    schedule 06.08.2020

Ваш вопрос касается не Ec2 как такового, а модели управления доступом, которую вы хотите реализовать.

Если все эти 8 человек должны иметь идентифицированный и индивидуальный доступ к экземпляру, самый простой способ — создать 8 разных пользователей в экземпляре. Каждый с другим ssh-ключом.

Это можно сделать, войдя в инстанс, используя ключ, созданный для пользователя ec2-user или ubuntu, затем создав каждого из пользователей и раздав.

Если все, что вам нужно, это один ключ для всех, чтобы войти в систему под одним и тем же пользователем, просто попросите людей создать ssh-ключи и поделиться с вами открытым ключом. Затем вы помещаете их все в пользовательскую папку .ssh по умолчанию.

Когда кто-то уходит, просто удалите ssh-ключ. Вы даже можете сохранить их пользователя по историческим причинам.

Если количество экземпляров увеличивается, вам следует инвестировать в централизованный инструмент управления входом в систему, такой как LDAP

person Alexander Jardim    schedule 06.08.2020

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

  • Вам не нужно делиться ключом PEM ни с одной командой, любым участником, только с администратором
  • Каждый член команды должен предоставить собственный открытый ключ для доступа к экземпляру.
  • Управляйте тем, к какому экземпляру может получить доступ член команды и какой уровень доступа
  • Удаление члена команды из работы оператора будет автоматически удалено из EC2.
  • Отслеживайте действия, которые пользователь выполняет, когда пользователь получает логин в экземпляр
  • вы также можете запретить доступ для определенного пользователя

В работе ops вы можете создать стек, например

  • TeamA, TeamB и Teamc Таким образом, пользователь может одновременно быть членом одного или нескольких стеков, а TeamA может получить доступ только к экземпляру, добавленному в TeamA, что также обеспечивает логическое разделение экземпляра в соответствии с командой.

Opswork в основном использует для управления конфигурацией, но это действительно помогает управлять доступом пользователей к экземпляру, когда высшее руководство хочет контролировать доступ пользователей, а не Ops Team.

  • Создать стек
  • Зарегистрируйте экземпляр с помощью OpsWork.
  • Добавить пользователя в стек

введите здесь описание изображения

person Adiii    schedule 07.08.2020