Zugriffsprotokolle für Ihren Network Load Balancer - Elastic Load Balancing

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.

Zugriffsprotokolle für Ihren Network Load Balancer

Elastic Load Balancing bietet Zugriffsprotokolle, die detaillierte Informationen über die TLS-Verbindungen erfassen, die mit Ihrem Network Load Balancer hergestellt wurden. Sie können diese Zugriffsprotokolle für die Analyse von Datenverkehrsmustern und zur Problembehebung verwenden.

Wichtig

Zugriffsprotokolle werden nur erstellt, wenn der Network Load Balancer über einen TLS-Listener verfügt und sie nur Informationen über TLS-Verbindungen enthalten.

Zugriffsprotokollierung ist ein optionales Feature von Elastic Load Balancing, das standardmäßig deaktiviert ist. Nachdem Sie die Zugriffsprotokollierung für Ihren Load Balancer aktiviert haben, erfasst Elastic Load Balancing die Protokolle als komprimierte Dateien und speichert sie in dem von Ihnen angegebenen Amazon-S3-Bucket. Sie können die Zugriffsprotokollierung jederzeit deaktivieren.

Sie können serverseitige Verschlüsselung mit von Amazon S3 verwalteten Verschlüsselungsschlüsseln (SSE-S3) oder mit Key Management Service mit vom Kunden verwalteten Schlüsseln (SSE-KMS CMK) für Ihren S3-Bucket aktivieren. Jede Zugriffsprotokolldatei wird automatisch verschlüsselt, bevor sie im S3-Bucket gespeichert und beim Zugriff auf die Datei entschlüsselt wird. Sie müssen keine Maßnahmen ergreifen, weil zwischen dem Zugriff auf verschlüsselte und unverschlüsselte Protokolldateien kein Unterschied besteht. Jede Protokolldatei ist mit einem eindeutigen Schlüssel verschlüsselt, der wiederum mit einem KMS-Schlüssel verschlüsselt wird, der regelmäßig gewechselt wird. Weitere Informationen finden Sie unter Angeben der Amazon S3 S3-Verschlüsselung (SSE-S3) und Spezifizieren der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS) im Amazon S3 S3-Benutzerhandbuch.

Es fallen für die Zugriffsprotokolle keine zusätzlichen Gebühren an. Sie zahlen Speicherkosten für Amazon S3, aber Sie zahlen nicht für die Bandbreite, die von Elastic Load Balancing zum Senden von Protokolldateien an Amazon S3 verwendet wird. Weitere Information zu Speicherkosten finden Sie unter Amazon S3 – Preise.

Zugriffsprotokolldateien

Elastic Load Balancing veröffentlicht alle 5 Minuten eine Protokolldatei für jeden Load-Balancer-Knoten. Die Protokollbereitstellung ist letztendlich konsistent. Der Load Balancer kann mehrere Protokolle für denselben Zeitraum bereitstellen. Dies passiert in der Regel, wenn die Website hohen Datenverkehr aufweist.

Die Dateinamen der Zugriffsprotokolle verwenden das folgende Format:

bucket[/prefix]/AWSLogs/aws-account-id/elasticloadbalancing/region/yyyy/mm/dd/aws-account-id_elasticloadbalancing_region_net.load-balancer-id_end-time_random-string.log.gz
bucket

Der Name des S3-Buckets.

prefix

Das Präfix (logische Hierarchie) im Bucket. Wenn Sie kein Präfix festlegen, werden die Protokolle auf der Bucket-Stammebene platziert.

aws-account-id

Die ID des Besitzers AWS-Konto .

Region

Die Region für Ihren Load Balancer und den S3-Bucket.

JJJJ/MM/TT

Das Datum, an dem das Protokoll übermittelt wurde.

load-balancer-id

Die Ressourcen-ID des Load Balancer. Wenn die Ressourcen-ID Schrägstriche (/) enthält, werden sie durch Punkte (.) ersetzt.

end-time

Das Datum und die Uhrzeit, an dem das Protokollierungsintervall endete. Beispiel: Die Endzeit 20181220T2340Z enthält Einträge für Anfragen, die zwischen 23:35 und 23:40 durchgeführt wurden.

random-string

Eine vom System generierte zufällige Zeichenfolge.

Es folgt ein Beispiel für einen Protokolldateinamen:

s3://my-bucket/prefix/AWSLogs/123456789012/elasticloadbalancing/us-east-2/2020/05/01/123456789012_elasticloadbalancing_us-east-2_net.my-loadbalancer.1234567890abcdef_20200501T0000Z_20sg8hgm.log.gz

Sie können Ihre Protokolldateien beliebig lange im Bucket speichern. Sie können aber auch Amazon S3-Lebenszyklusregeln aufstellen, anhand derer die Protokolldateien automatisch archiviert oder gelöscht werden. Weitere Informationen finden Sie unter Verwalten des Speicherlebenszyklus im Amazon-S3-Benutzerhandbuch.

Zugriffsprotokolleinträge

Die folgende Tabelle beschreibt die Felder eines Zugriffsprotokolleintrags der Reihe nach. Alle Felder werden durch Leerzeichen voneinander getrennt. Wenn neue Felder eingeführt werden, werden sie am Ende des Protokolleintrags hinzugefügt. Bei der Verarbeitung der Protokolldateien sollten Sie alle Felder am Ende des Protokolleintrags ignorieren, die Sie nicht erwartet haben.

Feld Beschreibung

Typ

Der Listenertyp. Der unterstützte Wert ist tls.

version

Die Version des Protokolleintrags. Die aktuelle Version ist 2.0.

time

Die am Ende der TLS-Verbindung im ISO 8601-Format aufgezeichnete Zeit.

elb

Die Ressourcen-ID des Load Balancer.

Listener

Die Ressourcen-ID des TLS-Listeners für die Verbindung.

client:port

Die IP-Adresse und der Port des Clients.

destination:port

Die IP-Adresse und der Port des Ziels. Wenn der Client eine direkte Verbindung zum Load Balancer herstellt, ist das Ziel der Listener. Wenn der Client eine Verbindung über einen VPC-Endpunktdienst herstellt, ist das Ziel der VPC-Endpunkt.

connection_time

Die Gesamtzeit in Millisekunden, die für die Verbindungsdurchführung vom Anfang bis zum Abschluss benötigt wird.

tls_handshake_time

Die Gesamtzeit in Millisekunden für die Durchführung des TLS-Handshakes benötigt wird, nachdem die TCP-Verbindung hergestellt wurde und einschließlich der clientseitigen Verzögerungen. Diese Zeit ist im Feld „connection_time“ enthalten.

received_bytes

Die Anzahl der Byte, die der Load Balancer nach der Entschlüsselung vom Client empfängt.

sent_bytes

Die Anzahl der Byte, die der Load Balancer vor der Verschlüsselung an den Client sendet.

incoming_tls_alert

Der Ganzzahlwert der TLS-Warnungen, die der Load Balancer ggf. vom Client empfängt. Andernfalls wird dieser Wert auf „-“ festgelegt.

chosen_cert_arn

Der ARN des Zertifikats, das auf dem Client gespeichert wird. Wenn der Client keine gültige Hello-Nachricht sendet, wird dieser Wert auf „-“ festgelegt.

chosen_cert_serial

Für die spätere Verwendung reserviert. Dieser Wert wird immer auf „-“ festgelegt.

tls_cipher

Die mit dem Client ausgehandelte Verschlüsselungssammlung im OpenSSL-Format. Wenn die TLS-Aushandlung nicht abgeschlossen werden kann, ist dieser Wert auf „-“ festgelegt.

tls_protocol_version

Das mit dem Client ausgehandelte TLS-Protokoll im Zeichenfolgenformat. Die möglichen Werte sind tlsv10, tlsv11, tlsv12.und tlsv13. Wenn die TLS-Aushandlung nicht abgeschlossen werden kann, ist dieser Wert auf „-“ festgelegt.

tls_named_group

Für die spätere Verwendung reserviert. Dieser Wert wird immer auf „-“ festgelegt.

domain_name

Der Wert der server_name-Erweiterung in der Hello-Nachricht des Client. Dieser Wert ist URL-verschlüsselt. Wenn keine gültige Hello-Nachricht vom Client gesendet wird oder die Erweiterung nicht vorhanden ist, wird dieser Wert auf „-“ festgelegt.

alpn_fe_protocol

Das mit dem Client ausgehandelte Anwendungsprotokoll im Zeichenfolgenformat. Die möglichen Werte sind h2, http/1.1 und http/1.0. Wenn im TLS-Listener keine ALPN-Richtlinie konfiguriert ist, kein übereinstimmendes Protokoll gefunden wird oder keine gültige Protokollliste gesendet wird, wird dieser Wert auf - festgelegt.

