Existe um comando / subcomando que pode ser passado ao aws
utilitário que pode 1) verificar se as credenciais no ~/.aws/credentials
arquivo são válidas e 2) fornecer alguma indicação a qual usuário as credenciais pertencem? Estou procurando por algo genérico que não faça suposições sobre o usuário ter permissões para o IAM ou qualquer serviço específico.
O caso de uso para isso é uma verificação de sanidade no tempo de implantação para garantir que as credenciais sejam boas. Idealmente, haveria alguma maneira de verificar o valor de retorno e abortar a implantação se houver credenciais inválidas.
amazon-web-services
aws-cli
smitelli
fonte
fonte
Respostas:
Use GetCallerIdentity :
aws sts get-caller-identity
Ao contrário de outras chamadas de API / CLI, ele sempre funcionará, independentemente das suas permissões do IAM.
Você obterá a saída no seguinte formato:
O formato exato do ARN dependerá do tipo de credencial, mas geralmente inclui o nome do usuário (humano).
Ele usa os códigos de erro padrão da CLI da AWS, fornecendo 0 em caso de sucesso e 255 se você não tiver credenciais.
fonte
aws iam get-user --profile test-mfa
, eu recebo:An error occurred (AccessDenied) when calling the GetUser operation
. No entanto,aws sts get-caller-identity --profile test-mfa
gera (da mesma forma, sem nenhum token de sessão MFA ativo) atest-mfa
conta, o ARN e o ID do usuário.Existe uma maneira direta -
aws iam get-user
informaria os detalhes sobre quem você é (o usuário atual do IAM) - desde que o usuário tivesseiam
privilégios.Existem algumas chamadas da CLI que suportam
--dry-run
sinalizadores como osaws ec2 run-instances
que você informa se possui o config / cred necessário para executar a operação.Também existe o
--auth-dry-run
que Verifica se você possui as permissões necessárias para o comando, sem realmente executar o comando. Se você tiver as permissões necessárias, o comando retornará DryRunOperation; caso contrário, ele retornará UnauthorizedOperation. [Da documentação da AWS - Opções comuns ]Você seria capaz de listar as chaves de acesso do IAM no console de gerenciamento, que podem ser verificadas para ver quem foi atribuído a qual chave.
A melhor maneira de entender qual usuário / função tem quais privilégios é usar o IAM Policy Simulator .
fonte
AccessDenied
erro - que incluiu aarn:aws:iam::123...890:user/somebody
cadeia completa como parte da saída do erro.