Comment Amazon Simple Email Service (Amazon SES) utilise AWS KMS - AWS Key Management 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.

Comment Amazon Simple Email Service (Amazon SES) utilise AWS KMS

Vous pouvez utiliser Amazon Simple Email Service (Amazon SES) pour recevoir des e-mails et (éventuellement) pour chiffrer les messages électroniques reçus avant de les stocker dans un compartiment Amazon Simple Storage Service (Amazon S3) de votre choix. Lorsque vous configurez Amazon SES pour chiffrer des messages électroniques, vous devez choisir la AWS KMS key AWS KMS sous laquelle Amazon SES chiffrera les messages. Vous pouvez choisir la Clé gérée par AWS pour Amazon SES (son alias est aws/ses), ou vous pouvez choisir une clé gérée par le client que vous avez créée dans AWS KMS.

Important

Amazon SES prend uniquement en charge les clés KMS symétriques. Vous ne pouvez pas utiliser une clé KMS asymétrique pour chiffrer vos messages électroniques Amazon SES. Pour obtenir de l'aide sur la détermination de la symétrie ou de l'asymétrie d'une clé KMS, veuillez consulter Identification des clés KMS asymétriques.

Pour en savoir plus sur la réception d'e-mails à l'aide d'Amazon SES, veuillez consulter Réception d'e-mails avec Amazon SES dans le Guide du développeur Amazon Simple Email Service.

Présentation du chiffrement Amazon SES à l'aide d'AWS KMS

Lorsque vous configurez Amazon SES pour recevoir des e-mails et chiffrer les e-mails avant de les enregistrer dans votre compartiment S3, le processus fonctionne comme suit :

  1. Vous créez une règle de réception pour Amazon SES, en spécifiant l'action S3, un compartiment S3 pour le stockage et une AWS KMS key pour le chiffrement.

  2. Amazon SES reçoit un e-mail qui correspond à votre règle de réception.

  3. Amazon SES demande une clé de données unique chiffrée avec la clé KMS que vous avez spécifiée dans la règle de réception applicable.

  4. AWS KMS crée une nouvelle clé de données, la chiffre avec la clé KMS spécifiée, puis envoie les copies chiffrées et en texte brut de la clé de données à Amazon SES.

  5. Amazon SES utilise la clé de données en texte brut pour chiffrer le message électronique, puis supprime la clé de données en texte brut de la mémoire dès que possible après usage.

  6. Amazon SES place le message électronique chiffré et la clé de données chiffrée dans le compartiment S3 spécifié. La clé de données chiffrée est stockée sous forme de métadonnées avec le message électronique chiffré.

Pour accomplir Étape 3 via Étape 6, Amazon SES utilise le client de chiffrement Amazon S3 fourni par AWS. Utilisez le même client pour récupérer vos messages électroniques chiffrés à partir d'Amazon S3 et les déchiffrer. Pour plus d’informations, consultez Récupération et déchiffrement des messages électroniques.

Contexte du chiffrement Amazon SES

Quand Amazon SES demande une clé de données pour chiffrer les e-mails que vous avez reçus (Étape 3 dans Présentation du chiffrement Amazon SES à l'aide d'AWS KMS), il inclut le contexte de chiffrement dans la demande. Le contexte de chiffrement fournit des données authentifiées supplémentaires (AAD) qu'AWS KMS utilise pour garantir l'intégrité des données. Le contexte de chiffrement est également écrit dans les fichiers journaux AWS CloudTrail qui vous aident à comprendre pourquoi une AWS KMS key (clé KMS) donnée a été utilisée. Amazon SES utilise le contexte de chiffrement suivant :

  • L'ID du Compte AWS dans lequel vous avez configuré Amazon SES pour recevoir les messages électroniques

  • Le nom de la règle de réception Amazon SES qui a appelé l'action S3 sur le message électronique

  • L'ID de message Amazon SES pour le message électronique

L'exemple suivant montre une représentation JSON du contexte de chiffrement qu'Amazon SES utilise :

{ "aws:ses:source-account": "111122223333", "aws:ses:rule-name": "example-receipt-rule-name", "aws:ses:message-id": "d6iitobk75ur44p8kdnnp7g2n800" }

Autoriser Amazon SES à utiliser votre AWS KMS key

Pour chiffrer vos messages électroniques, vous pouvez utiliser la Clé gérée par AWS dans votre compte pour Amazon SES (aws/ses) ou une clé gérée par le client que vous créez. Amazon SES a déjà l'autorisation d'utiliser la Clé gérée par AWS en votre nom. Toutefois, si vous spécifiez une clé gérée par le client lorsque vous ajoutez l'action S3 à votre règle de réception Amazon SES, vous devez autoriser Amazon SES à utiliser la clé KMS pour chiffrer vos messages électroniques.

Pour accorder à Amazon SES l'autorisation d'utiliser votre clé gérée par le client, ajoutez l'instruction suivante à la politique de clé de votre clé KMS :

{ "Sid": "Allow SES to encrypt messages using this KMS key", "Effect": "Allow", "Principal": {"Service": "ses.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:ses:rule-name": false, "kms:EncryptionContext:aws:ses:message-id": false }, "StringEquals": {"kms:EncryptionContext:aws:ses:source-account": "ACCOUNT-ID-WITHOUT-HYPHENS"} } }

Remplacez ACCOUNT-ID-WITHOUT-HYPHENS par l'ID à 12 chiffres du Compte AWS dans lequel vous avez configuré Amazon SES pour recevoir les messages électroniques. Cette instruction de politique autorise Amazon SES à chiffrer les données avec cette clé KMS uniquement dans les conditions suivantes :

  • Amazon SES doit spécifier aws:ses:rule-name et aws:ses:message-id dans le contexte EncryptionContext de leurs demandes d'API AWS KMS.

  • Amazon SES doit spécifier aws:ses:source-account dans le contexte EncryptionContext de leurs demandes d'API AWS KMS, et la valeur pour aws:ses:source-account doit correspondre à l'ID de Compte AWS spécifié dans la politique de clé.

Pour plus d'informations sur le contexte de chiffrement utilisé par Amazon SES lors du chiffrement de vos e-mails, veuillez consulter Contexte du chiffrement Amazon SES. Pour obtenir des informations générales sur la façon dont AWS KMS utilise le contexte de chiffrement, consultez le contexte de chiffrement.

Récupération et déchiffrement des messages électroniques

Amazon SES n'a pas l'autorisation de déchiffrer vos messages électroniques chiffrés et ne peut pas les déchiffrer pour vous. Vous devez écrire du code pour récupérer vos e-mails depuis Amazon S3 et les déchiffrer. Pour simplifier cette opération, utilisez le client de chiffrement Amazon S3. Les kits SDK AWS suivants incluent le client de chiffrement Amazon S3 :

Le client de chiffrement Amazon S3 simplifie le travail d'élaboration des demandes nécessaires adressées à Amazon S3 pour récupérer le message électronique chiffré et adressées à AWS KMS pour déchiffrer la clé de données chiffrée du message, et le travail de déchiffrement du message électronique. Par exemple, pour déchiffrer avec succès la clé de données chiffrée, vous devez transmettre le même contexte de chiffrement que celui transmis par Amazon SES lors de la demande de la clé de données à partir d'AWS KMS (Étape 3 dans Présentation du chiffrement Amazon SES à l'aide d'AWS KMS). Le client de chiffrement Amazon S3 gère cela et une grande partie des autres tâches pour vous.

Pour voir un exemple de code qui utilise le client de chiffrement Amazon S3 dans le kit AWS SDK for Java pour effectuer le déchiffrement côté client, veuillez consulter :