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.
Rubriques
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 :
-
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.
-
Amazon SES reçoit un e-mail qui correspond à votre règle de réception.
-
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.
-
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.
-
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.
-
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
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 :ACCOUNT-ID-WITHOUT-HYPHENS
-
Amazon SES doit spécifier
aws:ses:rule-name
etaws:ses:message-id
dans le contexteEncryptionContext
de leurs demandes d'API AWS KMS. -
Amazon SES doit spécifier
aws:ses:source-account
dans le contexteEncryptionContext
de leurs demandes d'API AWS KMS, et la valeur pouraws: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 :
-
AWS SDK for Java
– Veuillez consulter AmazonS3EncryptionClient et AmazonS3EncryptionClientV2 dans la Référence d'API AWS SDK for Java. -
AWS SDK for Ruby
– Veuillez consulter Aws::S3::Encryption::Client dans la Référence d'API AWS SDK for Ruby. -
AWS SDK for .NET
– Veuillez consulter AmazonS3EncryptionClient dans la Référence d'API AWS SDK for .NET. -
AWS SDK for Go
– Veuillez consulter s3crypto dans la Référence d'API AWS SDK for Go.
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 :
-
Utilisation d'une clé KMS stockée dans AWS KMS dans le guide du développeur Amazon Simple Storage Service.
-
Chiffrement Amazon S3 avec AWS Key Management Service
dans le Blog des développeurs AWS.