Esse "Verifiquei os logs do cloudwatch e..." no meio da resposta dá um frio na espinha. E o detalhe cruel: o deny de leitura em ~/.aws/credentials, que está no meu setup, não bloquearia esse caso, porque ele nem precisou ler o arquivo, só usou o client da aws que já estava autenticado na máquina. Depois do seu relato, Bash(aws:*) entrou na minha lista de deny também.
Uma ideia que deve ajudar aí: tirar o [default] do ~/.aws/credentials e deixar apenas profiles nomeados. Qualquer aws sem --profile explícito falha, e pra mexer em produção o comando precisa vir com --profile prod, que aparece na hora de aprovar. Valeu pelo alerta.