Descrição do Problema
O acesso não autorizado a ambientes internos de TI não atende aos padrões de segurança da empresa. O encerramento do acesso de usuários inativos visa reduzir o risco de acesso descontrolado aos seus recursos e ajudar a estabelecer e controlar o processo de gerenciamento de acesso aos ambientes internos e de produção.
Desabilitar o procedimento de acesso é necessário no caso, por exemplo, quando os usuários deixam a organização ou os ambientes de TI não são mais necessários. Os líderes de equipe precisam ter certeza de que os antigos usuários não têm mais acesso.
Nossas recomendações permitem que sua equipe de engenharia aumente a segurança das contas da AWS identificando usuários inativos e removendo credenciais de usuário do IAM. Em nosso artigo, recomendamos encerrar contas de usuário do IAM que não estejam ativas por 90 dias ou mais, no entanto, você pode ajustar um período de tempo especificado com base em seus requisitos.
Recomendações
Passo 1
Liste todos os usuários que foram criados há mais de 90 dias e que fizeram o último login no console da AWS há mais de 90 dias ou que não o utilizaram.
Comando AWS CLI:
aws iam list-users --query 'Usuários[?(CreateDate <= `2021-12-26` && (PasswordLastUsed <= `2021-12-26`) || !not_null(PasswordLastUsed))].UserName' --texto de saída
Mais informações podem ser encontradas aqui:
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-users.html
Passo 2
Para cada usuário nesta lista, devemos verificar todas as chaves de acesso.
Comando AWS CLI:
aws iam list-access-keys --user-name "$user" --query 'AccessKeyMetadata[].AccessKeyId' --texto de saída
Mais informações podem ser encontradas aqui:
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/list-access-keys.html
etapa 3
Para cada chave de acesso devemos verificar Última data de uso. Caso todas as chaves de acesso tenham sido usadas pela última vez há mais de 90 dias, esses usuários poderão ser marcados como alvos.
Comando AWS CLI:
aws iam get-access-key-last-used --access-key-id "$access_key" --query 'AccessKeyLastUsed.LastUsedDate >= `2021-12-26`' --texto de saída
Mais informações podem ser encontradas aqui:
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/get-access-key-last-used.html
Otimização de custo de nuvem gratuita. Vida
Nota 1
Nos comandos usamos date 2021-12-26 sua data relativa igual (agora – 90 dias). Você deve usar sua própria data relativa.
Nota 2
O AWS cli tem um mecanismo de paginação para grandes quantidades de dados na saída. Se você tiver muitos usuários em uma conta, o script fornecido processará apenas a primeira página. Considere usar algo mais poderoso do que o AWS cli.
Como resultado, um comando de linha:
para usuário em $(aws iam list-users --query 'Usuários[?(CreateDate <= `2021-12-26` && (PasswordLastUsed <= `2021-12-26`) || !not_null(PasswordLastUsed))].UserName' --texto de saída); faça para access_key em $(aws iam list-access-keys --nome-do-usuário "$user" --query 'AccessKeyMetadata[].AccessKeyId' --texto de saída); faça se [[ "$(aws iam get-access-key-last-used --access-key-id "$access_key" --query 'AccessKeyLastUsed.LastUsedDate >= `2021-12-26`' --texto de saída)" == True ]]; então continue 2; fi; feito; eco "$user"; feito
Como resultado, este comando fornecerá uma lista de nomes de usuários.
👆🏻 Armazenar objetos em buckets públicos do AWS S3 pode ameaçar a segurança dos dados da sua empresa.
💡 Descubra as recomendações que ajudam você a gerenciar o acesso público aos recursos do AWS S3 corretamente e garantir que todos os buckets e objetos necessários tenham seu acesso público bloqueado → https://hystax.com/the-quickest-way-to-get-a-list-of-public-buckets-in-aws-to-enhance-your-security