O que é uma boa maneira de usar as credenciais retornadas por 'aws sts assume-role' na sessão atual do shell?

2

aws sts assume-role retorna credenciais no formato Json. Existe uma maneira fácil (como colocá-los em variáveis de ambiente) para que as chamadas subsequentes para aws possam usá-las?

Basicamente, quero algo como sudo -i para a AWS.

Observação: atualmente, estou fazendo isso no meu laptop com as credenciais atuais em variáveis env, mas seria interessante se a solução também funcionasse em instâncias do EC2 em que as credenciais da função original provêm dos metadados da instância.

    
por Robert Jack Will 30.10.2015 / 16:40

1 resposta

1

Em vez de chamar o comando sts assume-role explicitamente, você pode configurar um perfil que assume uma função específica que é então armazenada em cache na CLI. Isso é bem documentado , mas basicamente é só configurá-lo como um perfil comum no seu arquivo ~/aws/config , assim:

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default

Se você impõe o MFA ao assumir um papel (o que eu recomendo strongmente que você faça), seria algo como isto:

[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadmin
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/jonsmith

Para usar a função que você configurou, forneça a opção --profile CLI ou certifique-se de definir a variável de ambiente AWS_PROFILE com o nome do perfil.

Você poderia chamar o comando sts assume-role explicitamente, então seria necessário analisar os valores apropriados e colocá-los nas seguintes variáveis de ambiente: AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY e AWS_SESSION_TOKEN .

    
por 31.10.2015 / 21:36