Obtention des informations d'identification SMTP Amazon SES - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Obtention des informations d'identification SMTP Amazon SES

Vous avez besoin des identifiants SMTP d'Amazon SES pour accéder à l'interface SMTP de SES.

Les informations d'identification que vous utilisez pour envoyer des e-mails via l'interface SMTP de SES sont uniques à chaque AWS région. Si vous utilisez l'interface SMTP SES pour envoyer des e-mails dans plusieurs régions, vous devez générer un ensemble d'informations d'identification d'identification SMTP pour chaque région que vous prévoyez d'utiliser.

Votre mot de passe SMTP est différent de votre clé d'accès AWS secrète. Pour en savoir plus sur les informations d'identification, consultez Types d'informations d'identification Amazon SES.

Note

Les points de terminaison SMTP ne sont actuellement pas disponibles en Afrique (Le Cap), en Asie-Pacifique (Jakarta), en Europe (Milan), en Israël (Tel Aviv) et au Moyen-Orient (Bahreïn).

Obtention d'informations d'identification SMTP SES à l'aide de la console SES

Lorsque vous utilisez le flux de travail SES ci-dessous pour générer des informations d'identification SMTP au moyen de la console, vous êtes dirigé vers la console IAM pour y créer un utilisateur avec les stratégies appropriées à l'appel de SES et les informations d'identification SMTP associées à cet utilisateur vous sont fournies.

Exigence

Un utilisateur IAM peut créer des informations d'identification SMTP SES, mais la stratégie de l'utilisateur doit disposer d'une autorisation d'utilisation d'IAM, car les informations d'identification SMTP SES sont créées via IAM. Votre stratégie IAM doit vous permettre d'exécuter les actions IAM suivantes : iam:ListUsers, iam:CreateUser, iam:CreateAccessKey, et iam:PutUserPolicy. Si vous essayez de créer des informations d'identification SMTP SES à l'aide de la console et que votre utilisateur IAM ne dispose pas de ces autorisations, un message d'erreur indiquant que votre compte n'est « pas autorisé à exécuter iam : » s'affiche. ListUsers

Pour créer vos informations d'identification SMTP
  1. Connectez-vous à la console Amazon SES AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/ses/.

  2. Choisissez SMTP settings (Paramètres SMTP) dans le panneau de navigation de gauche pour ouvrir la page des paramètres du protocole SMTP (Simple Mail Transfer Protocol).

  3. Choisissez Create SMTP Credentials (Création des informations d'identification SMTP) en haut à droite : la console IAM s'ouvre.

  4. (Facultatif) Si vous devez afficher, modifier ou supprimer des utilisateurs SMTP que vous avez déjà créés, choisissez Manage my existing SMTP credentials (Gérer mes informations d'identification SMTP existantes) en bas à droite : la console IAM s'ouvre. Les détails relatifs à la gestion des informations d'identification SMTP sont fournis en suivant ces procédures.

  5. Pour Créer un utilisateur pour SMTP, saisissez un nom d'utilisateur SMTP dans le champ Nom d'utilisateur. Vous pouvez également utiliser la valeur par défaut qui est fourni dans ce champ. Lorsque vous avez terminé, sélectionnez Créer un utilisateur dans le coin inférieur droit.

  6. Sélectionnez Afficher sous Mot de passe SMTP – vos informations d'identification SMTP s'affichent à l'écran.

  7. Téléchargez ces informations d'identification en sélectionnant Télécharger le fichier .csv ou copiez-les et stockez-les en lieu sûr, car vous ne pourrez plus les afficher ou les enregistrer après avoir fermé cette boîte de dialogue.

  8. Choisissez Revenir à la console SES.

Vous pouvez afficher la liste des informations d'identification SMTP que vous avez créées à l'aide de cette procédure dans la console IAM sous Access management (Gestion des accès) et en choisissant Users (Utilisateurs) puis en utilisant la barre de recherche pour trouver tous les utilisateurs auxquels vous avez affecté des informations d'identification SMTP.

Vous pouvez également utiliser la console IAM pour supprimer des utilisateurs SMTP existants. Pour en savoir plus sur la suppression d'utilisateurs, consulte zGestion des utilisateurs IAM dans le Guide de mise en route IAM.

Si vous souhaitez modifier votre mot de passe SMTP, supprimez votre utilisateur SMTP existant dans la console IAM. Ensuite, effectuez les procédures ci-dessus pour générer un nouvel ensemble d'informations d'identification SMTP.

Obtention des informations d'identification SMTP SES en convertissant les informations d'identification existantes AWS

Si vous avez configuré un utilisateur à l'aide de l'interface IAM, vous pouvez déduire les informations d'identification SMTP SES de l'utilisateur à partir de ses AWS informations d'identification.

Important

N'utilisez pas d' AWS informations d'identification temporaires pour obtenir des informations d'identification SMTP. L'interface SMTP SES ne prend pas en charge les informations d'identification SMTP qui ont été générées à partir d'informations d'identification de sécurité temporaires.

Pour permettre à l'utilisateur IAM d'envoyer des e-mails à l'aide de l'interface SMTP SES, procédez de la façon suivante :

  • Dérivez les informations d'identification SMTP de l'utilisateur à partir de ses AWS informations d'identification à l'aide de l'algorithme fourni dans cette section. Comme vous partez des AWS informations d'identification, le nom d'utilisateur SMTP est identique à l'ID de la clé AWS d'accès. Il vous suffit donc de générer le mot de passe SMTP.

  • Appliquez la stratégie suivante à l'utilisateur IAM :

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

    Pour plus d'informations sur l'utilisation de SES avec IAM, consultez Gestion des identités et des accès dans Amazon SES.

Note

Bien que vous puissiez générer des informations d'identification SMTP SES pour tout utilisateur IAM, nous vous recommandons de créer un utilisateur IAM distinct lorsque vous générez vos informations d'identification SMTP. Pour en savoir plus sur les raisons pour lesquelles il est recommandé de créer des utilisateurs à des fins spécifiques, consultez Bonnes pratiques IAM.

Le pseudocode suivant montre l'algorithme qui convertit une clé d'accès AWS secrète en mot de passe SMTP SES.

// 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);

Certains langages de programmation incluent des bibliothèques que vous pouvez utiliser pour convertir une clé d'accès secrète IAM en mot de passe SMTP. Cette section inclut un exemple de code que vous pouvez utiliser pour convertir une clé d'accès AWS secrète en mot de passe SMTP SES à l'aide de Python.

Note

L'exemple suivant utilise des f-strings qui ont été introduites dans Python 3.6 ; si vous utilisez une version plus ancienne, elles ne fonctionneront pas.

Actuellement, le SDK Python (Boto3) prend officiellement en charge les versions 2.7 et 3.6 (ou ultérieures). Cependant, le support pour la version 2.7 est obsolète et sera supprimé le 15/07/2021. Vous devrez donc effectuer une mise à niveau vers la version 3.6 au minimum.

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) ] # 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()

Pour obtenir votre mot de passe SMTP à l'aide de ce script, enregistrez le code précédent en tant que smtp_credentials_generate.py. Exécutez la ligne de commande suivante au moment de l'invite :

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

Dans la commande précédente, procédez comme suit :

  • Remplacez path/to/ (chemin/vers/) par le chemin vers l'emplacement où vous avez enregistré smtp_credentials_generate.py.

  • Remplacez wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY par la clé d'accès secrète que vous souhaitez convertir en mot de passe SMTP.

  • Remplacez us-east-1 par la région dans laquelle vous souhaitez AWS utiliser les informations d'identification SMTP.

Lorsque ce script s'exécute correctement, la seule sortie est votre mot de passe SMTP.