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

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

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

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

1
Alon 6 Авг 2020 в 20:35

3 ответа

Лучший ответ

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

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

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

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

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

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

1
Mark B 6 Авг 2020 в 17:40

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

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

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

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

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

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

1
Alexander Jardim 6 Авг 2020 в 17:50