aws-get-keys 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #
  2. # aws-get-keys - Get AWS keys from AWS_PROFILE
  3. #
  4. function getTempCreds() {
  5. local creds_json
  6. creds_json=$(aws --output json sts get-session-token --duration-seconds 3600 --profile ${AWS_PROFILE})
  7. if [[ $? -ne 0 || ! $creds_json ]]; then
  8. echo "Cannot get credentials account '$aws_account': $creds_json" 1>&2
  9. exit 1
  10. fi
  11. local jq="jq --exit-status --raw-output"
  12. AWS_ACCESS_KEY_ID=$(echo "$creds_json" | $jq .Credentials.AccessKeyId)
  13. if [[ $? -ne 0 || ! $AWS_ACCESS_KEY_ID ]]; then
  14. echo "Failed to parse output for AWS_ACCESS_KEY_ID: $creds_json" 1>&2
  15. exit 1
  16. fi
  17. AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | $jq .Credentials.SecretAccessKey)
  18. if [[ $? -ne 0 || ! $AWS_SECRET_ACCESS_KEY ]]; then
  19. echo "Failed to parse output for AWS_SECRET_ACCESS_KEY: $creds_json" 1>&2
  20. exit 1
  21. fi
  22. AWS_SESSION_TOKEN=$(echo "$creds_json" | $jq .Credentials.SessionToken)
  23. if [[ $? -ne 0 || ! $AWS_SESSION_TOKEN ]]; then
  24. echo "Failed to parse output for AWS_SESSION_TOKEN: $creds_json" 1>&2
  25. exit 1
  26. fi
  27. export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
  28. }
  29. if [ -z "${AWS_ACCESS_KEY_ID}" ] ; then
  30. getTempCreds
  31. fi