Armazenando credenciais da AWS com segurança em uma máquina pessoal

9

Como posso armazenar com segurança credenciais da AWS em computadores pessoais?

Em detalhes:

Todos em nossa equipe exigem credenciais de segurança da AWS para executar tarefas administrativas (as credenciais são separadas por função). Essas credenciais geralmente são armazenadas em texto simples em alguns arquivos de configuração no disco. Eu acho que isso é muito inseguro, especialmente considerando que as credenciais são distribuídas pelos membros da equipe, acabam no backup, etc.

Eu preferiria muito mais armazenar essas credenciais em formato criptografado (semelhante às chaves ssh, por exemplo). Existe alguma maneira automatizada de fazer isso? Ou eu preciso hackear algum script bash que use, por exemplo, o openssl para criptografar dados?

Existem muitas informações na Web sobre como proteger credenciais em uma instância do EC2. Há até mesmo essa funcionalidade de funções do Amazon IAM , mas também se aplica apenas ao EC2.

    
por arnuschky 19.09.2014 / 19:39

2 respostas

4

link pode valer a pena investigar. A partir da descrição do projeto:

credulous is a command line tool that manages AWS (IAM) Credentials securely. The aim is to encrypt the credentials using a user's public SSH Key so that only the user who has the corresponding private SSH key is able to see and use them. Furthermore the tool will also enable the user to easily rotate their current credentials without breaking the user's current workflow.

Existe um artigo introdutório do blogue no link .

    
por 20.09.2014 / 13:41
4

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:

  1. 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.

  1. 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.)

  2. 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.

  3. Defina um usuário / senha personalizados para SSH ou junte-se ao domínio.

  4. 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.

  5. 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í.

    
por 19.09.2014 / 22:11