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