Beobachtbarkeit mithilfe von Verbindungsprotokollen - Amazon CloudFront

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beobachtbarkeit mithilfe von Verbindungsprotokollen

CloudFront Verbindungsprotokolle bieten einen detaillierten Einblick in gegenseitige TLS-Authentifizierungsereignisse, sodass Sie die Zertifikatsvalidierung überwachen, Verbindungsversuche verfolgen und Authentifizierungsprobleme beheben können.

Was sind Verbindungsprotokolle?

Verbindungsprotokolle enthalten detaillierte Informationen über TLS-Handshakes und die Zertifikatsvalidierung für gemeinsame TLS-fähige Distributionen. Im Gegensatz zu Standardzugriffsprotokollen, die HTTP-Anforderungsinformationen aufzeichnen, konzentrieren sich Verbindungsprotokolle speziell auf die Phase des Verbindungsaufbaus mit der TLS-Verbindung, einschließlich:

  • Verbindungsstatus (Erfolg/Fehlschlag)

  • Einzelheiten zum Client-Zertifikat

  • TLS-Protokoll und Chiffrierinformationen

  • Metriken zum Verbindungszeitpunkt

  • Benutzerdefinierte Daten aus Verbindungsfunktionen

Diese Protokolle bieten einen umfassenden Einblick in zertifikatsbasierte Authentifizierungsereignisse und helfen Ihnen dabei, die Sicherheit zu überwachen, Probleme zu beheben und Compliance-Anforderungen zu erfüllen.

Aktivieren Sie Verbindungsprotokolle

Verbindungsprotokolle sind nur für Distributionen mit aktivierter gegenseitiger TLS-Authentifizierung verfügbar. Sie können Verbindungsprotokolle an mehrere Ziele senden, darunter CloudWatch Logs, Amazon Data Firehose und Amazon S3.

Voraussetzungen

Bevor Sie Verbindungsprotokolle aktivieren:

  • Konfigurieren Sie Mutual TLS für Ihre CloudFront Distribution

  • Aktivieren Sie Verbindungsprotokolle für Ihre CloudFront Distribution

  • Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen für das von Ihnen gewählte Protokollierungsziel verfügen

  • Konfigurieren Sie für die kontoübergreifende Bereitstellung die entsprechenden IAM-Richtlinien

Um Verbindungsprotokolle zu aktivieren (Konsole)

  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CloudFront Konsole unterhttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Wählen Sie aus der Verteilerliste Ihre MTLS-fähige Distribution aus.

  3. Wählen Sie die Registerkarte Logging (Protokollierung) aus.

  4. Wählen Sie Hinzufügen aus.

  5. Wählen Sie den Dienst aus, der Ihre Logs erhalten soll:

    • CloudWatch Protokolle

    • Firehose

    • Amazon S3

  6. Wählen Sie unter Ziel die Ressource für den ausgewählten Dienst aus:

    • Geben Sie für CloudWatch Logs den Namen der Protokollgruppe ein

    • Wählen Sie für Firehose den Firehose-Lieferstream

    • Geben Sie für Amazon S3 den Bucket-Namen ein (optional mit einem Präfix)

  7. (Optional) Zusätzliche Einstellungen konfigurieren

    • Feldauswahl: Wählen Sie bestimmte Protokollfelder aus, die aufgenommen werden sollen.

    • Ausgabeformat: Wählen Sie zwischen JSON, Plain, W3C, Raw oder Parquet (nur S3).

    • Feldtrennzeichen: Geben Sie an, wie Protokollfelder getrennt werden sollen.

  8. Wählen Sie Save Changes (Änderungen speichern)

So aktivieren Sie Verbindungsprotokolle (AWS CLI)

Das folgende Beispiel zeigt, wie Verbindungsprotokolle mithilfe der CloudWatch API aktiviert werden:

# 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"
Anmerkung

Wenn Sie die CloudWatch API verwenden, müssen Sie die Region USA Ost (Nord-Virginia) (us-east-1) angeben, auch wenn Sie Logs in andere Regionen liefern.

