Grande pergunta - e dependendo da pessoa que está respondendo, você provavelmente terá algumas rotas para ir. Eu vou te dar um exemplo do que usamos:
- Crie funções do IAM com base no usuário (desenvolvedor, infraestrutura, segurança, auditoria etc.)
-personalizar política para permitir ou negar ações específicas com base no acesso do usuário.
Exemplo: permitir todas as ações do ec2 para o administrador. Ou apenas permitir acesso com base em uma tag ou sub-rede para um desenvolvedor, etc.
-
Inicie a (s) instância (s) ec2 do Linux usando funções específicas do IAM. Inicie uma instância para cada função ou usuário específico (ajuste o tamanho / tipo da instância de acordo com a necessidade, o orçamento etc.)
-
Configure o grupo de segurança para cada instância para permitir apenas sub-redes específicas ou IPs individuais, para que você possa bloquear o ingresso de tráfego para o SSH.
-
Defina um usuário / senha personalizados para SSH ou junte-se ao domínio.
-
Faça com que cada usuário faça logon ou SSH na instância do Linux atribuída à sua função ou acesso de usuário.
-
As chaves e o acesso à API agora são herdados da própria função do IAM da instância, tornando a necessidade de armazenar chaves do usuário irrelevantes. Apenas certifique-se de bloquear o grupo de segurança, apenas conceda acesso a usuários específicos na caixa Linux. O usuário deve poder escrever scripts usando a API da AWS / usar a funcionalidade das ferramentas da API normalmente.
Estamos usando esse método há cerca de um ano, com ajustes de segurança adicionais, como o tempo de acesso concedido, comprados no AWS HSM e funcionando muito bem.
Espero que isso ajude você ou outra pessoa por aí.