Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. # export AWS_SERIAL_NUMBER=<your-mfa-arn>
  2.  
  3. declare -A iam_roles
  4. iam_roles[dev]="arn:aws:iam::<account>:role/<assume-role-name>"
  5. iam_roles[qa]="arn:aws:iam::<account>:role/<assume-role-name>"
  6.  
  7.  
  8. function _aws_sts_get_session_token(){
  9. unset AWS_SESSION_TOKEN AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
  10. set -x
  11. aws sts get-session-token \
  12. --serial-number $1 \
  13. --token-code ${2} |
  14. jq -r '.Credentials| "AWS_SESSION_TOKEN="+.SessionToken+" AWS_ACCESS_KEY_ID="+.AccessKeyId+" AWS_SECRET_ACCESS_KEY="+.SecretAccessKey'
  15. set +x
  16. }
  17.  
  18. function _aws_sts_assume_role(){
  19. set -x
  20. aws sts assume-role \
  21. --role-arn ${3} \
  22. --role-session-name "${USER}-devel" |
  23. jq -r '.Credentials| "AWS_SESSION_TOKEN="+.SessionToken+" AWS_ACCESS_KEY_ID="+.AccessKeyId+" AWS_SECRET_ACCESS_KEY="+.SecretAccessKey'
  24. set +x
  25. }
  26.  
  27. # get_aws_assume_role_credentials()
  28. function aws_get_temporary_credentials(){
  29. if [ -z "${AWS_SERIAL_NUMBER}" ]; then
  30. local AWS_SERIAL_NUMBER
  31. echo -n input aws mfa arn:
  32. read -s AWS_SERIAL_NUMBER
  33. echo
  34. fi
  35. role_arn=${iam_roles[$1]}
  36. echo aws mfa arn: $AWS_SERIAL_NUMBER
  37. echo role arn: $role_arn
  38. echo -n input mfa token:
  39. read -s TOKEN_CODE
  40. echo
  41.  
  42. export $(_aws_sts_get_session_token $AWS_SERIAL_NUMBER $TOKEN_CODE)
  43. export $(_aws_sts_assume_role ${AWS_SERIAL_NUMBER} "$TOKEN_CODE" ${role_arn})
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement