new aws scripts
This commit is contained in:
@@ -12,7 +12,7 @@ S3_BUCKET_NAME=$(echo "$DOMAIN_NAME" | tr '.' '-' | awk '{print $0 "-emails"}')
|
||||
RULE_NAME="store-$(echo "$DOMAIN_NAME" | tr '.' '-')-to-s3"
|
||||
|
||||
# ------------------------
|
||||
# 1. S3 Bucket erstellen
|
||||
# S3 Bucket erstellen
|
||||
# ------------------------
|
||||
echo "S3 Bucket erstellen..."
|
||||
aws s3api create-bucket \
|
||||
@@ -68,7 +68,7 @@ aws s3api put-bucket-policy \
|
||||
}'
|
||||
|
||||
# ------------------------
|
||||
# 2. SES Domain-Identität erstellen
|
||||
# SES Domain-Identität erstellen
|
||||
# ------------------------
|
||||
echo "SES Domain-Identität erstellen..."
|
||||
aws sesv2 create-email-identity \
|
||||
@@ -88,9 +88,6 @@ aws sesv2 put-email-identity-mail-from-attributes \
|
||||
--behavior-on-mx-failure USE_DEFAULT_VALUE \
|
||||
--region ${AWS_REGION}
|
||||
|
||||
# --------------------------
|
||||
# Receive Emails
|
||||
# -------------------------
|
||||
# 3. Receipt Rule Set erstellen
|
||||
echo "Receipt Rule for bizmatch ruleset erstellen..."
|
||||
|
||||
@@ -107,31 +104,46 @@ aws ses create-receipt-rule --rule-set-name "bizmatch-ruleset" --rule '{
|
||||
"TlsPolicy": "Require"
|
||||
}'
|
||||
|
||||
|
||||
# --------------------------
|
||||
# IAM-User erstellen
|
||||
# -------------------------
|
||||
USER_NAME="${DOMAIN_NAME//./-}-ses-user" # Ersetzt Punkte durch Bindestriche für validen IAM-Username
|
||||
|
||||
# 1. IAM-User erstellen
|
||||
NODE_SCRIPT_PATH="./generate_ses_smtp_password.js"
|
||||
# Prüfen, ob das Node.js-Script existiert
|
||||
if [ ! -f "$NODE_SCRIPT_PATH" ]; then
|
||||
echo "Fehler: Das Node.js-Script '$NODE_SCRIPT_PATH' wurde nicht gefunden."
|
||||
echo "Bitte stelle sicher, dass das Script im angegebenen Pfad existiert."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Erstelle IAM-User: $USER_NAME"
|
||||
aws iam create-user --user-name $USER_NAME
|
||||
|
||||
# 2. Policy-Dokument für SES-Vollzugriff erstellen
|
||||
POLICY_NAME="${USER_NAME}-SendRawEmailPolicy"
|
||||
POLICY_DOCUMENT='{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Effect": "Allow",
|
||||
"Action": [
|
||||
"ses:*"
|
||||
],
|
||||
"Action": "ses:SendRawEmail",
|
||||
"Resource": "*"
|
||||
}
|
||||
]
|
||||
}'
|
||||
echo "Erstelle benutzerdefinierte Policy für SES SendRawEmail"
|
||||
POLICY_ARN=$(aws iam create-policy \
|
||||
--policy-name $POLICY_NAME \
|
||||
--policy-document "$POLICY_DOCUMENT" \
|
||||
--query 'Policy.Arn' \
|
||||
--output text)
|
||||
|
||||
# 3. Option 1: Managed Policy AmazonSESFullAccess anhängen
|
||||
echo "Hänge AmazonSESFullAccess Policy an"
|
||||
echo "Hänge Policy an: $POLICY_ARN"
|
||||
aws iam attach-user-policy \
|
||||
--user-name $USER_NAME \
|
||||
--policy-arn arn:aws:iam::aws:policy/AmazonSESFullAccess
|
||||
--policy-arn $POLICY_ARN
|
||||
|
||||
# 4. Access Key und Secret Key für den User erstellen
|
||||
echo "Erstelle Access Key für den User: $USER_NAME"
|
||||
@@ -148,4 +160,50 @@ SECRET_KEY=$(echo "$KEY_OUTPUT" | jq -r .AccessKey.SecretAccessKey)
|
||||
echo "ACCESS_KEY: $ACCESS_KEY"
|
||||
echo "SECRET_KEY: $SECRET_KEY"
|
||||
|
||||
echo "WICHTIG: Speichere den Secret Key jetzt, da er später nicht mehr abgerufen werden kann!"
|
||||
echo "WICHTIG: Speichere den Secret Key jetzt, da er später nicht mehr abgerufen werden kann!"
|
||||
# --------------------------
|
||||
# SMTP Passwort generieren
|
||||
# --------------------------
|
||||
echo -e "\nGeneriere SMTP-Passwort für Region $AWS_REGION..."
|
||||
|
||||
# Führe das Node.js-Script aus, um das SMTP-Passwort zu generieren
|
||||
SMTP_PASSWORD=$(node "$NODE_SCRIPT_PATH" "$SECRET_KEY" "$AWS_REGION")
|
||||
|
||||
# Prüfen, ob die Ausführung erfolgreich war
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Fehler bei der Generierung des SMTP-Passworts. Bitte überprüfe das Node.js-Script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# SMTP-Benutzername ist der Access Key
|
||||
SMTP_USERNAME="$ACCESS_KEY"
|
||||
|
||||
# Ausgabe der SMTP-Anmeldeinformationen
|
||||
echo -e "\nSMTP-Anmeldeinformationen für Amazon SES in Region $AWS_REGION:"
|
||||
echo "--------------------------------------------------------------"
|
||||
echo "SMTP-Server: email-smtp.$AWS_REGION.amazonaws.com"
|
||||
echo "SMTP-Port: 587 (TLS) oder 465 (SSL)"
|
||||
echo "SMTP-Benutzername: $SMTP_USERNAME"
|
||||
echo "SMTP-Passwort: $SMTP_PASSWORD"
|
||||
|
||||
# Speichere die Anmeldeinformationen in einer Datei
|
||||
echo -e "\nSpeichere SMTP-Anmeldeinformationen in ses_smtp_credentials.txt"
|
||||
cat > "ses_smtp_credentials.txt" << EOF
|
||||
SMTP-Server: email-smtp.$AWS_REGION.amazonaws.com
|
||||
SMTP-Port: 587 (TLS) oder 465 (SSL)
|
||||
SMTP-Benutzername: $SMTP_USERNAME
|
||||
SMTP-Passwort: $SMTP_PASSWORD
|
||||
EOF
|
||||
|
||||
# Hinweise für die weitere Konfiguration
|
||||
echo -e "\nHinweise:"
|
||||
echo "1. Stellen Sie sicher, dass Ihre Domains in Amazon SES verifiziert sind."
|
||||
echo "2. Bei Bedarf beantragen Sie die Aufhebung der SES-Sandbox-Einschränkungen."
|
||||
echo "3. Für SMTP-Anwendungen verwenden Sie die SMTP-Anmeldeinformationen (nicht die IAM-Zugangsdaten)."
|
||||
|
||||
# Format für .env-Datei
|
||||
echo -e "\nFür .env-Datei:"
|
||||
echo "AWS_SES_SMTP_USERNAME=$SMTP_USERNAME"
|
||||
echo "AWS_SES_SMTP_PASSWORD=$SMTP_PASSWORD"
|
||||
echo "AWS_SES_SMTP_HOST=email-smtp.$AWS_REGION.amazonaws.com"
|
||||
echo "AWS_SES_SMTP_PORT=587"
|
||||
Reference in New Issue
Block a user