View a markdown version of this page

Zugriffsprotokolle für Amazon VPC Lattice - Amazon VPC Lattice

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 Amazon VPC Lattice

Zugriffsprotokolle erfassen detaillierte Informationen zu Ihren VPC Lattice-Diensten und Ressourcenkonfigurationen. Sie können diese Zugriffsprotokolle verwenden, um Verkehrsmuster zu analysieren und alle Dienste im Netzwerk zu überprüfen. Für VPC Lattice-Dienste veröffentlichen wir VpcLatticeAccessLogs und für Ressourcenkonfigurationen veröffentlichen wir, VpcLatticeResourceAccessLogs welche separat konfiguriert werden müssen.

Zugriffsprotokolle sind optional und standardmäßig deaktiviert. Nachdem Sie Zugriffsprotokolle aktiviert haben, können Sie sie jederzeit deaktivieren.

Preisgestaltung

Wenn Zugriffsprotokolle veröffentlicht werden, fallen Gebühren an. Protokolle, die AWS nativ in Ihrem Namen veröffentlicht werden, werden als Verkaufsprotokolle bezeichnet. Weitere Informationen zur Preisgestaltung für verkaufte Logs finden Sie unter CloudWatch Amazon-Preise. Wählen Sie Logs aus und sehen Sie sich die Preise unter Vented Logs an.

Zum Aktivieren von Zugriffsprotokollen sind IAM-Berechtigungen erforderlich

Um Zugriffsprotokolle zu aktivieren und die Protokolle an ihre Ziele zu senden, muss die Richtlinie, die dem IAM-Benutzer, der Gruppe oder der Rolle zugeordnet ist, die Sie verwenden, die folgenden Aktionen enthalten.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "ManageVPCLatticeAccessLogSetup", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "vpc-lattice:CreateAccessLogSubscription", "vpc-lattice:GetAccessLogSubscription", "vpc-lattice:UpdateAccessLogSubscription", "vpc-lattice:DeleteAccessLogSubscription", "vpc-lattice:ListAccessLogSubscriptions" ], "Resource": [ "*" ] } ] }

Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im AWS Identity and Access Management -Benutzerhandbuch.

Nachdem Sie die Richtlinie aktualisiert haben, die dem IAM-Benutzer, der Gruppe oder der Rolle zugeordnet ist, den Sie verwenden, gehen Sie zu. Aktivieren der Zugriffsprotokolle

Auf Ziele für Logs zugreifen

Sie können Zugriffsprotokolle an die folgenden Ziele senden.

CloudWatch Amazon-Protokolle
  • VPC Lattice übermittelt Logs in der Regel innerhalb von 2 CloudWatch Minuten an Logs. Beachten Sie jedoch, dass die tatsächliche Protokollzustellung nach bestem Wissen und Gewissen erfolgt und es zu zusätzlichen Latenzen kommen kann.

  • Eine Ressourcenrichtlinie wird automatisch erstellt und der CloudWatch Protokollgruppe hinzugefügt, wenn die Protokollgruppe nicht über bestimmte Berechtigungen verfügt. Weitere Informationen finden Sie im CloudWatch Amazon-Benutzerhandbuch unter An CloudWatch Logs gesendete Protokolle.

  • Die Zugriffsprotokolle, an die gesendet werden, finden Sie in der CloudWatch Konsole CloudWatch unter Protokollgruppen. Weitere Informationen finden Sie im CloudWatch Amazon-Benutzerhandbuch unter An CloudWatch Logs gesendete Protokolldaten anzeigen.

Amazon S3
  • VPC Lattice übermittelt Protokolle in der Regel innerhalb von 6 Minuten an Amazon S3. Beachten Sie jedoch, dass die tatsächliche Protokollzustellung nach bestem Wissen und Gewissen erfolgt und es zu zusätzlichen Latenzen kommen kann.

  • Eine Bucket-Richtlinie wird automatisch erstellt und Ihrem Amazon S3-Bucket hinzugefügt, falls der Bucket nicht über bestimmte Berechtigungen verfügt. Weitere Informationen finden Sie im CloudWatch Amazon-Benutzerhandbuch unter An Amazon S3 gesendete Protokolle.

  • Zugriffsprotokolle, die an Amazon S3 gesendet werden, verwenden die folgende Namenskonvention:

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/AccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
  • VpcLatticeResourceAccessLogs die an Amazon S3 gesendet werden, verwenden die folgende Namenskonvention:

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/ResourceAccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeResourceAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
Amazon Data Firehose
  • VPC Lattice übermittelt Protokolle in der Regel innerhalb von 2 Minuten an Firehose. Beachten Sie jedoch, dass die tatsächliche Protokollzustellung nach bestem Wissen und Gewissen erfolgt und es zu zusätzlichen Latenzen kommen kann.

  • Es wird automatisch eine serviceverknüpfte Rolle erstellt, die VPC Lattice die Berechtigung zum Senden von Zugriffsprotokollen erteilt. Amazon Data Firehose Damit die automatische Rollenerstellung erfolgreich ist, müssen die Benutzer über die Berechtigung für die Aktion iam:CreateServiceLinkedRole verfügen. Weitere Informationen finden Sie im CloudWatch Amazon-Benutzerhandbuch unter Amazon Data Firehose An gesendete Protokolle.

  • Weitere Informationen zum Anzeigen der an Amazon Data Firehose gesendeten Protokolle finden Sie im Amazon Data Firehose Entwicklerhandbuch unter Überwachung von Amazon Kinesis Data Streams.

Aktivieren der Zugriffsprotokolle

Gehen Sie wie folgt vor, um Zugriffsprotokolle so zu konfigurieren, dass Zugriffsprotokolle erfasst und an das von Ihnen gewählte Ziel gesendet werden.

Aktivieren Sie Zugriffsprotokolle mithilfe der Konsole

Sie können während der Erstellung Zugriffsprotokolle für ein Dienstnetzwerk, einen Dienst oder eine Ressourcenkonfiguration aktivieren. Sie können Zugriffsprotokolle auch aktivieren, nachdem Sie eine Dienstnetzwerk-, Dienst- oder Ressourcenkonfiguration erstellt haben, wie im folgenden Verfahren beschrieben.

So erstellen Sie einen Basisdienst mithilfe der Konsole
  1. Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie das Dienstnetzwerk, den Dienst oder die Ressourcenkonfiguration aus.

  3. Wählen Sie Aktionen, Protokolleinstellungen bearbeiten.

  4. Schalten Sie den Kippschalter Zugriffsprotokolle ein.

  5. Fügen Sie wie folgt ein Lieferziel für Ihre Zugriffsprotokolle hinzu:

    • Wählen Sie CloudWatch Protokollgruppe und dann eine Protokollgruppe aus. Um eine Loggruppe zu erstellen, wählen Sie Loggruppe erstellen in CloudWatch.

    • Wählen Sie S3-Bucket aus und geben Sie den S3-Bucket-Pfad einschließlich eines beliebigen Präfixes ein. Um Ihre S3-Buckets zu durchsuchen, wählen Sie Browse S3.

    • Wählen Sie Kinesis Data Firehose Delivery Stream und wählen Sie einen Delivery Stream aus. Um einen Delivery Stream zu erstellen, wählen Sie Create a Delivery Stream in Kinesis aus.

  6. Wählen Sie Änderungen speichern aus.

Aktivieren Sie Zugriffsprotokolle mit dem AWS CLI

Verwenden Sie den CLI-Befehl create-access-log-subscription, um Zugriffsprotokolle für Dienstnetzwerke oder Dienste zu aktivieren.

Nachverfolgung anfordern

VPC Lattice unterstützt mit dem Header x-amzn-requestid die Nachverfolgung und Korrelation von Anfragen über Clients, Ziele und Protokolle hinweg, um die Beobachtbarkeit und das Debuggen zu gewährleisten. Dieser Header kann vom Client gesetzt und gesendet oder von VPC Lattice generiert werden. Er wird an Ziele gesendet und ist auch in Zugriffsprotokollen verfügbar.

Standardverhalten
  • VPC Lattice generiert diesen Header automatisch für jede Anfrage.

  • Der Wert ist ein zufällig generierter Bezeichner (UUID-style standardmäßig).

  • Der generierte Bezeichner lautet:

    • Wird an nachgelagerte Ziele weitergegeben.

    • Wird in Antwort-Headern an die Clients zurückgegeben.

    • Eingeloggte Zugriffsprotokolle

Beispiel (Standardantwort)

Das Folgende ist ein Beispiel für eine an den Client gesendete Antwort mit dem Standardverhalten von VPC Lattice, das einen Zufallswert für den Wert des x-amzn-requestid-Headers generiert.

{ "HTTP/1.1 200 OK x-amzn-requestid: a9f2c7a1-6b4f-4c79-9e87-ff5a1234a001" }
Der Client legt den Wert fest
  • Clients können diesen Header optional für eingehende Anfragen festlegen, um den automatisch generierten Wert zu überschreiben.

  • Überlegungen

    • Der Header-Wert muss keinem UUID-Format folgen.

    • Wenn der Header-Wert 512 Byte überschreitet, kürzt VPC Lattice ihn auf 512.

  • Bei erfolgreichem Überschreiben wird der angegebene Header-Wert:

    • Erscheint in den Antwort-Headern

    • Wird an Ziele weitergegeben

    • Erscheint in Zugriffsprotokollen und Metriken

Beispiel (Kundenanfrage überschreiben)

Das Folgende ist ein Beispiel für eine vom Client gesendete Anfrage mit einem Header-Wert.

{ "GET /my-service/endpoint HTTP/1.1 Host: my-api.example.com x-amzn-requestid: trace-request-foobar" }
Beispiel (Standard-Override-Antwort)

Das Folgende ist ein Beispiel für eine Antwort, die mit dem überschriebenen Wert an den Client gesendet wurde.

{ "HTTP/1.1 200 OK x-amzn-requestid: trace-request-foobar" }

Auf den Inhalt des Protokolls zugreifen

Die folgende Tabelle beschreibt die Felder eines Zugriffsprotokolleintrags.

Feld Description Format
callerPrincipalTags

Das PrincipalTags in der Anfrage.

JSON

hostHeader

Der Authority Header der Anfrage.

Zeichenfolge

sslCipher

Der OpenSSL-Name für den Satz von Chiffren, der zum Aufbau der Client-TLS-Verbindung verwendet wird.

Zeichenfolge

serviceNetworkArn

Das Dienstnetzwerk-ARN.

arn:aws:vpc-lattice: ::servicenetwork/ region account id

resolvedUser

Der ARN des Benutzers, wenn die Authentifizierung aktiviert ist und die Authentifizierung abgeschlossen ist.

null | ARN | „Anonym“ | „Unbekannt“

authDeniedReason

Der Grund, warum der Zugriff verweigert wird, wenn die Authentifizierung aktiviert ist.

null | „Dienst“ | „Netzwerk“ | „Identität“

requestMethod

Der Methodenheader der Anfrage.

Zeichenfolge

targetGroupArn

Die Zielhostgruppe, zu der der Zielhost gehört.

Zeichenfolge

tlsVersion

Die TLS-Version.

TLSv x

userAgent

Der User-Agent-Header.

Zeichenfolge

serverNameIndication

[Nur HTTPS] Der Wert, der auf dem SSL-Verbindungs-Socket für Server Name Indication (SNI) festgelegt wurde.

Zeichenfolge

destinationVpcId

Die Ziel-VPC-ID.

vpc- xxxxxxxx

sourceIpPort

Die IP-Adresse und:Port der Quelle.

ip:port

targetIpPort

Die IP-Adresse und der Port des Ziels.

ip:port

serviceArn

Der Dienst-ARN.

arn:aws:vpc-lattice: ::service/ region account id

sourceVpcId

Die Quell-VPC-ID.

vpc- xxxxxxxx

requestPath

Den Pfad der Anfrage.

LatticePath?:path

startTime

Die Startzeit der Anfrage.

YYYY- MM - DD T HHMM: SS Z

protocol

Das Protokoll. Derzeit entweder HTTP/1.1 oder HTTP/2.

Zeichenfolge

responseCode

Der HTTP-Antwort-Code. Nur der Antwortcode für die letzten Header wird protokolliert. Weitere Informationen finden Sie unter Problembehandlung bei Zugriffsprotokollen.

Ganzzahl

bytesReceived

Die empfangenen Text- und Header-Bytes.

Ganzzahl

bytesSent

Die gesendeten Text- und Header-Bytes.

Ganzzahl

duration

Gesamtdauer der Anfrage in Millisekunden von der Startzeit bis zum letzten Byteausgang.

Ganzzahl

requestToTargetDuration

Gesamtdauer der Anfrage in Millisekunden von der Startzeit bis zum letzten Byte, das an das Ziel gesendet wurde.

Ganzzahl

responseFromTargetDuration

Gesamtdauer der Anfrage in Millisekunden vom ersten Byte, das vom Zielhost gelesen wurde, bis zum letzten Byte, das an den Client gesendet wurde.

Ganzzahl

grpcResponseCode

Der gRPC-Antwortcode. Weitere Informationen finden Sie unter Statuscodes und ihre Verwendung in gRPC. Dieses Feld wird nur protokolliert, wenn der Dienst gRPC unterstützt.

Ganzzahl

requestId

Dies ist eine eindeutige Kennung, die automatisch als Wert des x-amzn-requestid-Headers in den Antworten enthalten ist. Er ermöglicht die Korrelation von Anfragen zwischen Clients, Zielen und Protokollen zur besseren Beobachtbarkeit und zum Debuggen.

Zeichenfolge

callerPrincipal

Der authentifizierte Principal.

Zeichenfolge

callerX509SubjectCN

Der Betreffname (CN).

Zeichenfolge

callerX509IssuerOU

Der Emittent (OU).

Zeichenfolge

callerX509SANNameCN

Die Alternative des Emittenten ()Name/CN.

Zeichenfolge

callerX509SANDNS

Der alternative Name des Betreffs (DNS).

Zeichenfolge

callerX509SANURI

Der alternative Betreffname (URI).

Zeichenfolge

sourceVpcArn

Der ARN der VPC, von der die Anfrage stammt.

arn:aws:ec2: ::vpc/ region account id

failureReason

Gibt den Grund an, warum eine Anfrage fehlgeschlagen ist. Die folgenden Werte sind möglich:

  • TargetConnectionError— Die Anfrage konnte keine Verbindung zu einem Ziel in der Zielgruppe herstellen.

  • TargetProtocolError- Das Ziel hat nicht mit gültigen Daten geantwortet. Dies könnte darauf hindeuten, dass das Ziel ungültige TLS-Einträge hat oder ein ungültiges Zielgruppenprotokoll verwendet hat.

  • TargetDataTimeout— Das Leerlauf-Timeout wurde erreicht.

  • TargetConnectionClosed- Das Ziel hat die Verbindung geschlossen, bevor die Antwort abgeschlossen wurde.

  • ClientConnectionClosed- Der Client hat die Verbindung geschlossen, bevor er die vollständige Antwort erhalten hat.

  • ClientRateLimited- Der Client hat das Verbindungslimit überschritten und VPC Lattice hat die Rate begrenzt.

  • ClientAccessDenied- VPC Lattice hat den Zugriff auf die Ressource verweigert. Verwenden Sie das, um authDeniedReason weitere Informationen darüber zu erhalten, warum VPC Lattice den Zugriff verweigert hat.

  • ClientProtocolError- Der Client hat Daten gesendet, die nicht verstanden wurden. Dies könnte darauf hindeuten, dass der Client ungültige TLS-Einträge oder ein ungültiges Protokoll verwendet hat.

  • ConnectionDurationExceeded— Die Verbindung hat das Limit für die maximale Verbindungsdauer erreicht.

  • InternalError- Bei der Bearbeitung der Anfrage ist ein interner Fehler aufgetreten.

Zeichenfolge
Beispiel

Es folgt ein Beispiel für einen Protokolleintrag.

