From 1936646b2051c7daff3eaddedab8cc656ed68759 Mon Sep 17 00:00:00 2001 From: Andreas Knuth Date: Thu, 21 May 2026 10:28:47 -0500 Subject: [PATCH] Bucket Tagging --- basic_setup/awss3.sh | 8 ++++++++ basic_setup/sync-s3-tags.sh | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 basic_setup/sync-s3-tags.sh diff --git a/basic_setup/awss3.sh b/basic_setup/awss3.sh index d1e5fd0..b35c46e 100755 --- a/basic_setup/awss3.sh +++ b/basic_setup/awss3.sh @@ -76,6 +76,14 @@ aws s3api put-bucket-policy \ ] }' +# ------------------------ +# Cost Allocation Tags setzen +# ------------------------ +echo "Setze Cost Allocation Tag (BucketName)..." +aws s3api put-bucket-tagging \ + --bucket ${S3_BUCKET_NAME} \ + --tagging "TagSet=[{Key=BucketName,Value=${S3_BUCKET_NAME}}]" + echo "S3 Bucket $S3_BUCKET_NAME wurde erfolgreich erstellt und konfiguriert." echo "Bucket-ARN: arn:aws:s3:::$S3_BUCKET_NAME" diff --git a/basic_setup/sync-s3-tags.sh b/basic_setup/sync-s3-tags.sh new file mode 100755 index 0000000..b0384bd --- /dev/null +++ b/basic_setup/sync-s3-tags.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# sync-s3-tags.sh - Synchronisiert Bucket Tags welche fuer die Abrechung verwendet werden +echo "Passe Bucket-Tags an..." + +for BUCKET in $(aws s3api list-buckets --query 'Buckets[].Name' --output text); do + # Aktuellen Tag abfragen (Fehler unterdrücken) + TAG=$(aws s3api get-bucket-tagging --bucket "$BUCKET" --query 'TagSet[?Key==`BucketName`].Value' --output text 2>/dev/null) + + # Prüfen, ob der Name auf '-emails' endet + if [[ "$BUCKET" == *-emails ]]; then + # Soll getaggt sein + if [ -z "$TAG" ] || [ "$TAG" == "None" ]; then + echo "➕ Setze fehlendes Tag für: $BUCKET" + aws s3api put-bucket-tagging \ + --bucket "$BUCKET" \ + --tagging "TagSet=[{Key=BucketName,Value=$BUCKET}]" + else + echo "✅ OK (bereits getaggt): $BUCKET" + fi + else + # Soll NICHT getaggt sein + if [ -n "$TAG" ] && [ "$TAG" != "None" ]; then + echo "🗑️ Entferne Tag von: $BUCKET" + aws s3api delete-bucket-tagging --bucket "$BUCKET" + else + echo "✅ OK (ohne Tag): $BUCKET" + fi + fi +done + +echo "Fertig! Alle '-emails' Buckets sind getaggt, bei allen anderen wurden die Tags entfernt." \ No newline at end of file