从bash数组中读取变量的解析错误

时间:2018-06-09 02:00:14

标签: bash amazon-web-services aws-iam

我正在尝试使用bash数组删除AWS用户密钥。

我将AWS访问密钥存储在一个数组中,并在一个循环中读出它们,然后尝试在另一个循环中删除它们。

读取变量的循环打印出来正确:

Listing access keys for "script-test".
AKIAJKWXK6ZI6BPV6KOA
AKIAIHM2MZMQC7KLXSJA

但是应该删除键的循环会混淆数组的输出:

Deleting user access keys for script-test.
Deleting key: AKIAJKWXK6ZI6BPV6KOA
AKIAIHM2MZMQC7KLXSJA

这是发生的错误:

  

调用DeleteAccessKey操作时发生错误(ValidationError):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

我做错了什么?我怎样才能让它正常工作?

0 个答案:

没有答案