

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
<a name="connection-logs"></a>

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 ?
<a name="what-are-connection-logs"></a>

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
<a name="enable-connection-logs"></a>

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
<a name="connection-logs-prerequisites"></a>

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)
<a name="enable-connection-logs-console"></a>

1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

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

1. Sélectionnez l'onglet **Logging** (Journalisation).

1. Choisissez **Ajouter**.

1. Sélectionnez le service pour recevoir vos journaux :
   + **CloudWatch Journaux**
   + **Firehose**
   + **Amazon S3**

1. 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)

1. (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.

1. Choisissez **Enregistrer les modifications**

### Pour activer les journaux de connexion (AWS CLI)
<a name="enable-connection-logs-cli"></a>

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
<a name="connection-log-fields"></a>

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
<a name="connection-error-codes"></a>

```
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 | 