Wie rotiere ich meine Zugangsschlüssel für einen vorhandenen SES SMTP IAM-Benutzer?
Ich möchte meine Simple Mail Transfer Protocol-Anmeldeinformationen (SMTP) für Amazon Simple Email Service (Amazon SES) in AWS Identity and Access Management (IAM) rotieren.
Lösung
Die Zugriffsschlüssel, die du in der IAM-Konsole erstellst, funktionieren, wenn du eine Verbindung zum Amazon SES-Endpunkt herstellst. Die Zugriffsschlüssel funktionieren jedoch nicht mit der SES-SMTP-Schnittstelle. Dies liegt daran, dass die Schlüssel ein anderes Format haben als das, was für die SMTP-Anmeldeinformationen erforderlich ist.
Damit die Zugriffsschlüssel mit der SES-SMTP-Schnittstelle funktionieren, kannst du neue SES-SMTP-Anmeldeinformationen erstellen. Du kannst den vorhandenen geheimen Zugriffsschlüssel auch in SMTP-Anmeldeinformationen konvertieren.
Wichtig: Es hat sich bewährt, neue SES-SMTP-Anmeldeinformationen zu erstellen, anstatt den vorhandenen geheimen Zugriffsschlüssel in SMTP-Anmeldeinformationen umzuwandeln.
Neue SES-SMTP-Anmeldeinformationen erstellen (Bewährte Methoden)
Verwende die Amazon SES-Konsole, um neue SES-SMTP-Anmeldeinformationen zu erstellen.
Hinweis: Nachdem du die neuen SES-SMTP-Anmeldeinformationen erhalten hast, kannst du den IAM-Benutzer entfernen oder deaktivieren, wenn du den Benutzer nicht benötigst.
Vorhandenen geheimen Zugriffsschlüssel in SMTP-Anmeldeinformationen umwandeln
Hinweis: Um diese Schritte auszuführen, musst du Python Version 3 oder höher verwenden.
Führe die folgenden Schritte aus:
-
Aktualisiere die Richtlinie des vorhandenen IAM-Benutzers, um die permission for ses:SendRawEmail zu gewähren.
-
Füge den folgenden Python-Code in einen Texteditor ein und speichere die Datei dann unter dem Namen seskey.py.
#!/usr/bin/env python3 import hmac import hashlib import base64 import argparse SMTP_REGIONS = [ 'us-east-2', # US East (Ohio) 'us-east-1', # US East (N. Virginia) 'us-west-2', # US West (Oregon) 'ap-south-1', # Asia Pacific (Mumbai) 'ap-northeast-2', # Asia Pacific (Seoul) 'ap-southeast-1', # Asia Pacific (Singapore) 'ap-southeast-2', # Asia Pacific (Sydney) 'ap-northeast-1', # Asia Pacific (Tokyo) 'ca-central-1', # Canada (Central) 'eu-central-1', # Europe (Frankfurt) 'eu-west-1', # Europe (Ireland) 'eu-west-2', # Europe (London) 'sa-east-1', # South America (Sao Paulo) 'us-gov-west-1', # AWS GovCloud (US) ] # These values are required to calculate the signature. Do not change them. DATE = "11111111" SERVICE = "ses" MESSAGE = "SendRawEmail" TERMINAL = "aws4_request" VERSION = 0x04 def sign(key, msg): return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest() def calculate_key(secret_access_key, region): if region not in SMTP_REGIONS: raise ValueError(f"The {region} Region doesn't have an SMTP endpoint.") signature = sign(("AWS4" + secret_access_key).encode('utf-8'), DATE) signature = sign(signature, region) signature = sign(signature, SERVICE) signature = sign(signature, TERMINAL) signature = sign(signature, MESSAGE) signature_and_version = bytes([VERSION]) + signature smtp_password = base64.b64encode(signature_and_version) return smtp_password.decode('utf-8') def main(): parser = argparse.ArgumentParser( description='Convert a Secret Access Key for an IAM user to an SMTP password.') parser.add_argument( 'secret', help='The Secret Access Key to convert.') parser.add_argument( 'region', help='The AWS Region where the SMTP password will be used.', choices=SMTP_REGIONS) args = parser.parse_args() print(calculate_key(args.secret, args.region)) if __name__ == '__main__': main() -
Führe das folgende Python-Skript aus:
python3 seskey.py YOURKEYrrpg/JHpyvtStUVcAV9177EAKKmDP37P your-regionHinweis: Ersetze YOURKEYrrpg durch den vorhandenen geheimen Zugriffsschlüssel und your-region durch die AWS-Region, in der du das SMTP-Passwort verwendest.
In der Skriptausgabe gibt es ein neues SMTP-Passwort, das du mit der SES-SMTP-Schnittstelle verwenden kannst. -
Speichere die neuen SMTP-Anmeldeinformationen sicher in der Anwendung, um sich bei den SES-SMTP-Endpunkten zu authentifizieren.
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr