#!/bin/bash # awss3.sh - Erstellt einen S3-Bucket für Amazon SES E-Mail-Speicherung # Überprüfen, ob die Domain-Variable gesetzt ist if [ -z "$DOMAIN_NAME" ]; then echo "Fehler: DOMAIN_NAME ist nicht gesetzt." echo "Bitte setzen Sie die Variable mit: export DOMAIN_NAME='IhreDomain.de'" exit 1 fi # Konfiguration AWS_REGION=${AWS_REGION:-"us-east-2"} EMAIL_PREFIX=${EMAIL_PREFIX:-"emails/"} S3_BUCKET_NAME=$(echo "$DOMAIN_NAME" | tr '.' '-' | awk '{print $0 "-emails"}') echo "=== S3 Bucket Configuration für $DOMAIN_NAME ===" echo "Region: $AWS_REGION" echo "Bucket-Name: $S3_BUCKET_NAME" echo "E-Mail-Präfix: $EMAIL_PREFIX" # ------------------------ # S3 Bucket erstellen # ------------------------ echo "S3 Bucket erstellen..." aws s3api create-bucket \ --bucket ${S3_BUCKET_NAME} \ --region ${AWS_REGION} \ --create-bucket-configuration LocationConstraint=${AWS_REGION} # Öffentlichen Zugriff blockieren echo "Öffentlichen Zugriff blockieren..." aws s3api put-public-access-block \ --bucket ${S3_BUCKET_NAME} \ --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true" # Lebenszyklus-Konfiguration hinzufügen echo "Lebenszyklus-Konfiguration hinzufügen (E-Mails werden nach 90 Tagen gelöscht)..." aws s3api put-bucket-lifecycle-configuration \ --bucket ${S3_BUCKET_NAME} \ --lifecycle-configuration '{ "Rules": [ { "ID": "DeleteOldEmails", "Status": "Enabled", "Expiration": { "Days": 30 }, "Filter": { "Prefix": "" } } ] }' echo "S3 Bucket Policy hinzufügen für SES-Zugriff..." aws s3api put-bucket-policy \ --bucket ${S3_BUCKET_NAME} \ --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::'${S3_BUCKET_NAME}'", "arn:aws:s3:::'${S3_BUCKET_NAME}'/*" ] } ] }' echo "S3 Bucket $S3_BUCKET_NAME wurde erfolgreich erstellt und konfiguriert." echo "Bucket-ARN: arn:aws:s3:::$S3_BUCKET_NAME" # Exportiere Variablen für andere Scripte echo echo "Für die Verwendung in den anderen Scripten setzen Sie:" echo "export S3_BUCKET_NAME=$S3_BUCKET_NAME"