Felder des Verbindungsprotokolls

Verbindungsprotokolle enthalten detaillierte Informationen zu jedem TLS-Verbindungsversuch:

Feld Description Beispiel
eventTimestamp Zeitstempel nach ISO 8601, als die Verbindung hergestellt wurde oder fehlgeschlagen ist 1731620046814
connectionId Eindeutiger Bezeichner für die TLS-Verbindung oLHiEKbQSn8lkvJfA3D4gFowK3_iZ0g4i5nMUjE1Akod8TuAzn5nzg==
connectionStatus

Der Status des mTLS-Verbindungsversuchs.

Success oder Failed
clientIp IP-Adresse des Clients, der eine Verbindung herstellt 2001:0db8:85a3:0000:0000:8a2e:0370:7334
clientPort Vom Client verwendeter Port 12137
serverIp IP-Adresse des CloudFront Edge-Servers 99.84.71.136
distributionId CloudFront Vertriebs-ID E2DX1SLDPK0123
distributionTenantId CloudFront ID des Vertriebsmandanten (falls zutreffend) dt_2te1Ura9X3R2iCGNjW123
tlsProtocol Verwendete TLS-Protokollversion TLSv1.3
tlsCipher Für die Verbindung verwendete TLS-Verschlüsselungssuite TLS_AES_128_GCM_SHA256
tlsHandshakeDuration Dauer des TLS-Handshakes in Millisekunden 153
tlsSni Wert für die Angabe des Servernamens aus dem TLS-Handshake d111111abcdef8.cloudfront.net
clientLeafCertSerialNumber Seriennummer des Client-Zertifikats 00:b1:43:ed:93:d2:d8:f3:9d
clientLeafCertSubject Betrefffeld des Kundenzertifikats C=US, ST=WA, L=Seattle, O=Amazon.com, OU=CloudFront, CN=client.test.mtls.net
clientLeafCertIssuer Feld des Ausstellers des Kundenzertifikats C=US, ST=WA, L=Seattle, O=Amazon.com, OU=CloudFront, CN=test.mtls.net
clientLeafCertValidity Gültigkeitsdauer des Kundenzertifikats NotBefore=2025-06-05T23:28:21Z;NotAfter=2125-05-12T23:28:21Z
connectionLogCustomData Benutzerdefinierte Daten wurden über Verbindungsfunktionen hinzugefügt REVOKED:00:b1:43:ed:93:d2:d8:f3:9d

Fehlercodes für die Verbindung

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

Wenn Verbindungen fehlschlagen, werden bestimmte Ursachencodes CloudFront aufgezeichnet:

Code Description
ClientCertMaxChainDepthExceeded Die maximale Tiefe der Zertifikatskette wurde überschritten
ClientCertMaxSizeExceeded Die maximale Zertifikatsgröße wurde überschritten
ClientCertUntrusted Das Zertifikat ist nicht vertrauenswürdig
ClientCertNotYetValid Das Zertifikat ist noch nicht gültig
ClientCertExpired Das Zertifikat ist abgelaufen
ClientCertTypeUnsupported Der Zertifikattyp wird nicht unterstützt
ClientCertInvalid Das Zertifikat ist ungültig
ClientCertIntentInvalid Die Absicht des Zertifikats ist ungültig
ClientCertRejected Das Zertifikat wurde durch benutzerdefinierte Validierung abgelehnt
ClientCertMissing Das Zertifikat fehlt
TcpError

Beim Versuch, eine Verbindung herzustellen, ist ein Fehler aufgetreten

TcpTimeout

Die Verbindung konnte innerhalb des Timeouts nicht hergestellt werden

ConnectionFunctionError

Während der Ausführung der Verbindungsfunktion wurde eine nicht abgefangene Ausnahme ausgelöst

Intern

Ein interner Dienstfehler ist aufgetreten

UnmappedConnectionError

Es ist ein Fehler aufgetreten, der in keine der anderen Kategorien fällt