Prática sugerida para adicionar / remover contas de usuário no Amazon EC2

1

Eu tenho um servidor AWB Ubuntu. Vamos chamar o arquivo de chave "root-key.pem".

Vamos supor (para este exemplo) que eu tenha dez empregados e nós adicionamos um novo funcionário todos os meses e deixamos de lado um empregado existente todos os meses. Qual seria a maneira sugerida para permitir que os usuários acessem o servidor com credenciais de administrador? Eles precisariam ser capazes de executar sudo ou ter algo como privilégios de root para poder modificar bancos de dados, portas, push / pull para git, etc.

  1. A maneira mais fácil de fazer isso seria dar acesso a todos para o arquivo "root-key.pem", mas sempre que um funcionário for liberado, precisaríamos criar um novo arquivo e depois Certifique-se de que todos os funcionários existentes tenham acesso a ele (e talvez qualquer tempo de inatividade em que um desenvolvedor possa não ter acesso a ele, ou estar aguardando, etc.).

  2. A maneira preferida que eu acho seria criar um usuário para cada pessoa ( sudo adduser travis ) e depois adicioná-los ao arquivo sudoers e adicionar sua chave pem a .ssh / authorized_keys. Este é o caminho que tentei implementar. Ele funciona na medida em que dá ao usuário acesso ao servidor e eles podem executar o sudo, no entanto é um pesadelo quando as pessoas estão tentando empurrar / puxar para o git (GitHub).

Qual seria a melhor maneira de realizar o segundo item? Ou este é um item muito difícil de implementar, e # 1, embora seja um pouco mais desleixado e inconveniente quando alguém é dispensado, é o caminho preferido para todas as organizações, exceto as grandes?

    
por David542 28.05.2018 / 05:24

2 respostas

0

Você deve ter uma estratégia de rotação de chave para seu root-key.pem mesmo assim. No caso de alguém potencialmente perder essa chave. No entanto, o número 2 é geralmente o caminho certo para fazer isso. Compartilhamento de credenciais nunca deve ser a recomendação embora Eu não duvido que isso aconteça com frequência. Existem muitas maneiras de potencialmente implementar e gerenciar o número 2. Algum tipo de serviço de diretório é o mais comum, mas não é a única opção. Você deve considerar algum tipo de gerenciamento de configuração para lidar com 1 ou 2, de modo a reduzir a sobrecarga da sua equipe.

    
por 28.05.2018 / 13:09
0

Geralmente falando, vá para o segundo.

No primeiro lugar, quando alguém compromete a chave, todos os usuários precisam girar as chaves; em vez disso, se todos tiverem sua própria chave, somente o usuário afetado precisará fazê-lo e poderá ser removido do grupo de administradores.

Também no # 2 você evita gerenciar e transferir chaves privadas, todos podem usar chaves pessoais e você só precisa conhecer a parte pública.

No entanto, # 2 é facilmente programável por script se você tiver acesso programático às chaves públicas dos usuários para criar um script ou usar algum software de gerenciamento de configuração para recuperá-lo de um servidor público. Por exemplo, as chaves públicas de um usuário do github são expostas em https://github.com/<user>.keys você pode escrever um script que pega as chaves do github, escreve no authorized_keys do usuário associado e dá ao usuário privilégios de administrador apenas conhecendo os nomes do github do usuário. / p>     

por 29.05.2018 / 20:56