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.
Protokollieren von API-Aufrufen für Webfunktionen mit AWS CloudTrail
Mit können Sie die Aktionen verfolgen AWS CloudTrail, die von einem Benutzer, einer Rolle oder AWS-Service in AWS Lambda Web Functions ausgeführt wurden. CloudTrail bietet eine Aufzeichnung dieser Aktionen. CloudTrail erfasst Aufrufe von Webfunktionen als Datenereignisse. Sie können diese Informationen verwenden, um festzustellen, wer wann und von wo aus eine Webfunktion aufgerufen hat, was bei der Sicherheitsanalyse und Betriebsprüfung hilfreich ist.
Datenereignisse der Webfunktion in CloudTrail
Datenereignisse liefern Informationen über Operationen, die an einer Ressource ausgeführt werden. Beispielsweise ist das Aufrufen eines Webfunktionsendpunkts ein Datenereignis. Diese Operationen werden auch als Operationen auf Datenebene bezeichnet und sind häufig sehr umfangreich. Standardmäßig werden CloudTrail keine Datenereignisse protokolliert, und im CloudTrail Ereignisverlauf werden sie nicht aufgezeichnet.
Für Datenereignisse werden zusätzliche Gebühren fällig. Weitere Informationen finden Sie unter CloudTrail – Preise
Sie können Datenereignisse für den AWS::Lambda::WebFunction Ressourcentyp mithilfe der CloudTrail Konsole oder CloudTrail API-Operationen protokollieren. AWS CLI CloudTrail zeichnet jeden Aufruf in der Region auf AWS-Region , die die Anfrage bedient hat, und awsRegion identifiziert diese Region. Im Gegensatz zu Protokollen und Metriken werden Aufrufereignisse nicht in der Heimatregion zentralisiert. Verwenden Sie für einen MultiRegion PerRegion OR-Endpunkt einen Trail- oder Event-Datenspeicher mit mehreren Regionen, sodass Aufrufe in jeder Region, die der Endpunkt bedient, aufgezeichnet werden.
Die folgende Tabelle zeigt den Datenereignistyp für Webfunktionen.
| Typ des Datenereignisses (Konsole) | resources.type-Wert | Daten-APIs, bei denen Sie angemeldet sind CloudTrail |
|---|---|---|
| Lambda-Webfunktion | AWS::Lambda::WebFunction |
InvokeWebFunctionEndpoint |
CloudTrail zeichnet die folgenden Schlüsselbezeichner für den Aufruf einer Webfunktion auf:
| Kennung | Wert |
|---|---|
eventSource | lambda.amazonaws.com |
eventName | InvokeWebFunctionEndpoint. Dies ist der Wert, nach dem gefiltert werden soll. |
| IAM-Aktion | lambda:InvokeWebFunctionEndpoint |
readOnly | false, weil ein Aufruf Ihren Funktionscode ausführt. |
resources.type | AWS::Lambda::WebFunction |
resources.ARN | Die Funktion ARN, nicht der Endpunkt-ARN. Trail-Selektoren funktionieren daher auf Funktionsebene. |
Der folgende erweiterte Event-Selektor protokolliert Aufrufe nur für eine einzelne Webfunktion.
[ { "Name": "web-function-invokes", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::WebFunction"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-1:111122223333:web-function/hello-world"] } ] } ]
Gehen Sie wie folgt vor, um Datenereignisse auf einem Trail zu aktivieren.
Um Datenereignisse der Webfunktion zu aktivieren und zu überprüfen (AWS CLI)
-
Erstellen Sie den Trail, der die Datenereignisse aufzeichnet, oder wählen Sie ihn aus. Anweisungen finden Sie im AWS CloudTrail Benutzerhandbuch unter Protokollieren von Datenereignissen.
-
Speichern Sie den folgenden erweiterten Event-Selektor unter.
web-function-data-events.jsonEr zeichnet Aufrufe für eine Webfunktion auf. Um Aufrufe für jede Webfunktion im Konto aufzuzeichnen, entfernen Sie die Feldauswahl.resources.ARN[ { "Name": "web-function-invocations", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::WebFunction"] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-1:111122223333:web-function/my-web-app" ] } ] } ] -
Wenden Sie den Selektor auf den Trail an:
aws cloudtrail put-event-selectors \ --trail-namemy-trail\ --advanced-event-selectors file://web-function-data-events.jsonWichtig
put-event-selectorsersetzt die vorhandenen Event-Selektoren des Trails. Wenn der Trail bereits andere Ereignisse aufzeichnet, fügen Sie deren Selektoren in dieselbe Datei ein. -
Rufen Sie den Endpunkt mit einer Testanforderung auf.
-
Fragen Sie das Ziel des Pfads für
eventName = InvokeWebFunctionEndpointab. Überprüfen Sie den Funktions-ARN, die Ereigniszeit, die Anforderungs-ID, die für den Authentifizierungspfad verfügbaren Anruferinformationen und alle Felder für bedingte Fehler. Wenn der Selektor funktioniert, gibt die Abfrage einInvokeWebFunctionEndpointEreignis für Ihre Testanforderung zurück, ähnlich dem Beispiel unter. Beispiel: erfolgreicher Aufruf (nicht authentifizierter Anrufer)
Um Datenereignisse stattdessen in einem CloudTrail Lake-Ereignisdatenspeicher aufzuzeichnen, fügen Sie dem Ereignisdatenspeicher dieselben Feldselektoren hinzu. Weitere Informationen finden Sie im AWS CloudTrail -Benutzerhandbuch.
Felder in einem Ereignis InvokeWebFunctionEndpoint
In der folgenden Tabelle werden die Felder in einem InvokeWebFunctionEndpoint Ereignis beschrieben.
| Feld | Hinweise |
|---|---|
eventVersion |
Die Version des -Ereignisformats. |
eventSource |
Immer lambda.amazonaws.com. |
eventName |
Immer InvokeWebFunctionEndpoint. |
eventCategory |
Immer Data. |
eventType |
Zum Beispiel der EreignistypAwsApiCall. |
readOnly |
Immerfalse, weil ein Aufruf Ihren Funktionscode ausführt. |
managementEvent |
Immer false. |
eventTime |
Datum und Uhrzeit in UTC, an dem Lambda das Ereignis aufgezeichnet hat. Für einen erfolgreichen Aufruf zeichnet Lambda das Ereignis auf, wenn Ihre Funktion ihre Antwort startet, also eventTime kann es später als zu dem Zeitpunkt sein, zu dem die Anfrage eingetroffen ist. |
sourceIPAddress |
Die IP-Adresse, von der die Anforderung erfolgt ist. |
userAgent |
Der Agent, mit dem der Anrufer die Anfrage gestellt hat. Anwesend, wenn der Anrufer einen User-Agent Header sendet. |
requestParameters |
Enthält endpointArn den ARN des aufgerufenen Endpunkts. Die Payload der Anfrage wird nicht protokolliert. |
responseElements |
Immer null. |
resources |
Enthält einen Eintrag mit den accountIdtype, und ARN der Funktion. |
additionalEventData |
Enthält functionRevisionArn den ARN der Revision, die die Anfrage bearbeitet hat. Dieses Feld ist bei jedem Ereignis vorhanden, auch bei Ablehnungen. |
tlsDetails |
Die TLS-Version, die Cipher Suite und der Host-Header der Anfrage. |
userIdentity |
Die Identität des Anrufers. Einzelheiten finden Sie in der folgenden Liste. |
sharedEventID |
Vorhanden CloudTrail , wenn dasselbe Ereignis an mehrere Personen gesendet wird AWS-Konto. |
errorCode, errorMessage |
Nur bei einem Fehlerereignis vorhanden. |
requestID, eventID,
recipientAccountId, awsRegion |
CloudTrail Standardfelder, die die Anfrage, das Ereignis, den Empfänger AWS-Konto und den identifizieren AWS-Region. |
Web-Funktionsereignisse verwenden die folgenden ARN-Formen:
-
Funktion (
resources[].ARN) —arn:aws:lambda:us-east-1:123456789012:web-function/my-fn -
Endpunkt (
requestParameters.endpointArn) —arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint -
Revision (
additionalEventData.functionRevisionArn) —arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c
Das userIdentity Feld hängt davon ab, wie sich der Anrufer authentifiziert hat:
-
Nicht authentifizierte Aufrufe werden mit Typ aufgezeichnet.
userIdentityUnknown -
IAM-authenticated Anrufer werden mit ihrem eigenen Principal protokolliert. Beispielsweise wird ein Anrufer, der temporäre Anmeldeinformationen verwendet
AssumedRole, mit den Typen anarnund a angezeigt.sessionContext -
Das Feld
accessKeyIdwird nicht gefüllt.
Fehlerereignisse
CloudTrail protokolliert auch Aufrufversuche, die fehlschlagen, nachdem der Anrufer authentifiziert wurde. In der folgenden Tabelle werden diese Fehlerereignisse beschrieben.
| Szenario | errorCode | errorMessage |
|---|---|---|
| Der Anrufer ist nicht autorisiert | AccessDenied |
Der Benutzer ist nicht berechtigt, Folgendes auszuführen: lambda:InvokeWebFunctionEndpoint |
| Anforderungsrate, Parallelität oder vCPU-Limit erreicht (Endpunkt oder Konto) | ThrottlingException |
Quote überschritten. |
| Dienstfehler | ServiceException |
Servicefehler |
| Anwendungsfehler oder ungültige Client-Anfrage | Nicht zutreffend | Wird als erfolgreicher API-Aufruf behandelt. Der Aufruf hat die Funktion erreicht und ausgeführt. |
Bei einem erfolgreichen Aufruf gibt es kein Oder. errorCode errorMessage Autorisierungsverweigerungen werden als protokolliert. AccessDenied CloudTrail zeichnet keine Anfragen auf, bei denen die Authentifizierung fehlschlägt, wie Anfragen mit einer fehlenden, falsch formatierten, ungültigen oder abgelaufenen Signatur, und zeichnet keine Anfragen auf, die Lambda vor der Authentifizierung ablehnt, wie Anfragen an einen Endpunkt, dessen rateLimit Wert 0 ist. Ausfälle der internen Authentifizierungsinfrastruktur werden ebenfalls nicht aufgezeichnet. Um einen Anstieg der abgelehnten Anfragen zu erkennen, aktivieren Sie den Alarm HTTPResponseStatusClass4XX im AWS/Lambda/Web Namespace.
Beispiel: erfolgreicher Aufruf (nicht authentifizierter Anrufer)
Das folgende Beispiel zeigt einen erfolgreichen Aufruf durch einen nicht authentifizierten Anrufer.
{ "Records": [ { "eventVersion": "1.11", "userIdentity": { "type": "Unknown" }, "eventTime": "2026-09-22T18:41:07Z", "eventSource": "lambda.amazonaws.com", "eventName": "InvokeWebFunctionEndpoint", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.42", "userAgent": "curl/8.4.0", "requestParameters": { "endpointArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint" }, "responseElements": null, "additionalEventData": { "functionRevisionArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c" }, "requestID": "b1f8a4c2-7e3d-4a19-9f6b-2c5d8e0a1234", "eventID": "d4c3b2a1-5f6e-7a8b-9c0d-1e2f3a4b5c6d", "readOnly": false, "resources": [ { "accountId": "123456789012", "type": "AWS::Lambda::WebFunction", "ARN": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "123456789012", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws" } } ] }
Bei einem IAM-authenticated Anrufer enthält das userIdentity Feld stattdessen den Principal des Aufrufers, z. B. Typ AssumedRole mit einem arn und einemsessionContext, und die übrigen Felder bleiben unverändert.
Beispiel: Abgelehnter Aufruf
Fehlerereignisse werden übertragen errorCode underrorMessage. Das folgende Beispiel zeigt einen abgelehnten Aufruf.
{ "Records": [ { "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "ARO01EXAMPLEID:session-name", "arn": "arn:aws:sts::123456789012:assumed-role/app-invoke-role/session-name", "accountId": "123456789012", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "ARO01EXAMPLEID", "arn": "arn:aws:iam::123456789012:role/app-invoke-role", "accountId": "123456789012", "userName": "app-invoke-role" }, "attributes": { "creationDate": "2026-09-22T18:39:55Z", "mfaAuthenticated": "false" } } }, "eventTime": "2026-09-22T18:42:13Z", "eventSource": "lambda.amazonaws.com", "eventName": "InvokeWebFunctionEndpoint", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.42", "userAgent": "aws-sdk-python/1.34.0", "errorCode": "AccessDenied", "errorMessage": "User is not authorized to perform: lambda:InvokeWebFunctionEndpoint", "requestParameters": { "endpointArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint" }, "responseElements": null, "additionalEventData": { "functionRevisionArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c" }, "requestID": "c2e9b5d3-8f4e-4b2a-a07c-3d6e9f1b2345", "eventID": "e5d4c3b2-6a7f-8b9c-0d1e-2f3a4b5c6d7e", "readOnly": false, "resources": [ { "accountId": "123456789012", "type": "AWS::Lambda::WebFunction", "ARN": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "123456789012", "eventCategory": "Data", "tlsDetails": { "tlsVersion": "TLSv1.3", "cipherSuite": "TLS_AES_128_GCM_SHA256", "clientProvidedHostHeader": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws" } } ] }
Verwaltungsereignisse in CloudTrail
CloudTrail zeichnet standardmäßig Verwaltungsereignisse für Webfunktionen auf. Sie können die Verwaltungsereignisse der letzten 90 Tage im CloudTrail Event-Verlauf einsehen, ohne eine Spur zu erstellen. Um sie länger zu speichern, erstellen Sie einen Trail- oder CloudTrail Lake-Event-Datenspeicher. Weitere Informationen finden Sie unter Protokollieren von Verwaltungsereignissen im AWS CloudTrail -Benutzerhandbuch.
CloudTrail zeichnet die folgenden Webfunktionsvorgänge als Verwaltungsereignisse auf. Das eventName Feld jedes Ereignisses entspricht dem Operationsnamen.
| Ressource oder Aufgabe | Operationen |
|---|---|
| Web-Funktionen | CreateWebFunction, GetWebFunction,
ListWebFunctions, DeleteWebFunction |
| Überarbeitungen | CreateWebFunctionRevision, GetWebFunctionRevision,
ListWebFunctionRevisions, DeleteWebFunctionRevision |
| Endpunkte | CreateWebFunctionEndpoint, GetWebFunctionEndpoint,
ListWebFunctionEndpoints, UpdateWebFunctionEndpoint,
DeleteWebFunctionEndpoint |
| Kontoeinstellungen | GetWebAccountSettings |
| Ressourcenrichtlinien | PutResourcePolicy, GetResourcePolicy,
DeleteResourcePolicy |
| Tags (Markierungen) | TagResource, UntagResource,
ListTags |
Der Aufruf einer Webfunktion ist eine Operation auf Datenebene. CloudTrail protokolliert ihn nur als Datenereignis, wie unter beschrieben. Datenereignisse der Webfunktion in CloudTrail
Zugehörige Ressourcen
Weitere Informationen finden Sie in den folgenden Ressourcen: