Journalisation des appels d'API Amazon SES avec AWS CloudTrail - 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.

Journalisation des appels d'API Amazon SES avec AWS CloudTrail

Amazon SES est intégré à AWS CloudTrail un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un AWS service dans SES. CloudTrail capture les appels d'API pour SES sous forme d'événements. Les appels capturés incluent des appels provenant de la console SES et des appels de code vers les opérations de l'API SES. Si vous créez un suivi, vous pouvez activer la diffusion continue d' CloudTrail événements vers un compartiment Amazon S3, y compris des événements pour SES. Si vous ne configurez pas de suivi, vous pouvez toujours consulter les événements les plus récents dans la CloudTrail console dans Historique des événements. À l'aide des informations collectées par CloudTrail, vous pouvez déterminer la demande qui a été faite à SES, l'adresse IP à partir de laquelle la demande a été faite, l'auteur de la demande, la date à laquelle elle a été faite et des informations supplémentaires.

Pour en savoir plus CloudTrail, notamment comment le configurer et l'activer, consultez le guide de AWS CloudTrail l'utilisateur.

Informations SES dans CloudTrail

CloudTrail est activé sur votre compte Compte AWS lorsque vous créez le compte. Lorsqu'une activité événementielle prise en charge se produit dans SES, cette activité est enregistrée dans un CloudTrail événement avec d'autres événements de AWS service dans l'historique des événements. Vous pouvez consulter, rechercher et télécharger les événements récents dans votre Compte AWS. Pour plus d'informations, consultez la section Affichage des événements à l'aide de l'historique des CloudTrail événements.

Pour un enregistrement continu des événements survenus dans votre environnement Compte AWS, y compris des événements pour SES, créez un parcours. Un suivi permet CloudTrail de fournir des fichiers journaux à un compartiment Amazon S3. Par défaut, lorsque vous créez un journal d’activité dans la console, il s’applique à toutes les régions Régions AWS. Le journal enregistre les événements de toutes les régions de la AWS partition et transmet les fichiers journaux au compartiment Amazon S3 que vous spécifiez. En outre, vous pouvez configurer d'autres AWS services pour analyser plus en détail les données d'événements collectées dans les CloudTrail journaux et agir en conséquence. Pour plus d’informations, consultez les ressources suivantes :

Chaque événement ou entrée de journal contient des informations sur la personne ayant initié la demande. Les informations relatives à l’identité permettent de déterminer les éléments suivants :

  • Si la demande a été faite avec les informations d'identification de l'utilisateur root ou AWS Identity and Access Management (IAM).

  • Si la demande a été effectuée avec les informations d’identification de sécurité temporaires d’un rôle ou d’un utilisateur fédéré.

  • Si la demande a été faite par un autre AWS service.

Pour plus d’informations, consultez la section Élément userIdentity CloudTrail .

Événements liés aux données SES dans CloudTrail

Les événements de données fournissent des informations sur les opérations de ressource effectuées sur ou dans une ressource. Ils sont également connus sous le nom opérations de plans de données. Les événements de données sont souvent des activités dont le volume est élevé. Par défaut, CloudTrail n'enregistre pas les événements liés aux données. L'historique des CloudTrail événements n'enregistre pas les événements liés aux données.

Des frais supplémentaires s’appliquent pour les événements de données. Pour plus d'informations sur la CloudTrail tarification, consultez la section AWS CloudTrail tarification.

Note

L'activité d'envoi d'e-mails via l'interface SMTP de SES n'est pas enregistrée dans les CloudTrail événements. Pour un enregistrement complet des activités, utilisez le SES le plus récent APIs dans la référence d'API SES et la référence d'API SES v2.

Le tableau suivant répertorie les types de ressources SES pour lesquels vous pouvez enregistrer des événements de données. La colonne Type d'événement de données (console) indique la valeur à choisir dans la liste des types d'événements de données de la CloudTrail console. La colonne de valeur resources.type indique la resources.type valeur que vous devez spécifier lors de la configuration de sélecteurs d'événements avancés à l'aide de la colonne indiquant le ou. AWS CLI CloudTrail APIs La CloudTrail colonne Données APIs enregistrées indique les appels d'API enregistrés CloudTrail pour le type de ressource.

Types de ressources SES pour les événements de données
Type d’événement de données (console) valeur resources.type Données APIs enregistrées sur CloudTrail
Identité SES AWS: :SES : : EmailIdentity

UTILISATIONS :

SendEmail

SendRawEmail

SendTemplatedEmail

SendBulkTemplatedEmail

SES version 2 :

SendEmail

SendBulkEmail

Kit de configuration SES

AWS: :SES : : ConfigurationSet

Modèle SES AWS: :SES : :Modèle

UTILISATIONS :

SendTemplatedEmail

SendBulkTemplatedEmail

SES version 2 :

SendEmail

SendBulkEmail

L'exemple suivant montre comment enregistrer tous les événements de données pour toutes les identités de messagerie SES à l'aide du --advanced-event-selectors paramètre :

aws cloudtrail put-event-selectors \ --region Region \ --trail-name TrailName \ --advanced-event-selectors '[ { "Name": "Log SES data plane actions for all email identities", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::SES::EmailIdentity"] } ] } ]'

Vous pouvez affiner davantage les sélecteurs d'événements avancés pour filtrer les eventNamereadOnly, et resources.ARN les champs pour n'enregistrer que les événements qui sont importants pour vous. Pour plus d’informations sur ces champs, consultez AdvancedFieldSelector dans la Référence d’API AWS CloudTrail . Pour plus d'exemples sur la façon de consigner des événements liés aux données, voir Enregistrement des événements liés aux données pour les sentiers.

CloudTrail scénarios de livraison de journaux pour la journalisation SES

CloudTrail fournit des journaux basés sur des facteurs tels que la propriété du compte et des ressources, le type d'identité et la région. La matrice suivante explique à qui et où les journaux seraient livrés en fonction de combinaisons spécifiques de ces facteurs.

Type de scénario Rôles du compte Ressources Flux de demandes Livraison de journaux
Compte croisé unique

Compte A : propriétaire de la ressource

Compte B : demandeur

Identité e-mail Identité e-mail de B → A Logs livrés à la fois à A et B
E-mail de transfert de commentaires B → E-mail de commentaires de A Logs livrés à la fois à A et B
Plusieurs comptes croisés

Compte A : propriétaire de l'e-mail de commentaires

Compte B : propriétaire de l'identité e-mail

Compte C : demandeur

E-mail de commentaires (A)

Identité e-mail (B)

C → E-mail de feedback de A + Identité e-mail de B Logs livrés à A, B et C
Point de terminaison global (compte unique) Compte A : propriétaire et demandeur Point de terminaison global (principal : eu‑west‑1 et secondaire : us‑west‑2) A → Point de terminaison global Logs livrés à A dans la région qui a traité la demande (eu‑west‑1 ou us‑west‑2)
Point de terminaison global (comptes multiples)

Compte A : propriétaire de l'identité e-mail

Compte B : demandeur

Identité e-mail (A)

Point de terminaison global (B) (eu‑west‑1 et us‑west‑2)

B → Identité e-mail de A via Global Endpoint Logs livrés à A et B dans la région qui a traité la demande (eu‑west‑1 ou us‑west‑2)
Note
  • CloudTrail envoie toujours les journaux sur le compte du demandeur.

  • Les propriétaires des ressources reçoivent des journaux même s'ils n'ont pas effectué l'opération.

  • Pour les points de terminaison mondiaux, les deux comptes nécessitent des CloudTrail abonnements dans toutes les régions configurées.

  • Lors de déficiences régionales, tous les journaux apparaissent dans la région saine.

Événements de gestion de SES dans CloudTrail

SES organise des événements de gestion à CloudTrail. Les événements de gestion incluent des actions liées à la création et à la gestion de ressources au sein de votre Compte AWS. Dans Amazon SES, les événements de gestion incluent des actions telles que la création et la suppression d'identités ou de règles de réception. Pour plus d'informations sur les opérations de l'API SES, consultez la référence des API SES et la référence des API SES v2.

CloudTrail entrées de fichier journal pour SES

Un suivi est une configuration qui permet de transmettre des événements sous forme de fichiers journaux à un compartiment Amazon S3 que vous spécifiez. CloudTrail les fichiers journaux contiennent une ou plusieurs entrées de journal. Un événement représente une demande unique provenant de n'importe quelle source et inclut des informations sur l'action demandée, la date et l'heure de l'action, les paramètres de la demande, etc. CloudTrail les fichiers journaux ne constituent pas une trace ordonnée des appels d'API publics, ils n'apparaissent donc pas dans un ordre spécifique.

Les exemples suivants illustrent CloudTrail les journaux de ces types d'événements :

DeleteIdentity

{ "Records":[ { "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA4DO2KAWIPZEXAMPLE:myUserName", "arn": "arn:aws:sts::111122223333:assumed-role/users/myUserName", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA4DO2KAWIPZEXAMPLE", "arn": "arn:aws:iam::111122223333:role/admin-role", "accountId": "111122223333", "userName": "myUserName" }, "attributes": { "creationDate": "2025-02-27T09:53:35Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-02-27T09:54:31Z", "eventSource": "ses.amazonaws.com", "eventName": "DeleteIdentity", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/2.23.4", "requestParameters": { "identity": "sender@example.com" }, "responseElements": null, "requestID": "50b87bfe-ab23-11e4-9106-5b36376f9d12", "eventID": "0ffa308d-1467-4259-8be3-c749753be325", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "email.us-east-1.amazonaws.com" } } ] }

VerifyEmailIdentity

{ "Records":[ { "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA4DO2KAWIPZEXAMPLE:myUserName", "arn": "arn:aws:sts::111122223333:assumed-role/users/myUserName", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA4DO2KAWIPZEXAMPLE", "arn": "arn:aws:iam::111122223333:role/admin-role", "accountId": "111122223333", "userName": "myUserName" }, "attributes": { "creationDate": "2025-02-27T09:53:35Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-02-27T09:56:20Z", "eventSource": "ses.amazonaws.com", "eventName": "VerifyEmailIdentity", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/2.23.4", "requestParameters": { "emailAddress": "sender@example.com" }, "responseElements": null, "requestID": "eb2ff803-ac09-11e4-8ff5-a56a3119e253", "eventID": "5613b0ff-d6c6-4526-9b53-a603a9231725", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "email.us-east-1.amazonaws.com" } } ] }

SendEmail avec un contenu simple

{ "Records":[{ "eventTime": "2025-01-24T11:43:00Z", "eventSource": "ses.amazonaws.com", "eventName": "SendEmail", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/2.23.4 md/awscrt#0.23.4", "requestParameters": { "destination": { "bccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"], "toAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"], "ccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"] }, "message": { "subject": { "charset": "UTF-8", "data": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "body": { "html": { "charset": "UTF-8", "data": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "text": { "charset": "UTF-8", "data": "HIDDEN_DUE_TO_SECURITY_REASONS" } } }, "source": "sender@example.com" }, "responseElements": null, "additionalEventData": { "sesMessageId": "01000100a11a11aa-00aa0a00-00a0-48a8-aaa7-a174a83b456a-000000" }, "requestID": "ab2cc803-ac09-11d7-8bb8-a56a3119e476", "eventID": "eb834e01-f168-435f-92c0-c36278378b6e", "readOnly": true, "resources": [{ "accountId": "111122223333", "type": "AWS::SES::EmailIdentity", "ARN": "arn:aws:ses:us-east-1:111122223333:identity/sender@example.com" }], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "111122223333", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "email.us-east-1.amazonaws.com" } } ] }

SendEmail avec du contenu modélisé

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROA4DO2KAWIPZEXAMPLE:myUserName", "arn": "arn:aws:sts::111122223333:assumed-role/users/myUserName", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROA4DO2KAWIPZEXAMPLE", "arn": "arn:aws:iam::111122223333:role/admin-role", "accountId": "111122223333", "userName": "admin-role" }, "attributes": { "creationDate": "2025-03-05T18:51:06Z", "mfaAuthenticated": "false" } } }, "eventTime": "2025-03-05T19:16:29Z", "eventSource": "ses.amazonaws.com", "eventName": "SendEmail", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/2.23.4", "requestParameters": { "fromEmailAddress": "sender@example.com", "destination": { "toAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"], "bccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"], "ccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"] }, "emailTags": [{ "value": "test", "name": "campaign" }, { "value": "cli-test", "name": "sender" }], "replyToAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"], "content": { "template": { "templateData": "HIDDEN_DUE_TO_SECURITY_REASONS", "templateName": "TestTemplate" } } }, "responseElements": null, "additionalEventData": { "sesMessageId": "01000100a11a11aa-00aa0a00-00a0-48a8-aaa7-a174a83b456a-000000" }, "requestID": "50b87bfe-ab23-11e4-9106-5b36376f9d12", "eventID": "0ffa308d-1467-4259-8be3-c749753be325", "readOnly": true, "resources": [{ "accountId": "111122223333", "type": "AWS::SES::EmailIdentity", "ARN": "arn:aws:ses:us-east-1:111122223333:identity/sender@example.com" }, { "accountId": "111122223333", "type": "AWS::SES::Template", "ARN": "arn:aws:ses:us-east-1:111122223333:template/TestTemplate" }], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "111122223333", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "email.us-east-1.amazonaws.com" } }