Ottenere le SES SMTP credenziali Amazon - Amazon Simple Email Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottenere le SES SMTP credenziali Amazon

Per accedere all'SESSMTPinterfaccia sono necessarie SES SMTP le credenziali Amazon.

Le credenziali che usi per inviare e-mail tramite l'SESSMTPinterfaccia sono uniche per ogni AWS regione. Se si utilizza l'SESSMTPinterfaccia per inviare e-mail in più di una regione, è necessario generare un set di SMTP credenziali per ogni regione che si intende utilizzare.

La tua SMTP password è diversa dalla tua chiave di accesso AWS segreta. Per ulteriori informazioni sulle credenziali, consulta Tipi di credenziali Amazon SES.

Nota

SMTPgli endpoint non sono attualmente disponibili in Africa (Città del Capo), Asia Pacifico (Giacarta), Europa (Milano), Israele (Tel Aviv) e Medio Oriente (Bahrain).

Ottenere SES SMTP le credenziali tramite la console SES

Quando si utilizza il SES flusso di lavoro riportato di seguito per generare SMTP credenziali utilizzando la console, si accede alla IAM console per creare un utente con le politiche appropriate da chiamare SES e fornisce le SMTP credenziali associate a tale utente.

Requisito

Un IAM utente può creare SES SMTP credenziali, ma la politica dell'utente deve autorizzarlo a utilizzare IAM se stessa, poiché SES SMTP le credenziali vengono create utilizzando. IAM La IAM politica deve consentire di eseguire le seguenti IAM azioni:iam:ListUsers, iam:CreateUseriam:CreateAccessKey, e. iam:PutUserPolicy Se provi a creare SES SMTP credenziali utilizzando la console e IAM l'utente non dispone di queste autorizzazioni, viene visualizzato un errore che indica che il tuo account è «non autorizzato a eseguire iam:ListUsers».

Per creare le tue credenziali SMTP
  1. Accedi a AWS Management Console e apri la SES console Amazon all'indirizzo https://console.aws.amazon.com/ses/.

  2. Scegli SMTPle impostazioni nel riquadro di navigazione a sinistra: si aprirà la pagina delle impostazioni del Simple Mail Transfer Protocol (SMTP).

  3. Scegli Crea SMTP credenziali nell'angolo in alto a destra: la IAM console si aprirà.

  4. (Facoltativo) Se devi visualizzare, modificare o eliminare SMTP gli utenti che hai già creato, scegli Gestisci le mie SMTP credenziali esistenti nell'angolo in basso a destra: la console si aprirà. IAM I dettagli per la gestione delle SMTP credenziali vengono forniti seguendo queste procedure.

  5. Per Crea utente per SMTP, digita un nome per il tuo SMTP utente nel campo Nome utente. In alternativa, puoi utilizzare il valore predefinito che viene fornito in questo campo. Al termine, scegli Crea nell'angolo in basso a destra.

  6. Seleziona Mostra sotto SMTPpassword: SMTP le tue credenziali vengono visualizzate sullo schermo.

  7. Scarica queste credenziali scegliendo Scarica credenziali o copiale e archiviale in un luogo sicuro, poiché non puoi visualizzarle o salvarle dopo aver chiuso questa finestra di dialogo.

  8. Scegli Torna alla SES console.

Puoi visualizzare un elenco delle SMTP credenziali che hai creato utilizzando questa procedura nella IAM console in Gestione degli accessi e scegliendo Utenti, quindi utilizzando la barra di ricerca per trovare tutti gli utenti a cui hai assegnato SMTP credenziali.

Puoi anche utilizzare la IAM console per eliminare gli utenti esistentiSMTP. Per ulteriori informazioni sull'eliminazione degli utenti, consulta la sezione Gestione IAM degli utenti nella Guida IAM introduttiva.

Se desideri modificare la SMTP password, elimina SMTP l'utente esistente nella IAM console. Quindi, per generare un nuovo set di SMTP credenziali, completa le procedure precedenti.

