Observabilité à l'aide des journaux de connexion - Amazon CloudFront

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.

Observabilité à l'aide des journaux de connexion

CloudFront les journaux de connexion fournissent une visibilité détaillée sur les événements d'authentification TLS mutuels, ce qui vous permet de surveiller la validation des certificats, de suivre les tentatives de connexion et de résoudre les problèmes d'authentification.

Que sont les journaux de connexion ?

Les journaux de connexion capturent des informations détaillées sur les connexions TLS et la validation des certificats pour les distributions mutuelles compatibles TLS. Contrairement aux journaux d'accès standard qui enregistrent les informations relatives aux requêtes HTTP, les journaux de connexion se concentrent spécifiquement sur la phase d'établissement de la connexion TLS, notamment :

  • État de la connexion (succès/échec)

  • Détails du certificat client

  • Protocole TLS et informations de chiffrement

  • Métriques de synchronisation des connexions

  • Données personnalisées provenant de Connection Functions

Ces journaux fournissent une visibilité complète sur les événements d'authentification basés sur des certificats, ce qui vous aide à surveiller la sécurité, à résoudre les problèmes et à respecter les exigences de conformité.

Activer les journaux de connexion

Les journaux de connexion ne sont disponibles que pour les distributions où l'authentification TLS mutuelle est activée. Vous pouvez envoyer des journaux de connexion vers plusieurs destinations, notamment CloudWatch Logs, Amazon Data Firehose et Amazon S3.

Conditions préalables

Avant d'activer les journaux de connexion :

  • Configurez le protocole TLS mutuel pour votre distribution CloudFront

  • Activez les journaux de connexion pour votre CloudFront distribution

  • Assurez-vous de disposer des autorisations requises pour la destination de journalisation que vous avez choisie

  • Pour la livraison entre comptes, configurez les politiques IAM appropriées

Pour activer les journaux de connexion (console)

  1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adressehttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Dans la liste de distribution, sélectionnez votre distribution compatible MTLS.

  3. Sélectionnez l'onglet Logging (Journalisation).

  4. Choisissez Ajouter.

  5. Sélectionnez le service pour recevoir vos journaux :

    • CloudWatch Journaux

    • Firehose

    • Amazon S3

  6. Pour Destination, sélectionnez la ressource correspondant au service que vous avez choisi :

    • Pour CloudWatch Logs, entrez le nom du groupe de logs

    • Pour Firehose, sélectionnez le flux de diffusion Firehose

    • Pour Amazon S3, entrez le nom du compartiment (éventuellement avec un préfixe)

  7. (Facultatif) Configurez des paramètres supplémentaires :

    • Sélection des champs : sélectionnez les champs de journal spécifiques à inclure.

    • Format de sortie : Choisissez entre JSON, Plain, W3C, Raw ou Parquet (S3 uniquement).

    • Délimiteur de champs : spécifiez comment séparer les champs du journal.

  8. Choisissez Enregistrer les modifications

Pour activer les journaux de connexion (AWS CLI)

L'exemple suivant montre comment activer les journaux de connexion à l'aide de l' CloudWatch API :

# Step 1: Create a delivery source aws logs put-delivery-source \ --name "cf-mtls-connection-logs" \ --resource-arn "arn:aws:cloudfront::123456789012:distribution/E1A2B3C4D5E6F7" \ --log-type CONNECTION_LOGS # Step 2: Create a delivery destination aws logs put-delivery-destination \ --name "s3-destination" \ --delivery-destination-configuration \ "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket1" # Step 3: Create the delivery aws logs create-delivery \ --delivery-source-name "cf-mtls-connection-logs" \ --delivery-destination-arn "arn:aws:logs:us-east-1:123456789012:delivery-destination:s3-destination"
Note

Lorsque vous utilisez l' CloudWatch API, vous devez spécifier la région USA Est (Virginie du Nord) (us-east-1) même lorsque vous distribuez des logs à d'autres régions.

