Skip to content

Instantly share code, notes, and snippets.

@gordcorp
Last active January 8, 2019 05:11
Show Gist options
  • Save gordcorp/f22ed1f46293d6517a45680416d9e2ec to your computer and use it in GitHub Desktop.
Save gordcorp/f22ed1f46293d6517a45680416d9e2ec to your computer and use it in GitHub Desktop.
Rotate AWS access keys
function trim_to_one_access_key(){
iam_user=$1
key_count=$(aws iam list-access-keys --user-name "${iam_user}" | jq '.AccessKeyMetadata | length')
if [[ $key_count > 1 ]]; then
oldest_key_id=$(aws iam list-access-keys --user-name "${iam_user}" | jq -r '.AccessKeyMetadata |= sort_by(.CreateDate) | .AccessKeyMetadata | first | .AccessKeyId')
aws iam delete-access-key --user-name "${iam_user}" --access-key-id "${oldest_key_id}"
fi
}
iam_user=username-here
trim_to_one_access_key $iam_user
output="$(aws iam create-access-key --user-name "${iam_user}")"
aws_access_key_id="$(echo $output | jq -r .AccessKey.AccessKeyId)"
aws_secret_access_key="$(echo $output | jq -r .AccessKey.SecretAccessKey)"
# save away the new creds, make sure the old ones arent being used.
# When safe to delete the old creds:
trim_to_one_access_key $iam_user
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment