上記のスクリプトはシェルスクリプトとして保存して使用できます。以下の手順に従ってください。
スクリプトの保存
- テキストエディタで新しいファイルを作成します。
- 以下の内容をファイルにコピーします。
#!/bin/bash
# バケットの一覧を取得
BUCKETS=$(aws s3api list-buckets --query "Buckets[].Name" --output text)
# CSVファイルのヘッダーを設定
echo "BucketName,DaysToExpire" > s3_buckets.csv
# 各バケットに対してライフサイクルルールを取得
for BUCKET in $BUCKETS; do
EXPIRATION_DAYS=$(aws s3api get-bucket-lifecycle-configuration --bucket $BUCKET --query "Rules[].Expiration.Days" --output text 2> /dev/null || echo "None")
echo "$BUCKET,$EXPIRATION_DAYS" >> s3_buckets.csv
done
- ファイル名を
list_s3_buckets.shとして保存します。
スクリプトの実行
- ターミナルを開きます。
- スクリプトが保存されているディレクトリに移動します。
cd /path/to/directory
- スクリプトに実行権限を付与します。
chmod +x list_s3_buckets.sh
- スクリプトを実行します。
./list_s3_buckets.sh
スクリプトの説明
BUCKETS=$(aws s3api list-buckets --query "Buckets[].Name" --output text):
AWS CLI コマンドを使用して、アカウント内のすべてのS3バケットの名前を取得します。echo "BucketName,DaysToExpire" > s3_buckets.csv:
CSVファイルのヘッダーを作成します。for BUCKET in $BUCKETS; do ... done:
各バケットに対してループを実行し、ライフサイクルルールを取得してCSVファイルに追加します。EXPIRATION_DAYS=$(aws s3api get-bucket-lifecycle-configuration --bucket $BUCKET --query "Rules[].Expiration.Days" --output text 2> /dev/null || echo "None"):
特定のバケットに対してライフサイクルルールを取得し、設定がない場合はNoneとして扱います。
結果の確認
スクリプトが実行されると、現在のディレクトリに s3_buckets.csv ファイルが作成されます。このファイルには、各バケットの名前と設定されたライフサイクルルールの保管期間が記載されています。CSVファイルを開いてデータを確認してください。

コメント