AWS Amazon EC2 - login SSH sem senha para usuários não root que usam PEM keypairs

4

Temos alguns clusters em execução no AWS (HAProxy / Solr, PGPool / PostgreSQL) e temos scripts de configuração para permitir que novas instâncias de escravo sejam incluídas automaticamente nos clusters, atualizando seus IPs para os arquivos de configuração mantidos no S3, depois SSHing para a instância mestre para chutá-los para baixar a configuração revisada e reiniciar o serviço. Está tudo funcionando muito bem, mas nos testes estamos usando nosso master pem para SSH, o que significa que ele precisa ser armazenado em uma instância. Não é bom.

Eu quero um usuário não-raiz que possa usar um par de chaves da AWS que tenha acesso sudo para executar os scripts download-config-and-restart, mas nada mais. O rbash parece ser o caminho a seguir, mas eu entendo que isso pode ser inseguro, a menos que seja configurado corretamente.

Então, quais buracos de segurança existem nessa abordagem:

  • Novo par de chaves da AWS criado para user.pem (não realmente chamado 'usuário')
  • Novo usuário em instâncias: usuário
  • A chave pública para o usuário está em ~ user / .ssh / authorized_keys (tirada por criando nova instância com user.pem, e copiando de /root/.ssh/authorized_keys)
  • A chave privada do usuário está em ~ user / .ssh / user.pem
  • 'usuário' tem shell de login de / home / user / bin / rbash
  • ~ user / bin / contém links simbólicos para / bin / rbash e / usr / bin / sudo
  • / etc / sudoers tem entrada "usuário ALL = (root) NOPASSWD: [caminho para scripts]
  • ~ user / .bashrc define PATH como / home / user / bin / only
  • ~ user / .inputrc tem 'definido desativar-conclusão em 'para evitar tabulação dupla de 'sudo /' para encontrar caminhos.
  • ~ user / -R é de propriedade de root com acesso somente leitura ao usuário, exceto para ~ user / .ssh que possui acesso de gravação para usuário (para escrever known_hosts) e ~ user / bin / * que são + x
  • usos de comunicação entre instâncias 'ssh -o StrictHostKeyChecking = não -i ~ user / .ssh / usuario.pem usuario @ [host] sudo [scriptname] '

Quaisquer pensamentos seriam bem-vindos.

Marcar ...

    
por Mark White 16.06.2010 / 05:48

1 resposta

1

Ok, nenhuma resposta dizendo que isso é horrivelmente exposto de alguma forma, exceto pelo fato de que, se alguém entrar no login do usuário, ele receberá a chave PEM do usuário. O que não deve deixá-los em nenhum outro lugar *.

Está trabalhando com a abordagem acima.

* Advertências usuais aplicam-se

    
por 21.06.2010 / 16:24