Como posso gerenciar contas e chaves de acesso do AWS VPC ssh em várias instâncias?

1

Estou configurando uma estrutura AWS VPC padrão: uma sub-rede pública, algumas sub-redes privadas, hosts em cada, ELB etc. O acesso à rede operacional será feito por meio de um host bastion ssh ou de uma instância openvpn.

Uma vez na rede (bastion ou openvpn), os administradores usam o ssh para acessar as instâncias individuais.

Pelo que posso dizer, todos os documentos parecem depender de um único usuário com direitos sudo e uma única chave ssh pública. Mas essa é realmente a melhor prática? Não é muito melhor que cada usuário acesse cada host com seu próprio nome?

Assim, posso implantar contas e chaves públicas ssh em cada servidor, mas isso fica rapidamente incontrolável.

Como as pessoas recomendam o gerenciamento de contas de usuários? Eu olhei para:

  • IAM: não parece que o IAM tenha um método para distribuir automaticamente contas e chaves ssh para instâncias de VPC.
  • IAM via LDAP: o IAM não possui uma API LDAP
  • LDAP: configure meus próprios servidores LDAP (redundantes, é claro). É um pouco difícil de gerenciar, ainda melhor do que gerenciar em todos os hosts, especialmente à medida que crescemos.
  • Chave ssh compartilhada: confie na VPN / bastião para rastrear as atividades do usuário. Eu não amo isso, mas ...

O que as pessoas recomendam?

OBSERVAÇÃO: movi isso de postagens acidentalmente no StackOverflow.

    
por deitch 08.06.2014 / 16:17

2 respostas

2

O IAM é estritamente para acesso para criar / modificar / destruir recursos da AWS. Não tem nada a ver com a concessão de acesso ssh aos seus servidores. Se os seus usuários fizerem precisarem de acesso à API da AWS, então, é claro, conceda a eles usuários do IAM.

Com relação à criação de usuários, implantação de chaves, etc. Basta usar um sistema de gerenciamento de configuração. Eu uso Ansible para isso, e é uma brisa. Eu posso implantar meus usuários, suas chaves e seus privilégios de sudo em um único servidor da maneira mais fácil possível para 1000 servidores.

Seja o que for que você faça, em nenhuma circunstância permita o uso de uma conta compartilhada, chaves compartilhadas, etc.

    
por 08.06.2014 / 21:31
0

Userify.com gerencia contas de usuário, chaves SSH e funções sudo.

É muito fácil implantar usando os Dados do usuário da AWS (na guia Avançado de lançamento da instância) ou colocá-los no script UserData para um grupo de escalonamento automático ou sempre que você estiver lançando uma instância manualmente, o que é ótimo porque funciona antes mesmo de fazer o login. (Ou você pode simplesmente colar o one-liner no console do seu servidor, mas isso não é tão divertido ...)

Ele suporta Chef e coisas assim, e cada usuário (desenvolvedor / admin / etc) recebe seu próprio login na web para atualizar as chaves. É muito indolor.

    
por 13.11.2014 / 06:11