{ "callerPrincipalTags" : "{ "TagA": "ValA", "TagB": "ValB", ... }", "hostHeader": "example.com", "sslCipher": "-", "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/svn-1a2b3c4d", "resolvedUser": "Unknown", "authDeniedReason": "null", "requestMethod": "GET", "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1a2b3c4d", "tlsVersion": "-", "userAgent": "-", "serverNameIndication": "-", "destinationVpcId": "vpc-0abcdef1234567890", "sourceIpPort": "178.0.181.150:80", "targetIpPort": "131.31.44.176:80", "serviceArn": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-1a2b3c4d", "sourceVpcId": "vpc-0abcdef1234567890", "requestPath": "/billing", "startTime": "2023-07-28T20:48:45Z", "protocol": "HTTP/1.1", "responseCode": 200, "bytesReceived": 42, "bytesSent": 42, "duration": 375, "requestToTargetDuration": 1, "responseFromTargetDuration": 1, "grpcResponseCode": 1, "requestId": "a9f2c7a1-6b4f-4c79-9e87-ff5a1234a001" }

Inhalt des Ressourcenzugriffsprotokolls

In der folgenden Tabelle werden die Felder eines Protokolleintrags für den Ressourcenzugriff beschrieben.

Feld Description Format
serviceNetworkArn

Das Dienstnetzwerk-ARN.

arn: partition vpc-lattice: ::servicenetwork/ region account id

serviceNetworkResourceAssociationId

Die Ressourcen-ID des Dienstnetzwerks.

snra-xxx

vpcEndpointId

Die Endpunkt-ID, die für den Zugriff auf die Ressource verwendet wurde.

Zeichenfolge

sourceVpcArn

Der Quell-VPC-ARN oder die VPC, von der aus die Verbindung initiiert wurde.

Zeichenfolge

resourceConfigurationArn

Der ARN der Ressourcenkonfiguration, auf die zugegriffen wurde.

Zeichenfolge

protocol

Das Protokoll, das für die Kommunikation mit der Ressourcenkonfiguration verwendet wird. Derzeit wird nur TCP unterstützt.

Zeichenfolge

sourceIpPort

Die IP-Adresse und der Port der Quelle, die die Verbindung initiiert hat.

ip:port

destinationIpPort

Die IP-Adresse und der Port, über den die Verbindung initiiert wurde. Dies wird die IP von sein SN-E/SN-A.

ip:port

gatewayIpPort

Die IP-Adresse und der Port, die vom Ressourcen-Gateway für den Zugriff auf die Ressource verwendet werden.

ip:port

resourceIpPort

Die IP-Adresse und der Port der Ressource.

ip:port

Beispiel

Es folgt ein Beispiel für einen Protokolleintrag.

{ "eventTimestamp": "2024-12-02T10:10:10.123Z", "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:1234567890:servicenetwork/sn-1a2b3c4d", "serviceNetworkResourceAssociationId": "snra-1a2b3c4d", "vpcEndpointId": "vpce-01a2b3c4d", "sourceVpcArn": "arn:aws:ec2:us-west-2:1234567890:vpc/vpc-01a2b3c4d", "resourceConfigurationArn": "arn:aws:vpc-lattice:us-west-2:0987654321:resourceconfiguration/rcfg-01a2b3c4d", "protocol": "tcp", "sourceIpPort": "172.31.23.56:44076", "destinationIpPort": "172.31.31.226:80", "gatewayIpPort": "10.0.28.57:49288", "resourceIpPort": "10.0.18.190:80" }

Problembehandlung bei Zugriffsprotokollen

Dieser Abschnitt enthält eine Erläuterung der HTTP-Fehlercodes, die möglicherweise in Zugriffsprotokollen angezeigt werden.

Fehlercode Mögliche Ursachen

HTTP 400: Bad Request (Schlechte Anfrage)

  • Der Client hat eine falsch formatierte Anfrage gesendet, die nicht der HTTP-Spezifikation entspricht.

  • Der Anforderungsheader hat 60 KB für den gesamten Anforderungsheader oder mehr als 100 Header überschritten.

  • Der Client hat die Verbindung beendet, bevor er den vollständigen Anfragetext gesendet hat.

HTTP 403: Forbidden (Verboten)

Die Authentifizierung wurde für den Dienst konfiguriert, aber die eingehende Anfrage ist nicht authentifiziert oder autorisiert.

HTTP 404: Nicht vorhandener Dienst

Sie versuchen, eine Verbindung zu einem Dienst herzustellen, der nicht existiert oder nicht im richtigen Servicenetzwerk registriert ist.

HTTP 500: Internal Server Error (Interner Serverfehler)

Bei VPC Lattice ist ein Fehler aufgetreten, z. B. konnte keine Verbindung zu Zielen hergestellt werden.

HTTP 502: Bad Gateway

Bei VPC Lattice ist ein Fehler aufgetreten.