Я пытаюсь удалить пользовательские ключи AWS, используя массив bash.
Я храню ключи доступа AWS в массиве и считываю их в одном цикле, а затем пытаюсь удалить их в другом цикле..
Цикл, который читает переменные, выводится правильно:
Listing access keys for "script-test".
AKIAJKWXK6ZI6BPV6KOA
AKIAIHM2MZMQC7KLXSJA
Но цикл, который должен удалять ключи, портит выходные данные массива:
Deleting user access keys for script-test.
Deleting key: AKIAJKWXK6ZI6BPV6KOA
AKIAIHM2MZMQC7KLXSJA
Это ошибка, которая возникает:
Произошла ошибка (ValidationError) при вызове операции DeleteAccessKey: указанное значение для accessKeyId недопустимо.Он должен содержать только буквенно-цифровые символы.
Это два цикла, которые я использую для печати, а затем удаляю ключи:
echo "Listing access keys for \"$user_name\"."
declare -a keys
keys=$( (aws iam list-access-keys --user-name "$user_name" --profile="$aws_env" | jq -r '.AccessKeyMetadata[].AccessKeyId') )
for key in "${keys[@]}"
do
echo "$key"
done
echo; echo
echo "Deleting user access keys for $user_name."
for key in "${keys[@]}"
do
echo "Deleting key: $key"
aws iam delete-access-key --user-name "$user_name" --access-key-id "$key" --profile="$aws_env"
done
Что я делаю неправильно?Как я могу заставить это работать правильно?