Melhores práticas para chaves de acesso AWS IAM para uso com AWS SDK

Melhores práticas para chaves de acesso AWS IAM para uso com AWS SDK

Quero saber as práticas recomendadas usadas por grandes empresas para acesso programático a vários serviços da AWS, pois há vários programas que precisam de acesso a serviços diferentes, então como isso é gerenciado? Eles criaram várias chaves de acesso para cada programa para 2 serviços diferentes ou criaram uma única com acesso a todos os serviços?

Responder1

A prática recomendada para recursos da AWS, como EC2/Lambda/etc, é usar funções IAM, detalhadasaqui. Resumindo, você não cria um usuário para um servidor, você cria uma função que o serviço pode assumir e que possui um conjunto de permissões associado ao servidor EC2.

Esse servidor com uma função recebe credenciais "temporárias" quando está em execução para que possa acessar qualquer serviço permitido pela função do IAM. Quando digo “temporário”, as credenciais fornecidas ao serviço duram pouco, talvez 24 horas, mas quando expiram novas credenciais são emitidas. Isso geralmente é transparente, a menos que você esteja escrevendo um software que os utilize; nesse caso, será necessário verificá-los ocasionalmente. Posso não ter todos os detalhes bem aqui, mas está mais ou menos correto.

A AWS tem políticas predefinidas que podem facilitar a definição de funções.

Por exemplo, você pode definir uma função que diz "Servidores EC2 com esta função podem enviar para SQS, extrair do SQS, executar esta função lambda" e qualquer coisa que não seja concedida explicitamente será negada. Às vezes, é preciso experimentar um pouco para obter as permissões necessárias. O privilégio mínimo é melhor para que, se um recurso como o servidor EC2 for comprometido, ele não tenha direitos de administrador para a AWS e não possa excluir tudo ou dizer para iniciar a mineração de criptografia.

Se você trabalha em uma grande empresa fazendo trabalho na AWS, sugiro que faça algum treinamento na AWS. O treinamento online para AWS Architect Associate em um lugar como Cloud Guru é o mínimo que você precisa. AWS é complexo. Trabalho na AWS em tempo integral há anos, mas aprendo algo novo todos os dias.

Responder2

Primeiro de tudo você precisa de políticas de acesso predefinidas aos recursos (como SQS, EC2, ElastiCache etc). Depois disso você pode adicionar usuário com acesso programático e armazenar credenciais de forma segura ou usar Funções para atribuí-lo a serviços para acesso. Por exemplo: crie uma função IAM para acessar o RDS e atribua-a à instância ec2 e, em seguida, tente acessar nosso banco de dados a partir da instância ec2.

informação relacionada