alpn_be_protocol

Das mit dem Ziel ausgehandelte Anwendungsprotokoll im Zeichenfolgenformat. Die möglichen Werte sind h2, http/1.1 und http/1.0. Wenn im TLS-Listener keine ALPN-Richtlinie konfiguriert ist, kein übereinstimmendes Protokoll gefunden wird oder keine gültige Protokollliste gesendet wird, wird dieser Wert auf - festgelegt.

alpn_client_preference_list

Der Wert der Erweiterung application_layer_protocol_negotiation in der Client-Hello-Nachricht. Dieser Wert ist URL-verschlüsselt. Jedes Protokoll ist in doppelte Anführungszeichen eingeschlossen, und Protokolle werden durch ein Komma getrennt angegeben. Wenn im TLS-Listener keine ALPN-Richtlinie konfiguriert ist, keine gültige Client-Hello Nachricht gesendet wird oder die Erweiterung nicht vorhanden ist, wird dieser Wert auf - festgelegt. Die Zeichenfolge wird abgeschnitten, wenn sie länger als 256 Byte ist.

tls_connection_creation_time

Die zu Beginne der TLS-Verbindung aufgezeichnete Zeit, im ISO 8601-Format.

Beispiel-Protokolleinträge

Es folgen beispielhafte Protokolleinträge. Beachten Sie, dass der Text nur aus Gründen der besseren Lesbarkeit auf mehrere Zeilen verteilt ist.

Im Folgenden finden Sie ein Beispiel für einen TLS-Listener ohne ALPN-Richtlinie.

tls 2.0 2018-12-20T02:59:40 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - ECDHE-RSA-AES128-SHA tlsv12 - my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com - - - 2018-12-20T02:59:30

Im Folgenden finden Sie ein Beispiel für einen TLS-Listener mit ALPN-Richtlinie.

tls 2.0 2020-04-01T08:51:42 net/my-network-loadbalancer/c6e77e28c25b2234 g3d4b5e8bb8464cd 72.21.218.154:51341 172.100.100.185:443 5 2 98 246 - arn:aws:acm:us-east-2:671290407336:certificate/2a108f19-aded-46b0-8493-c63eb1ef4a99 - ECDHE-RSA-AES128-SHA tlsv12 - my-network-loadbalancer-c6e77e28c25b2234.elb.us-east-2.amazonaws.com h2 h2 "h2","http/1.1" 2020-04-01T08:51:20

Bucket-Anforderungen

Wenn Sie Zugriffsprotokollierung aktivieren, müssen Sie einen S3-Bucket für die Zugriffsprotokolle angeben. Der Bucket-Eigentümer kann ein anderes Konto sein als der Kontoinhaber für den Load Balancer. Der Bucket muss die folgenden Anforderungen erfüllen.

Voraussetzungen
  • Der Bucket muss sich in derselben Region wie der Load Balancer befinden.

  • Das von Ihnen angegebene Präfix darf nicht AWSLogs enthalten. Wir fügen den Teil des Dateinamens hinzu, der mit AWSLogs nach dem von Ihnen angegebenen Bucket-Namen und dem Präfix beginnt.

  • Der Bucket muss über eine Bucket-Richtlinie verfügen, die die Berechtigung zum Schreiben von Zugriffsprotokollen in den Bucket gewährt. Bucket-Richtlinien sind eine Sammlung von JSON-Anweisungen, die in der Sprache der Zugriffsrichtlinie geschrieben sind, um Zugriffsberechtigungen für Ihre Buckets zu definieren. Es folgt eine Beispielrichtlinie .

    { "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["012345678912"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678912:*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["012345678912"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:012345678912:*"] } } } ] }

Geben Sie in der vorherigen Richtlinie für aws:SourceAccount die Liste der Kontonummern an, für die Protokolle an diesen Bucket übermittelt werden. Geben Sie für aws:SourceArn die Liste der ARNs der Ressource, die die Protokolle generiert, im Format arn:aws:logs:source-region:source-account-id:* an.

Verschlüsselung

Sie können die serverseitige Verschlüsselung für Ihren Amazon-S3-Zugriffsprotokoll-Bucket auf eine der folgenden Arten aktivieren:

  • Von Amazon S3 verwaltete Schlüssel (SSE-S3)

  • AWS KMS Schlüssel, die in AWS Key Management Service (SSE-KMS) † gespeichert sind

† Mit Network Load Balancer Balancer-Zugriffsprotokollen können Sie keine AWS verwalteten Schlüssel verwenden. Sie müssen vom Kunden verwaltete Schlüssel verwenden.

Weitere Informationen finden Sie unter Angeben der Amazon S3 S3-Verschlüsselung (SSE-S3) und Spezifizieren der serverseitigen Verschlüsselung mit AWS KMS (SSE-KMS) im Amazon S3 S3-Benutzerhandbuch.

Die Schlüsselrichtlinie muss es dem Service ermöglichen, die Protokolle zu verschlüsseln und zu entschlüsseln. Es folgt eine Beispielrichtlinie .

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" } ] }

Aktivieren der Zugriffsprotokollierung

Wenn Sie die Zugriffsprotokollierung für Ihren Load Balancer aktivieren, müssen Sie den S3-Bucket angeben, in dem der Load Balancer die Protokolle speichert. Vergewissern Sie sich, dass Sie Besitzer dieses Buckets sind und dass Sie die erforderliche Bucket-Richtlinie für diesen Bucket konfiguriert haben. Weitere Informationen finden Sie unter Bucket-Anforderungen.

Aktivieren von Zugriffsprotokollierung mithilfe der Konsole
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Klicken Sie im Navigationsbereich auf Load Balancers.

  3. Wählen Sie den Namen Ihres Load Balancers aus, um die Detailseite zu öffnen.

  4. Klicken Sie in der Registerkarte Attribute auf Bearbeiten.

  5. Gehen Sie auf der Seite Edit load balancer attributes (Load Balancer Attribute verteilen) wie folgt vor:

    1. Aktivieren Sie für die Überwachung die Option Zugriffsprotokolle.

    2. Wählen Sie S3 durchsuchen und wählen Sie einen Bucket aus, den Sie verwenden möchten. Geben Sie alternativ den Speicherort Ihres S3-Buckets einschließlich eines beliebigen Präfixes ein.

    3. Wählen Sie Änderungen speichern aus.

Um die Zugriffsprotokollierung zu aktivieren, verwenden Sie AWS CLI

Verwenden Sie den Befehl modify-load-balancer-attributes.

Deaktivieren der Zugriffsprotokollierung

Sie können Zugriffsprotokollierung für Ihren Load Balancer jederzeit deaktivieren. Nachdem Sie Zugriffsprotokollierung deaktiviert haben, verbleiben Ihre Zugriffsprotokolle in Ihrem S3-Bucket, bis Sie sie löschen. Weitere Informationen finden Sie unter Arbeiten mit Buckets im Benutzerhandbuch für Amazon Simple Storage Service.

So deaktivieren Sie die Zugriffsprotokollierung mithilfe der Konsole
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Klicken Sie im Navigationsbereich auf Load Balancers.

  3. Wählen Sie den Namen Ihres Load Balancers aus, um die Detailseite zu öffnen.

  4. Klicken Sie auf der Registerkarte Attribute auf Bearbeiten.

  5. Deaktivieren Sie für die Überwachung die Zugriffsprotokolle.

  6. Wählen Sie Änderungen speichern aus.

Um die Zugriffsprotokollierung zu deaktivieren, verwenden Sie AWS CLI

Verwenden Sie den Befehl modify-load-balancer-attributes.

Verarbeiten von Zugriffsprotokolldateien

Die Zugriffsprotokolldateien werden komprimiert. Wenn Sie die Dateien mithilfe der Amazon-S3-Konsole öffnen, werden sie dekomprimiert und die Informationen werden angezeigt. Wenn Sie die Dateien herunterladen, müssen Sie sie dekomprimieren, um die Informationen anzuzeigen.

Falls es viele Zugriff auf Ihre Website gibt, kann der Load Balancer Protokolldateien mit mehreren Gigabyte an Daten generieren. Möglicherweise sind Sie nicht in der Lage, eine so große Datenmenge mithilfe von line-by-line Processing zu verarbeiten. Daher müssen Sie möglicherweise Tools zur Datenanalyse verwenden, die parallele Verarbeitungslösungen bieten. Beispielsweise können Sie die folgenden analytischen Tools zum Analysieren und Verarbeiten von Zugriffsprotokollen verwenden: