0

我正在尝试使用 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

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

4

0 回答 0