Skip to content

Instantly share code, notes, and snippets.

@fcruxen
Last active January 11, 2017 17:59
Show Gist options
  • Save fcruxen/b4c1e8f5eeaffd17101bb7a81e23c613 to your computer and use it in GitHub Desktop.
Save fcruxen/b4c1e8f5eeaffd17101bb7a81e23c613 to your computer and use it in GitHub Desktop.
#!/bin/bash
instance_profile=`/usr/bin/curl http://169.254.169.254/latest/meta-data/iam/security-credentials/`
aws_access_key_id=`/usr/bin/curl http://169.254.169.254/latest/meta-data/iam/security-credentials/${instance_profile} | /usr/bin/grep AccessKeyId | /usr/bin/cut -d':' -f2 | /usr/bin/sed 's/[^0-9A-Z]*//g'`
aws_secret_access_key=`/usr/bin/curl http://169.254.169.254/latest/meta-data/iam/security-credentials/${instance_profile} | grep SecretAccessKey | /usr/bin/cut -d':' -f2 | /usr/bin/sed 's/[^0-9A-Za-z/+=]*//g'`
token=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/${instance_profile} | /usr/bin/sed -n '/Token/{p;}' | /usr/bin/cut -f4 -d'"'`
file=$1
bucket=$2
date="`/usr/bin/date +'%a, %d %b %Y %H:%M:%S %z'`"
resource="/${bucket}/${file}"
signature_string="GET\n\n\n${date}\nx-amz-security-token:${token}\n/${resource}"
signature=`/bin/echo -en "${signature_string}" | /usr/bin/openssl sha1 -hmac ${aws_secret_access_key} -binary | base64`
authorization="AWS ${aws_access_key_id}:${signature}"
/usr/bin/curl -s -H "Date: ${date}" -H "X-AMZ-Security-Token: ${token}" -H "Authorization: ${authorization}" "https://s3.amazonaws.com/${resource}" -o /${file}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment