Come posso ruotare le mie chiavi di accesso per un utente IAM SMTP di SES esistente?
Desidero ruotare le mie credenziali Simple Mail Transfer Protocol (SMTP) di Amazon Simple Email Service (Amazon SES) in AWS Identity and Access Management (AWS IAM).
Risoluzione
Le chiavi di accesso che crei nella console IAM funzionano quando ti connetti all'endpoint Amazon SES. Non funzionano invece con l'interfaccia SMTP di SES. Questo perché le chiavi hanno un formato diverso da quello richiesto per le credenziali SMTP.
Per far funzionare le chiavi di accesso con l'interfaccia SMTP di SES, puoi creare nuove credenziali SMTP di SES. In alternativa, puoi anche convertire la chiave di accesso segreta esistente in credenziali SMTP.
Importante: è consigliabile creare nuove credenziali SMTP di SES anziché convertire la chiave di accesso segreta esistente in credenziali SMTP.
Crea nuove credenziali SMTP di SES (best practice)
Utilizza la console Amazon SES per creare nuove credenziali SMTP di SES.
Nota: dopo aver ottenuto le nuove credenziali SMTP di SES, puoi rimuovere o disattivare l'utente IAM se non ti serve.
Converti la chiave di accesso segreta esistente in credenziali SMTP
Nota: per completare questi passaggi, devi utilizzare Python versione 3 o successiva.
Completa i seguenti passaggi:
-
Aggiorna la policy dell'utente IAM esistente per concedere l'autorizzazione per ses:SendRawEmail.
-
Incolla il seguente codice Python in un editor di testo, quindi salva il file come 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() -
Esegui questo script Python:
python3 seskey.py YOURKEYrrpg/JHpyvtStUVcAV9177EAKKmDP37P your-regionNota: sostituisci YOURKEYrrpg con la tua chiave di accesso segreta esistente e your-region con la Regione AWS in cui utilizzi la password SMTP.
Nell'output dello script, c'è una nuova password SMTP che puoi utilizzare con l'interfaccia SMTP di SES. -
Salva le nuove credenziali SMTP in modo sicuro nell'applicazione per autenticarti sugli endpoint SMTP di SES.
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 7 mesi fa