Ottenere SES SMTP credenziali convertendo le credenziali esistenti AWS

Se disponi di un utente configurato utilizzando l'IAMinterfaccia, puoi ricavare le SES SMTP credenziali dell'utente dalle sue credenziali. AWS

Importante

Non utilizzare AWS credenziali temporanee per derivare credenziali. SMTP L'SESSMTPinterfaccia non supporta SMTP credenziali generate da credenziali di sicurezza temporanee.

Per consentire all'IAMutente di inviare e-mail utilizzando l'SESSMTPinterfaccia, procedi come segue.

  • Ricava le SMTP credenziali dell'utente dalle relative AWS credenziali utilizzando l'algoritmo fornito in questa sezione. Poiché parti dalle AWS credenziali, il nome SMTP utente è lo stesso dell'ID della chiave di AWS accesso, quindi devi solo generare la password. SMTP

  • Applica la seguente politica all'IAMutente:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }

    Per ulteriori informazioni sull'utilizzo SES conIAM, vedereIdentity and Access Management in Amazon SES.

Nota

Sebbene sia possibile generare SES SMTP credenziali per qualsiasi IAM utente, si consiglia di creare un IAM utente separato quando si generano le SMTP credenziali. Per informazioni sui motivi per cui è consigliabile creare utenti per scopi specifici, consulta IAMBest Practices.

Lo pseudocodice seguente mostra l'algoritmo che converte una chiave di accesso AWS segreta in una password. SES SMTP

// Modify this variable to include your AWS secret access key key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"; // Modify this variable to refer to the AWS Region that you want to use to send email. region = "us-west-2"; // The values of the following variables should always stay the same. date = "11111111"; service = "ses"; terminal = "aws4_request"; message = "SendRawEmail"; version = 0x04; kDate = HmacSha256(date, "AWS4" + key); kRegion = HmacSha256(region, kDate); kService = HmacSha256(service, kRegion); kTerminal = HmacSha256(terminal, kService); kMessage = HmacSha256(message, kTerminal); signatureAndVersion = Concatenate(version, kMessage); smtpPassword = Base64(signatureAndVersion);

Alcuni linguaggi di programmazione includono librerie che è possibile utilizzare per convertire una chiave di accesso IAM segreta in una password. SMTP Questa sezione include un esempio di codice che puoi usare per convertire una chiave di accesso AWS segreta in una SES SMTP password usando Python.

Nota

Il seguente esempio usa stringhe f introdotte in Python 3.6; con una versione precedente non funzioneranno.

Attualmente, Python SDK (Boto3) supporta ufficialmente 2.7 e 3.6 (o versioni successive). Tuttavia, il supporto per la versione 2.7 è obsoleto e verrà eliminato il 15/7/2021, quindi sarà necessario eseguire l'aggiornamento almeno alla versione 3.6.

Python
#!/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) "eu-south-1", # Europe (Milan) "eu-north-1", # Europe (Stockholm) "sa-east-1", # South America (Sao Paulo) "us-gov-west-1", # AWS GovCloud (US) "us-gov-east-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 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()

Per ottenere la SMTP password utilizzando questo script, salvate il codice precedente con nome. smtp_credentials_generate.py Quindi, nella riga di comando eseguire il comando riportato di seguito:

python path/to/smtp_credentials_generate.py wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY us-east-1

Nel comando precedente, procedi come segue.

  • Replace (Sostituisci) path/to/ con il percorso della posizione in cui hai salvatosmtp_credentials_generate.py.

  • Replace (Sostituisci) wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY con la chiave di accesso segreta che vuoi convertire in password. SMTP

  • Replace (Sostituisci) us-east-1 con la AWS Regione in cui desideri utilizzare le SMTP credenziali.

Quando questo script viene eseguito correttamente, l'unico risultato è la SMTP password.