Разрешение 1
Поэтому я решил это с помощью следующего сценария. Первоначально я разместил вопрос на случай, если есть более простой способ, о котором я не знал.
#!/bin/bash
aws_profile=('profile1' 'profile2' 'profile3');
#loop AWS profiles
for i in "${aws_profile[@]}"; do
echo "${i}"
buckets=($(aws --profile "${i}" --region your_region s3 ls s3:// --recursive | awk '{print $3}'))
#loop S3 buckets
for j in "${buckets[@]}"; do
echo "${j}"
aws --profile "${i}" --region your_region s3 ls s3://"${j}" --recursive --human-readable --summarize | awk END'{print}'
done
done
Разрешение 2
Использование Dashboards в CloudWatch в консоли AWS.
Затем вы можете просто указать все сегменты S3 и добавить статистику чисел, чтобы показать метрики размера хранилища.
Это не будет стоить вам много вызовов API и может быть значительно быстрее в зависимости от размера сегментов s3 (достаточно времени, чтобы получить размер для очень больших сегментов).
решение суда
Создание Dashboard ( Решение 2 ) для каждой учетной записи AWS было для меня наиболее эффективным вариантом, поскольку для меня гораздо быстрее войти в систему и получить показатели вручную из каждой учетной записи AWS, чем ждать завершения вызовов API сценариев. :(