Champs du journal de connexion

Les journaux de connexion contiennent des informations détaillées sur chaque tentative de connexion TLS :

Champ Description Exemple
eventTimestamp Horodatage ISO 8601 lorsque la connexion a été établie ou a échoué 1731620046814
connectionId Identifiant unique pour la connexion TLS oLHiEKbQSn8lkvJfA3D4gFowK3_iZ0g4i5nMUjE1Akod8TuAzn5nzg==
connectionStatus

État de la tentative de connexion mTLS.

Success ou Failed
clientIp Adresse IP du client qui se connecte 2001:0db8:85a3:0000:0000:8a2e:0370:7334
clientPort Port utilisé par le client 12137
serverIp Adresse IP du serveur CloudFront Edge 99.84.71.136
distributionId CloudFront ID de distribution E2DX1SLDPK0123
distributionTenantId CloudFront ID du locataire de distribution (le cas échéant) dt_2te1Ura9X3R2iCGNjW123
tlsProtocol Version du protocole TLS utilisée TLSv1.3
tlsCipher Suite de chiffrement TLS utilisée pour la connexion TLS_AES_128_GCM_SHA256
tlsHandshakeDuration Durée de la poignée de main TLS en millisecondes 153
tlsSni Valeur d'indication du nom du serveur issue de la poignée de contact TLS d111111abcdef8.cloudfront.net
clientLeafCertSerialNumber Numéro de série du certificat du client 00:b1:43:ed:93:d2:d8:f3:9d
clientLeafCertSubject Champ d'objet du certificat du client C=US, ST=WA, L=Seattle, O=Amazon.com, OU=CloudFront, CN=client.test.mtls.net
clientLeafCertIssuer Champ émetteur du certificat du client C=US, ST=WA, L=Seattle, O=Amazon.com, OU=CloudFront, CN=test.mtls.net
clientLeafCertValidity Période de validité du certificat du client NotBefore=2025-06-05T23:28:21Z;NotAfter=2125-05-12T23:28:21Z
connectionLogCustomData Données personnalisées ajoutées via les fonctions de connexion REVOKED:00:b1:43:ed:93:d2:d8:f3:9d

Codes d'erreur de connexion

Failed:ClientCertMaxChainDepthExceeded Failed:ClientCertMaxSizeExceeded Failed:ClientCertUntrusted Failed:ClientCertNotYetValid Failed:ClientCertExpired Failed:ClientCertTypeUnsupported Failed:ClientCertInvalid Failed:ClientCertIntentInvalid Failed:ClientCertRejected Failed:ClientCertMissing Failed:TcpError Failed:TcpTimeout Failed:ConnectionFunctionError Failed:ConnectionFunctionDenied Failed:Internal Failed:UnmappedConnectionError

Lorsque les connexions échouent, CloudFront enregistre des codes de motif spécifiques :

Code Description
ClientCertMaxChainDepthExceeded Profondeur maximale de la chaîne de certificats dépassée
ClientCertMaxSizeExceeded Taille maximale du certificat dépassée
ClientCertUntrusted Le certificat n'est pas fiable
ClientCertNotYetValid Le certificat n'est pas encore valide
ClientCertExpired Le certificat est expiré
ClientCertTypeUnsupported Le type de certificat n'est pas pris en charge
ClientCertInvalid Le certificat n'est pas valide
ClientCertIntentInvalid L'intention du certificat n'est pas valide
ClientCertRejected Certificat rejeté par validation personnalisée
ClientCertMissing Le certificat est manquant
TcpError

Une erreur s'est produite lors de la tentative d'établissement d'une connexion

TcpTimeout

La connexion n'a pas pu être établie dans le délai imparti

ConnectionFunctionError

Une exception non détectée a été déclenchée lors de l'exécution de la fonction de connexion

Internal (Interne)

Une erreur de service interne s'est produite

UnmappedConnectionError

Une erreur s'est produite qui ne correspond à aucune des autres catégories