CloudTrail enregistrement pour les applications Web Transfer Family - AWS Transfer Family

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.

CloudTrail enregistrement pour les applications Web Transfer Family

CloudTrail est un Service AWS qui crée un enregistrement des actions entreprises au sein de votre Compte AWS. Il surveille et enregistre en permanence les opérations d'API pour des activités telles que les connexions à la console, AWS Command Line Interface les commandes et SDK/API les opérations. Cela vous permet de garder un journal indiquant qui a pris quelle action, quand et d'où. CloudTrail contribue à l'audit, à la gestion des accès et à la conformité réglementaire en fournissant un historique de toutes les activités de votre AWS environnement.

Pour les applications Web Transfer Family, vous pouvez suivre à la fois les événements d'authentification et les opérations d'accès aux données effectuées par vos utilisateurs. Pour activer la journalisation complète, vous devez :

  1. Configurez CloudTrail pour consigner les événements de gestion afin de suivre les activités d'authentification.

  2. Activez les événements de données Amazon S3 pour suivre les opérations sur les fichiers effectuées via votre application Web.

Voir aussi

Activation des événements de données Amazon S3

Pour suivre les opérations de fichiers effectuées via les applications Web Transfer Family sur vos compartiments Amazon S3, vous devez activer les événements de données pour ces compartiments. Les événements de données fournissent une activité d'API au niveau de l'objet et sont particulièrement utiles pour suivre les chargements de fichiers, les téléchargements et les autres opérations effectuées par les utilisateurs d'applications Web.

Pour activer les événements de données Amazon S3 pour votre application Web Transfer Family :

  1. Ouvrez la CloudTrail console à l'adresse https://console.aws.amazon.com/cloudtrail/.

  2. Dans le volet de navigation, choisissez Sentiers, puis sélectionnez un parcours existant ou créez-en un nouveau.

  3. Sous Sélecteurs d'événements avancés, choisissez Modifier.

  4. Choisissez Ajouter un sélecteur d'événements avancé.

  5. Pour le premier sélecteur de champs :

    • Régler le champ sur eventCategory

    • Définir l'opérateur sur Equals

    • Définissez la valeur sur Data

  6. Choisissez Ajouter un champ et pour le second sélecteur de champ :

    • Régler le champ sur resources.type

    • Définir l'opérateur sur Equals

    • Définissez la valeur sur AWS::S3::Object

  7. (Facultatif) Pour enregistrer les événements relatifs à des compartiments spécifiques uniquement, choisissez Ajouter un champ et ajoutez :

    • Régler le champ sur resources.ARN

    • Configurer l'opérateur pour qu'il commence par

    • Définissez la valeur sur arn:aws:s3:::your-bucket-name/

  8. Sélectionnez Enregistrer les modifications.

Vous pouvez également utiliser l'ancienne configuration des événements de données :

  1. Sous Événements liés aux données, sélectionnez Modifier.

  2. Pour le type d'événement Data, sélectionnez le bucket S3 et les événements d'objet.

  3. Choisissez les compartiments Amazon S3 pour lesquels enregistrer les événements de données. Vous pouvez sélectionner Tous les compartiments S3 actuels et futurs ou spécifier des compartiments individuels.

  4. Choisissez de consigner les événements de lecture, d'écriture ou les deux.

  5. Sélectionnez Enregistrer les modifications.

Après avoir activé les événements de données, vous pouvez accéder à ces journaux dans le compartiment Amazon S3 configuré pour CloudTrail. Les journaux contiennent des informations telles que l'utilisateur qui a effectué l'action, l'horodatage de l'action, l'objet spécifique concerné et le onBehalfOf champ permettant de suivre les userId actions effectuées via les applications Web Transfer Family.

Trouver et consulter vos journaux

Il existe plusieurs méthodes pour rechercher et consulter CloudTrail les journaux de votre application Web Transfer Family :

Utilisation de la CloudTrail console

Le moyen le plus rapide de consulter les événements récents :

  1. Ouvrez la CloudTrail console à l'adresse https://console.aws.amazon.com/cloudtrail/.

  2. Choisissez Historique des événements.

  3. Filtrer les événements par :

    • Source de l'événement : signin.amazonaws.com pour les événements liés aux applications Web

    • Source de l'événement : s3.amazonaws.com pour les opérations sur les fichiers

  4. Cliquez sur n'importe quel événement pour afficher des informations détaillées.

Accès aux journaux dans Amazon S3

Pour accéder à l'intégralité des fichiers journaux stockés dans Amazon S3 :

  1. Identifiez le compartiment Amazon S3 de votre CloudTrail parcours :

    aws cloudtrail describe-trails --query 'trailList[*].[Name,S3BucketName]' --output table
  2. Accédez aux fichiers journaux dans Amazon S3 :

    aws s3 ls s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/
  3. Téléchargez et recherchez dans les fichiers journaux l'identifiant de votre application Web :

    aws s3 cp s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/ . --recursive gunzip *.json.gz grep -l "webapp-1a2b3c4d5e6f7g8h9" *.json

Utilisation AWS CLI pour rechercher des événements

Recherchez des événements d'applications Web spécifiques à l'aide de AWS CLI :

aws logs filter-log-events \ --log-group-name /aws/cloudtrail/your-trail-name \ --filter-pattern "webapp-1a2b3c4d5e6f7g8h9" \ --start-time $(date -d "1 day ago" +%s)000

Ou recherchez des événements d'authentification :

aws logs filter-log-events \ --log-group-name /aws/cloudtrail/your-trail-name \ --filter-pattern "UserAuthentication" \ --start-time $(date -d "1 day ago" +%s)000

Exemples de journaux d'authentification

CloudTrail enregistre les événements d'authentification pour les applications Web Transfer Family, ce qui peut vous aider à suivre les tentatives de connexion réussies et infructueuses. Ces journaux sont particulièrement utiles à des fins de surveillance de la sécurité et de conformité.

Exemple d'entrée de journal pour la vérification des informations d'identification

L'exemple suivant montre une entrée de CloudTrail journal pour un événement de vérification des informations d'identification qui se produit pendant le processus d'authentification.

{ "eventVersion": "1.09", "userIdentity": { "type": "Unknown", "principalId": "123456789012", "arn": "", "accountId": "123456789012", "accessKeyId": "", "userName": "demo-user-2", "onBehalfOf": { "userId": "f12bb510-a011-702f-10dd-5607e2776dbc", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e" }, "credentialId": "58138a11-87e5-401d-8f0b-7161c9389112" }, "eventTime": "2025-08-08T15:29:30Z", "eventSource": "signin.amazonaws.com", "eventName": "CredentialVerification", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.224", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36", "requestParameters": null, "responseElements": null, "additionalEventData": { "AuthWorkflowID": "f304a48b-7b6d-41c8-b136-4f49c91c1f31", "CredentialType": "PASSWORD" }, "requestID": "ff936828-4a81-453c-802d-81368b6bca1a", "eventID": "70cb7008-493d-42c2-a9eb-38bf168af6a8", "readOnly": false, "eventType": "AWS ServiceEvent", "managementEvent": true, "recipientAccountId": "123456789012", "serviceEventDetails": { "CredentialVerification": "Success" }, "eventCategory": "Management" }

Cet événement fournit des informations supplémentaires sur l'étape de vérification des informations d'identification du processus d'authentification, en indiquant l'ID d'identification et l'ID du flux de travail d'authentification spécifiques utilisés.

Exemple d'entrée de journal pour l'authentification de connexion

L'exemple suivant montre une entrée de CloudTrail journal pour un événement d'authentification utilisateur réussi lors de la connexion à une application Web à l'aide d'IAM Identity Center.

{ "eventVersion": "1.09", "userIdentity": { "type": "Unknown", "principalId": "123456789012", "arn": "", "accountId": "123456789012", "accessKeyId": "", "userName": "demo-user-2", "onBehalfOf": { "userId": "f12bb510-a011-702f-10dd-5607e2776dbc", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e" }, "credentialId": "b41f0a02-1635-4d07-a414-aecf9e14b906" }, "eventTime": "2025-08-07T14:09:07Z", "eventSource": "signin.amazonaws.com", "eventName": "UserAuthentication", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.14", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36", "requestParameters": null, "responseElements": null, "additionalEventData": { "AuthWorkflowID": "7a4ef12c-7c4b-4bc3-b5bd-c2469afcc795", "LoginTo": "https://example.awsapps.com/start/", "CredentialType": "PASSWORD" }, "requestID": "fc91bcf0-ac53-4454-a1a0-fb911eacc095", "eventID": "18522007-1e60-4a71-b2b5-150baf504ab3", "readOnly": false, "eventType": "AWS ServiceEvent", "managementEvent": true, "recipientAccountId": "123456789012", "serviceEventDetails": { "UserAuthentication": "Success" }, "eventCategory": "Management" }

Dans cet exemple, notez les champs importants suivants :

  • eventSource: affiche « signin.amazonaws.com », indiquant qu'il s'agit d'un événement d'authentification IAM Identity Center.

  • userIdentity.onBehalfOf: contient l'ID utilisateur et l'ARN du magasin d'identités de l'utilisateur de l'application Web.

  • additionalEventData.LoginTo: indique l'URL de l'application IAM Identity Center à laquelle vous accédez.

  • additionalEventData.CredentialType: indique la méthode d'authentification utilisée (MOT DE PASSE).

  • serviceEventDetails: affiche le résultat de l'authentification (réussite).

Exemple d'entrée de journal pour ListCallerAccessGrants

L'exemple suivant montre une entrée de CloudTrail journal pour un ListCallerAccessGrants événement qui se produit lorsque l'application Web Transfer Family demande les autorisations d'accès disponibles pour un utilisateur.

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLEID:aws-transfer", "arn": "arn:aws:sts::123456789012:assumed-role/AWS TransferWebAppIdentityBearer-us-east-2/aws-transfer", "accountId": "123456789012", "accessKeyId": "ASIAEXAMPLEKEY", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLEID", "arn": "arn:aws:iam::123456789012:role/service-role/AWS TransferWebAppIdentityBearer-us-east-2", "accountId": "123456789012", "userName": "AWS TransferWebAppIdentityBearer-us-east-2" }, "attributes": { "creationDate": "2025-08-08T15:29:34Z", "mfaAuthenticated": "false" } }, "invokedBy": "transfer.amazonaws.com", "onBehalfOf": { "userId": "f12bb510-a011-702f-10dd-5607e2776dbc", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e" } }, "eventTime": "2025-08-08T15:29:35Z", "eventSource": "s3.amazonaws.com", "eventName": "ListCallerAccessGrants", "awsRegion": "us-east-2", "sourceIPAddress": "transfer.amazonaws.com", "userAgent": "transfer.amazonaws.com", "requestParameters": { "Host": "123456789012.s3-control.dualstack.us-east-2.amazonaws.com", "allowedByApplication": "true", "maxResults": "100" }, "responseElements": null, "additionalEventData": { "SignatureVersion": "SigV4", "CipherSuite": "TLS_AES_128_GCM_SHA256", "bytesTransferredIn": 0, "AuthenticationMethod": "AuthHeader", "x-amz-id-2": "1g34AaAELn/fntxwrifVsr41VDl8dp5ygWFasHJFNVq5FDCWYfX0ye7s4tWHEJC8ppI5lLePYLIcw3iTXAgn5Q==", "bytesTransferredOut": 462 }, "requestID": "48485MTZEDWT0ANT", "eventID": "3de5dd60-b7cf-474c-a1ab-631467c1a5c3", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS:S3::AccessGrantsInstance", "ARN": "arn:aws:s3:us-east-2:123456789012:access-grants/default" } ], "eventType": "AWS ApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

Dans cet exemple, notez les champs importants suivants :

  • eventName: indique qu'il s'agit d'un ListCallerAccessGrants événement qui interroge les autorisations d'accès S3 disponibles.

  • requestParameters.allowedByApplication: indique que la requête est filtrée en fonction des autorisations autorisées par l'application.

  • requestParameters.maxResults: indique le nombre maximum de subventions à renvoyer dans la réponse.

  • userIdentity.onBehalfOf: lie la demande à l'utilisateur spécifique de l'application Web.

Cet événement permet de savoir quand l'application Web Transfer Family demande à quelles ressources S3 un utilisateur a accès, offrant ainsi une visibilité sur les opérations de découverte des autorisations d'accès.

Exemple d'entrée de journal pour un GetDataAccess événement

L'exemple suivant montre une entrée de CloudTrail journal pour un GetDataAccess événement qui se produit lorsque l'application Web Transfer Family demande des autorisations d'accès aux ressources S3 au nom d'un utilisateur.

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROASEQRAEABP7ADWEZA5:aws-transfer", "arn": "arn:aws:sts::123456789012:assumed-role/AWSTransferWebAppIdentityBearer-ap-southeast-1/aws-transfer", "accountId": "123456789012", "accessKeyId": "ASIAEXAMPLEKEY", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROASEQRAEABP7ADWEZA5", "arn": "arn:aws:iam::123456789012:role/service-role/AWSTransferWebAppIdentityBearer-ap-southeast-1", "accountId": "123456789012", "userName": "AWSTransferWebAppIdentityBearer-ap-southeast-1" }, "attributes": { "creationDate": "2025-05-08T16:09:05Z", "mfaAuthenticated": "false" } }, "invokedBy": "transfer.amazonaws.com", "onBehalfOf": { "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9667b0da7a", "userId": "191a35ec-10a1-70c1-e4ab-e2802411e13e" } }, "eventTime": "2025-05-08T16:10:25Z", "eventSource": "s3.amazonaws.com", "eventName": "GetDataAccess", "awsRegion": "ap-southeast-1", "sourceIPAddress": "transfer.amazonaws.com", "userAgent": "transfer.amazonaws.com", "requestParameters": { "Host": "123456789012.s3-control.dualstack.ap-southeast-1.amazonaws.com", "durationSeconds": 900, "permission": "READWRITE", "target": "s3://amzn-s3-demo-bucket/users/john.doe/documents/*" }, "responseElements": null, "additionalEventData": { "AuthenticationMethod": "AuthHeader", "CipherSuite": "TLS_AES_128_GCM_SHA256", "SignatureVersion": "SigV4", "bytesTransferredIn": 0, "bytesTransferredOut": 2244, "x-amz-id-2": "8ce8sZOgNwsaj9w1mzagyA+csONjYl8FgEw4FGpE8DARi90aNC0RFWlTYNEn7ChqE9RCJrTzMvS+ru7Vz2xXHrkQt/1uQ9exZTZdlhX+/fM=" }, "requestID": "BXGSKKQXCWS5RAHB", "eventID": "c11db1d1-dfb8-431e-8625-48eba2ebadfe", "readOnly": true, "resources": [ { "type": "AWS:S3::AccessGrantsInstance", "ARN": "arn:aws:s3:ap-southeast-1:123456789012:access-grants/default", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

Dans cet exemple, notez les champs importants suivants :

  • eventName: indique qu'il s'agit d'un GetDataAccess événement qui se produit lorsque Transfer Family demande des autorisations d'accès aux ressources S3.

  • userIdentity.onBehalfOf: contient l'ARN du magasin d'identités et l'ID utilisateur, reliant la demande d'accès à l'utilisateur spécifique de l'application Web.

  • requestParameters.target: indique le modèle de chemin S3 pour lequel l'accès a été demandé.

  • requestParameters.permission: indique le type d'accès demandé (READWRITE, READ ou WRITE).

  • requestParameters.durationSeconds: indique la durée de validité de l'autorisation d'accès (généralement 900 secondes/15 minutes).

  • sourceIPAddresset userAgent : Les deux affichent « transfer.amazonaws.com », indiquant qu'il s'agit d'une demande de service interne.

GetDataAccess les événements sont particulièrement utiles pour suivre le moment où les utilisateurs de l'application Web Transfer Family ont accès à des ressources S3 spécifiques, ce qui vous permet de surveiller les modèles d'accès et de garantir une autorisation appropriée.

Afficher les entrées du CloudTrail journal

Vous pouvez consulter et analyser les entrées du CloudTrail journal de votre application Web Transfer Family de plusieurs manières :

Utilisation de la CloudTrail console

La CloudTrail console fournit une interface conviviale permettant de visualiser et de filtrer les entrées du journal :

  1. Ouvrez la CloudTrail console à l'adresse https://console.aws.amazon.com/cloudtrail/.

  2. Dans le panneau de navigation, sélectionnez Historique des événements.

  3. Utilisez les options de filtre pour affiner les événements :

    • Définissez la source de l'événement sur transfer.amazonaws.com pour afficher uniquement les événements Transfer Family.

    • Filtrez par nom d'événement pour voir des opérations spécifiques telles queUserAuthentication.

    • Utilisez la plage de temps pour vous concentrer sur les événements survenus au cours d'une période spécifique.

  4. Cliquez sur n'importe quel événement pour voir ses informations détaillées.

Accès aux journaux dans Amazon S3

Si vous avez configuré un CloudTrail suivi pour envoyer des journaux vers un compartiment Amazon S3, vous pouvez accéder directement aux fichiers journaux bruts :

  1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Accédez au compartiment et au préfixe dans lesquels vos CloudTrail journaux sont stockés.

  3. Les journaux sont organisés par année, mois, jour et région. Accédez au répertoire approprié.

  4. Téléchargez et ouvrez les fichiers journaux, qui sont au format JSON.