85 lines
2.4 KiB
Bash
Executable File
85 lines
2.4 KiB
Bash
Executable File
#!/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": 90
|
|
},
|
|
"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" |