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 CloudFront à l’aide de l’AWS CloudTrail
CloudFront est intégré avec l’AWS CloudTrail, un service qui fournit un registre des actions prises par un utilisateur, un rôle ou un Service AWS. CloudTrail capture les appels d’API pour CloudFront en tant qu’événements. Les appels capturés comprennent les appels provenant de la console CloudFront et les appels de code vers les opérations de l’API CloudFront. À l’aide des informations collectées par CloudTrail, vous pouvez déterminer la demande qui a été envoyée à CloudFront, l’adresse IP à partir de laquelle la demande a été envoyée, le moment où elle a été envoyée et d’autres détails.
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 :
-
Si la demande a été effectuée avec des informations d’identification d’utilisateur root ou d’utilisateur root.
-
Si la demande a été faite au nom d'un utilisateur du centre d'identité 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 requête a été effectuée par un autre Service AWS.
CloudTrail est actif dans votre Compte AWS lorsque vous créez le compte et vous avez automatiquement accès à l'historique des événements CloudTrail. L'historique des événements de CloudTrail permet de visualiser, de rechercher, de télécharger et d'enregistrer de façon immuable les événements de gestion enregistrés au cours des 90 derniers jours dans un Région AWS. Pour plus d'informations, consultez Travailler avec l'historique des événements CloudTrail dans le AWS CloudTrailGuide de l'utilisateur. La consultation de l’historique des événements ne génère aucuns frais CloudTrail.
Pour un enregistrement permanent des événements dans vos Compte AWS 90 derniers jours, créez un historique ou un stockage de données d'événements CloudTrail Lake.
- Journaux de suivi CloudTrail
-
Un journal de suivi permet à CloudTrail de livrer des fichiers journaux à compartiment Amazon S3. Tous les journaux de suivi créés à l'aide de la AWS Management Console sont multi-régions. Vous ne pouvez créer un journal de suivi en une ou plusieurs régions à l'aide de l'AWS CLI. La création d'un journal de suivi multi-régions est recommandée, car vous pouvez journaliser l'activité dans toutes Régions AWS dans votre compte. Si vous créez un journal de suivi pour une seule région, il convient de n'afficher que les événements enregistrés dans le journal de suivi pour une seule région Région AWS. Pour plus d'informations sur les journaux de suivi, consultez Créez un journal de suivi dans vos Compte AWS et Création d'un journal de suivi pour une organisation dans le AWS CloudTrail Guide de l'utilisateur.
Vous pouvez diffuser une copie de vos événements de gestion en cours à votre compartiment Amazon S3 sans frais depuis CloudTrail en créant un suivi. Toutefois, des frais de stockage Amazon S3 sont facturés. Pour en savoir plus sur la tarification CloudTrail, consultez Tarification d’AWS CloudTrail
. Pour obtenir des informations sur la tarification Amazon S3, consultez Tarification Amazon S3 . - Magasins de données d’événement CloudTrail Lake
-
CloudTrail Lake vous permet d’exécuter des requêtes basées sur SQL sur vos événements. CloudTrail Lake convertit les événements existants au format JSON basé sur des lignes au format Apache ORC
. ORC est un format de stockage en colonnes qui est optimisé pour une récupération rapide des données. Les événements sont agrégés dans des magasins de données d’événement. Ceux-ci constituent des collections immuables d’événements basées sur des critères que vous sélectionnez en appliquant des sélecteurs d’événements avancés. Les sélecteurs que vous appliquez à un magasin de données d’événement contrôlent les événements qui persistent et que vous pouvez interroger. Pour plus d'informations sur CloudTrail Lake, consultez Utilisation de AWS CloudTrail Lake dans le AWS CloudTrail Guide de l'utilisateur. Le stockage des données d'événements CloudTrail Lake et les requêtes entraînent des coûts. Lorsque vous créez un magasin de données d’événement, vous choisissez l’option de tarification que vous voulez utiliser pour le magasin de données d’événement. L’option de tarification détermine le coût d’ingestion et de stockage des événements, ainsi que les périodes de conservation par défaut et maximale pour le magasin de données d’événement. Pour en savoir plus sur la tarification CloudTrail, consultez Tarification d’AWS CloudTrail
.
Note
CloudFront est un service global. CloudTrail enregistre les événements pour CloudFront dans la région USA Est (Virginie du Nord). Pour plus d’informations, consultez Événements de services mondiaux dans le Guide de l’utilisateur AWS CloudTrail.
Si vous utilisez des informations d’identification de sécurité temporaires via le AWS Security Token Service, les appels adressés à des points de terminaison régionaux, tels que us-west-2, sont consignés dans CloudTrail dans leur Région respective.
Pour plus d’informations sur les points de terminaison CloudFront, consultez Points de terminaison et quotas CloudFront dans les Références générales AWS.
Événements de données CloudFront dans CloudTrail
Les événements de données fournissent des informations sur les opérations de ressources effectuées sur ou dans une ressource (par exemple, lecture ou écriture de données dans une distribution CloudFront). 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 ne journalise pas les événements de données. L’historique des événements CloudTrail n’enregistre pas les événements de données.
Des frais supplémentaires s’appliquent pour les événements de données. Pour en savoir plus sur la tarification CloudTrail, consultez Tarification d’AWS CloudTrail
Vous pouvez journaliser les événements de données pour les types de ressources CloudFront à l’aide de la console CloudTrail, de l’AWS CLI ou des opérations d’API CloudTrail. Pour plus d’informations sur la façon de journaliser les événements de données, consultez Journalisation des événements de données avec la AWS Management Console et Journalisation des événements de données avec l’AWS Command Line Interface dans le Guide de l’utilisateur AWS CloudTrail.
Le tableau suivant répertorie les types de ressources CloudFront pour lesquels vous pouvez journaliser les événements de données. La colonne Type d’événement de données (console) indique la valeur à choisir dans la liste Type d’événement de données de la console CloudTrail. La colonne resources.type value indique la valeur de resources.type, que vous devez spécifier lors de la configuration des sélecteurs d’événements avancés à l’aide de l’AWS CLI ou des API CloudTrail. La colonne API de données journalisées dans CloudTrail indique les appels d’API journalisés dans CloudTrail pour le type de ressource.
| Type d’événement de données (console) | valeur resources.type | API de données journalisées dans CloudTrail |
|---|---|---|
| CloudFront KeyValueStore |
AWS::CloudFront::KeyValueStore
|
Vous pouvez configurer des sélecteurs d’événements avancés pour filtrer les champs eventName, readOnly et resources.ARN afin de ne journaliser que les événements importants pour vous. Pour plus d’informations sur ces champs, consultez AdvancedFieldSelector dans la Référence des API AWS CloudTrail.
Événements de gestion CloudFront dans CloudTrail
Les événements de gestion fournissent des informations sur les opérations de gestion exécutées sur des ressources de votre Compte AWS. Ils sont également connus sous le nom d’opérations de plan de contrôle. Par défaut, CloudTrail journalise les événements de gestion.
Amazon CloudFront journalise toutes les opérations du plan de contrôle CloudFront en tant qu’événements de gestion. Pour obtenir la liste des opérations du plan de contrôle Amazon CloudFront que CloudFront journalise dans CloudTrail, consultez la Référence des API Amazon CloudFront.
Exemples d’événements CloudFront
Un événement représente une demande d’une source quelconque et comprend des informations sur l’opération d’API demandée, y compris la date et l’heure de l’opération, les paramètres de la demande, etc. Les fichiers journaux CloudTrail ne constituent pas une série ordonnée des appels d’API publics. Les événements ne suivent aucun ordre précis.
Table des matières
Exemple : UpdateDistribution
L’exemple suivant montre un événement CloudTrail qui illustre l’opération UpdateDistribution.
Pour les appels à l’API CloudFront, la valeur eventSource est cloudfront.amazonaws.com.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:role-session-name", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/role-session-name", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2024-02-02T19:23:50Z", "mfaAuthenticated": "false" } } }, "eventTime": "2024-02-02T19:26:01Z", "eventSource": "cloudfront.amazonaws.com", "eventName": "UpdateDistribution", "awsRegion": "us-east-1", "sourceIPAddress": "52.94.133.137", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36", "requestParameters": { "distributionConfig": { "defaultRootObject": "", "aliases": { "quantity": 3, "items": [ "alejandro_rosalez.awsps.myinstance.com", "cross-testing.alejandro_rosalez.awsps.myinstance.com", "*.alejandro_rosalez.awsps.myinstance.com" ] }, "cacheBehaviors": { "quantity": 0, "items": [] }, "httpVersion": "http2and3", "originGroups": { "quantity": 0, "items": [] }, "viewerCertificate": { "minimumProtocolVersion": "TLSv1.2_2021", "cloudFrontDefaultCertificate": false, "aCMCertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "sSLSupportMethod": "sni-only" }, "webACLId": "arn:aws:wafv2:us-east-1:111122223333:global/webacl/testing-acl/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "customErrorResponses": { "quantity": 0, "items": [] }, "logging": { "includeCookies": false, "prefix": "", "enabled": false, "bucket": "" }, "priceClass": "PriceClass_All", "restrictions": { "geoRestriction": { "restrictionType": "none", "quantity": 0, "items": [] } }, "isIPV6Enabled": true, "callerReference": "1578329170895", "continuousDeploymentPolicyId": "", "enabled": true, "defaultCacheBehavior": { "targetOriginId": "d111111abcdef8", "minTTL": 0, "compress": false, "maxTTL": 31536000, "functionAssociations": { "quantity": 0, "items": [] }, "trustedKeyGroups": { "quantity": 0, "items": [], "enabled": false }, "smoothStreaming": false, "fieldLevelEncryptionId": "", "defaultTTL": 86400, "lambdaFunctionAssociations": { "quantity": 0, "items": [] }, "viewerProtocolPolicy": "redirect-to-https", "forwardedValues": { "cookies": {"forward": "none"}, "queryStringCacheKeys": { "quantity": 0, "items": [] }, "queryString": false, "headers": { "quantity": 1, "items": ["*"] } }, "trustedSigners": { "items": [], "enabled": false, "quantity": 0 }, "allowedMethods": { "quantity": 2, "items": [ "HEAD", "GET" ], "cachedMethods": { "quantity": 2, "items": [ "HEAD", "GET" ] } } }, "staging": false, "origins": { "quantity": 1, "items": [ { "originPath": "", "connectionTimeout": 10, "customOriginConfig": { "originReadTimeout": 30, "hTTPSPort": 443, "originProtocolPolicy": "https-only", "originKeepaliveTimeout": 5, "hTTPPort": 80, "originSslProtocols": { "quantity": 3, "items": [ "TLSv1", "TLSv1.1", "TLSv1.2" ] } }, "id": "d111111abcdef8", "domainName": "d111111abcdef8.cloudfront.net", "connectionAttempts": 3, "customHeaders": { "quantity": 0, "items": [] }, "originShield": {"enabled": false}, "originAccessControlId": "" } ] }, "comment": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "id": "EDFDVBD6EXAMPLE", "ifMatch": "E1RTLUR9YES76O" }, "responseElements": { "distribution": { "activeTrustedSigners": { "quantity": 0, "enabled": false }, "id": "EDFDVBD6EXAMPLE", "domainName": "d111111abcdef8.cloudfront.net", "distributionConfig": { "defaultRootObject": "", "aliases": { "quantity": 3, "items": [ "alejandro_rosalez.awsps.myinstance.com", "cross-testing.alejandro_rosalez.awsps.myinstance.com", "*.alejandro_rosalez.awsps.myinstance.com" ] }, "cacheBehaviors": {"quantity": 0}, "httpVersion": "http2and3", "originGroups": {"quantity": 0}, "viewerCertificate": { "minimumProtocolVersion": "TLSv1.2_2021", "cloudFrontDefaultCertificate": false, "aCMCertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "sSLSupportMethod": "sni-only", "certificateSource": "acm", "certificate": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "webACLId": "arn:aws:wafv2:us-east-1:111122223333:global/webacl/testing-acl/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "customErrorResponses": {"quantity": 0}, "logging": { "includeCookies": false, "prefix": "", "enabled": false, "bucket": "" }, "priceClass": "PriceClass_All", "restrictions": { "geoRestriction": { "restrictionType": "none", "quantity": 0 } }, "isIPV6Enabled": true, "callerReference": "1578329170895", "continuousDeploymentPolicyId": "", "enabled": true, "defaultCacheBehavior": { "targetOriginId": "d111111abcdef8", "minTTL": 0, "compress": false, "maxTTL": 31536000, "functionAssociations": {"quantity": 0}, "trustedKeyGroups": { "quantity": 0, "enabled": false }, "smoothStreaming": false, "fieldLevelEncryptionId": "", "defaultTTL": 86400, "lambdaFunctionAssociations": {"quantity": 0}, "viewerProtocolPolicy": "redirect-to-https", "forwardedValues": { "cookies": {"forward": "none"}, "queryStringCacheKeys": {"quantity": 0}, "queryString": false, "headers": { "quantity": 1, "items": ["*"] } }, "trustedSigners": { "enabled": false, "quantity": 0 }, "allowedMethods": { "quantity": 2, "items": [ "HEAD", "GET" ], "cachedMethods": { "quantity": 2, "items": [ "HEAD", "GET" ] } } }, "staging": false, "origins": { "quantity": 1, "items": [ { "originPath": "", "connectionTimeout": 10, "customOriginConfig": { "originReadTimeout": 30, "hTTPSPort": 443, "originProtocolPolicy": "https-only", "originKeepaliveTimeout": 5, "hTTPPort": 80, "originSslProtocols": { "quantity": 3, "items": [ "TLSv1", "TLSv1.1", "TLSv1.2" ] } }, "id": "d111111abcdef8", "domainName": "d111111abcdef8.cloudfront.net", "connectionAttempts": 3, "customHeaders": {"quantity": 0}, "originShield": {"enabled": false}, "originAccessControlId": "" } ] }, "comment": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "aliasICPRecordals": [ { "cNAME": "alejandro_rosalez.awsps.myinstance.com", "iCPRecordalStatus": "APPROVED" }, { "cNAME": "cross-testing.alejandro_rosalez.awsps.myinstance.com", "iCPRecordalStatus": "APPROVED" }, { "cNAME": "*.alejandro_rosalez.awsps.myinstance.com", "iCPRecordalStatus": "APPROVED" } ], "aRN": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE", "status": "InProgress", "lastModifiedTime": "Feb 2, 2024 7:26:01 PM", "activeTrustedKeyGroups": { "enabled": false, "quantity": 0 }, "inProgressInvalidationBatches": 0 }, "eTag": "E1YHBLAB2BJY1G" }, "requestID": "4e6b66f9-d548-11e3-a8a9-73e33example", "eventID": "5ab02562-0fc5-43d0-b7b6-90293example", "readOnly": false, "eventType": "AwsApiCall", "apiVersion": "2020_05_31", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "cloudfront.amazonaws.com" }, "sessionCredentialFromConsole": "true" }
Exemple : UpdateKeys
L’exemple suivant montre un événement CloudTrail qui illustre l’opération UpdateKeys.
Pour les appels à l’API CloudFront KeyValueStore, la valeur eventSource est edgekeyvaluestore.amazonaws.com au lieu de cloudfront.amazonaws.com.
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:role-session-name", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/role-session-name", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2023-11-01T23:41:14Z", "mfaAuthenticated": "false" } } }, "eventTime": "2023-11-01T23:41:28Z", "eventSource": "edgekeyvaluestore.amazonaws.com", "eventName": "UpdateKeys", "awsRegion": "us-east-1", "sourceIPAddress": "3.235.183.252", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36, "requestParameters": { "kvsARN": "arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "ifMatch": "KV3O6B1CX531EBP", "deletes": [ {"key": "key1"} ] }, "responseElements": { "itemCount": 0, "totalSizeInBytes": 0, "eTag": "KVDC9VEVZ71ZGO" }, "requestID": "5ccf104c-acce-4ea1-b7fc-73e33example", "eventID": "a0b1b5c7-906c-439d-9925-90293example", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::CloudFront::KeyValueStore", "ARN": "arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "111122223333", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "111122223333.cloudfront-kvs.global.api.aws" } }
Pour plus d’informations sur le contenu des enregistrements CloudTrail, consultez CloudTrail record contents dans le Guide de l’utilisateur AWS CloudTrail.