Как управлять парами ключей EC2 для нескольких пользователей? - PullRequest
1 голос
/ 06 августа 2020

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

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

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

Ответы [ 4 ]

2 голосов
/ 06 августа 2020

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

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

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

  • Если вам не требуется фактически S SH для хоста, а просто нужен терминальный доступ, вы можете использовать Менеджер сеанса . С помощью этого инструмента вы можете получить доступ к терминалу в консоли AWS или подключиться через CLI . Взаимодействие с терминалом может быть ограничено до разрешить только указанные c команды со встроенной функцией аудита .
  • Если вы хотите подключиться к терминалу, вы можете использовать экземпляр EC2 connect . Используя эту опцию, вы можете сгенерировать временный ключ, а затем предоставить этот через CLI , чтобы разрешить временный доступ с помощью этого PEM. Как только эта команда будет запущена (и будет успешной), вы сможете временно подключиться к экземпляру, используя терминал S SH с вашим временным PEM.
1 голос
/ 07 августа 2020

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

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

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

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

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

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

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

1 голос
/ 06 августа 2020

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

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

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

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

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

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

1 голос
/ 06 августа 2020

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

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

...