Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Registrazione delle chiamate API Web Function utilizzando AWS CloudTrail
Con AWS CloudTrail, puoi tenere traccia delle azioni intraprese da un utente, da un ruolo o Servizio AWS in Web Functions. AWS Lambda CloudTrail fornisce una registrazione di queste azioni. CloudTrail acquisisce le chiamate di Web Function come eventi di dati. È possibile utilizzare queste informazioni per determinare chi ha richiamato una funzione Web, quando e da dove, il che aiuta con l'analisi della sicurezza e il controllo operativo.
Eventi relativi ai dati di Web Function in CloudTrail
Gli eventi relativi ai dati forniscono informazioni sulle operazioni eseguite su una risorsa. Ad esempio, l'invocazione di un endpoint Web Function è un evento relativo ai dati. Queste operazioni sono note anche come operazioni sul piano dei dati e spesso richiedono volumi elevati. Per impostazione predefinita, CloudTrail non registra gli eventi relativi ai dati e la cronologia degli CloudTrail eventi non li registra.
Per gli eventi di dati sono previsti costi aggiuntivi. Per ulteriori informazioni, consulta Prezzi di CloudTrail
È possibile registrare gli eventi relativi ai dati per il tipo di AWS::Lambda::WebFunction risorsa utilizzando la CloudTrail AWS CLI console o le operazioni CloudTrail API. CloudTrail registra ogni chiamata nell'area Regione AWS che ha fornito la richiesta e awsRegion identifica tale regione. A differenza dei log e delle metriche, gli eventi di chiamata non sono centralizzati nella regione di origine. Per un PerRegion endpoint MultiRegion or, utilizzate un trail multiregionale o un data store di eventi in modo da registrare le chiamate in ogni regione servita dall'endpoint.
La tabella seguente mostra il tipo di evento relativo ai dati per Web Functions.
| Tipo di evento di dati (console) | valore resources.type | API di dati registrate su CloudTrail |
|---|---|---|
| Funzione Web Lambda | AWS::Lambda::WebFunction |
InvokeWebFunctionEndpoint |
CloudTrail registra i seguenti identificatori chiave per una chiamata di Web Function:
| Identificatore | Valore |
|---|---|
eventSource | lambda.amazonaws.com |
eventName | InvokeWebFunctionEndpoint. Questo è il valore in base al quale filtrare. |
| Azione IAM | lambda:InvokeWebFunctionEndpoint |
readOnly | false, perché una chiamata esegue il codice della funzione. |
resources.type | AWS::Lambda::WebFunction |
resources.ARN | La funzione ARN, non l'ARN dell'endpoint. I selettori Trail funzionano quindi a livello di funzione. |
Il seguente selettore di eventi avanzato registra le chiamate per una sola funzione Web.
[ { "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"] } ] } ]
Per attivare gli eventi relativi ai dati su una traccia, utilizzare la procedura seguente.
Per attivare e verificare gli eventi relativi ai dati di Web Function (AWS CLI)
-
Crea o scegli il percorso che registrerà gli eventi relativi ai dati. Per istruzioni, consulta Registrazione degli eventi relativi ai dati nella Guida per l'AWS CloudTrail utente.
-
Salva il seguente selettore di eventi avanzato come.
web-function-data-events.jsonRegistra le chiamate per una funzione Web. Per registrare le chiamate per ogni funzione Web nell'account, rimuovi il selettore di campo.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" ] } ] } ] -
Applica il selettore alla traccia:
aws cloudtrail put-event-selectors \ --trail-namemy-trail\ --advanced-event-selectors file://web-function-data-events.jsonImportante
put-event-selectorssostituisce i selettori di eventi esistenti del percorso. Se il percorso registra già altri eventi, includi i relativi selettori nello stesso file. -
Invoca l'endpoint con una richiesta di test.
-
Interroga la destinazione del percorso per.
eventName = InvokeWebFunctionEndpointVerifica l'ARN della funzione, l'ora dell'evento, l'ID della richiesta, le informazioni sul chiamante disponibili per il percorso di autenticazione ed eventuali campi di errore condizionali. Se il selettore funziona, la query restituisce unInvokeWebFunctionEndpointevento per la richiesta di test, simile all'esempio in. Esempio: chiamata riuscita (chiamante non autenticato)
Per registrare invece eventi relativi ai dati in un data store di eventi CloudTrail Lake, aggiungi gli stessi selettori di campo all'event data store. Per ulteriori informazioni, consulta la Guida per l’utente di AWS CloudTrail .
Campi in un evento InvokeWebFunctionEndpoint
La tabella seguente descrive i campi di un InvokeWebFunctionEndpoint evento.
| Campo | Note |
|---|---|
eventVersion |
La versione del formato dell'evento . |
eventSource |
Sempre lambda.amazonaws.com. |
eventName |
Sempre InvokeWebFunctionEndpoint. |
eventCategory |
Sempre Data. |
eventType |
Il tipo di evento, ad esempioAwsApiCall. |
readOnly |
Semprefalse, perché un'invocazione esegue il codice della funzione. |
managementEvent |
Sempre false. |
eventTime |
La data e l'ora, in UTC, in cui Lambda ha registrato l'evento. Per una chiamata riuscita, Lambda registra l'evento quando la funzione inizia la sua risposta, quindi eventTime può avvenire dopo l'arrivo della richiesta. |
sourceIPAddress |
Indirizzo IP da cui è stata effettuata la richiesta. |
userAgent |
L'agente utilizzato dal chiamante per effettuare la richiesta. Presente quando il chiamante invia un'User-Agentintestazione. |
requestParameters |
ContieneendpointArn, l'ARN dell'endpoint richiamato. Il payload della richiesta non viene registrato. |
responseElements |
Sempre null. |
resources |
Contiene una voce con il accountIdtype, e ARN della funzione. |
additionalEventData |
Contiene functionRevisionArn l'ARN della revisione che ha fornito la richiesta. Questo campo è presente in ogni evento, comprese le negazioni. |
tlsDetails |
La versione TLS, la suite di crittografia e l'intestazione host della richiesta. |
userIdentity |
L'identità del chiamante. Per i dettagli, consulta l'elenco seguente. |
sharedEventID |
Presente quando CloudTrail consegna lo stesso evento a più di uno Account AWS. |
errorCode, errorMessage |
Presente solo in caso di errore. |
requestID, eventID,
recipientAccountId, awsRegion |
CloudTrail Campi standard che identificano la richiesta, l'evento, il destinatario Account AWS e il Regione AWS. |
Gli eventi Web Function utilizzano le seguenti forme ARN:
-
Funzione (
resources[].ARN) —arn:aws:lambda:us-east-1:123456789012:web-function/my-fn -
Punto finale (
requestParameters.endpointArn) —arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint -
Revisione ()
additionalEventData.functionRevisionArn—arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c
Il userIdentity campo dipende dal modo in cui il chiamante si è autenticato:
-
Le chiamate non autenticate vengono registrate con type.
userIdentityUnknown -
IAM-authenticated i chiamanti vengono registrati con il proprio principale. Ad esempio, un chiamante che utilizza credenziali temporanee viene visualizzato con type
AssumedRole, anarne a.sessionContext -
Il campo
accessKeyIdnon è popolato.
Eventi di errore
CloudTrail registra anche i tentativi di chiamata che falliscono dopo l'autenticazione del chiamante. La tabella seguente descrive questi eventi di errore.
| Scenario | errorCode | errorMessage |
|---|---|---|
| Chiamante non autorizzato | AccessDenied |
L'utente non è autorizzato a eseguire: lambda:InvokeWebFunctionEndpoint |
| Velocità di richiesta, concorrenza o limite di vCPU raggiunto (endpoint o account) | ThrottlingException |
Velocità superata |
| Guasto del servizio | ServiceException |
Errore di servizio |
| Errore dell'applicazione o richiesta client non valida | Non applicabile | Considerata come una chiamata API riuscita. L'invocazione ha raggiunto ed eseguito la funzione. |
Una chiamata riuscita non ha un or. errorCode errorMessage I dinieghi di autorizzazione vengono registrati come. AccessDenied CloudTrail non registra le richieste che falliscono l'autenticazione, ad esempio le richieste con una firma mancante, non valida, non valida o scaduta, e non registra le richieste che Lambda rifiuta prima dell'autenticazione, come le richieste a un endpoint il cui valore è 0. rateLimit Inoltre, gli errori dell'infrastruttura di autenticazione interna non vengono registrati. Per rilevare un picco di richieste rifiutate, attiva un allarme HTTPResponseStatusClass4XX nel namespace. AWS/Lambda/Web
Esempio: chiamata riuscita (chiamante non autenticato)
L'esempio seguente mostra una chiamata riuscita da parte di un chiamante non autenticato.
{ "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" } } ] }
Per un IAM-authenticated chiamante, il userIdentity campo riporta invece il principale del chiamante, ad esempio digita AssumedRole con an arn e a, e i campi rimanenti rimangono sessionContext invariati.
Esempio: chiamata negata
Gli eventi di errore portano errorCode e. errorMessage L'esempio seguente mostra una chiamata negata.
{ "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" } } ] }
Eventi di gestione in CloudTrail
CloudTrail registra gli eventi di gestione delle funzioni Web per impostazione predefinita. È possibile visualizzare gli ultimi 90 giorni di eventi di gestione nella cronologia degli CloudTrail eventi senza creare una traccia. Per conservarli più a lungo, crea un trail o un archivio dati sugli eventi CloudTrail Lake. Per ulteriori informazioni, consulta Registrazione degli eventi di gestione nella Guida per l'utente di AWS CloudTrail .
CloudTrail registra le seguenti operazioni di Web Function come eventi di gestione. Il eventName campo di ogni evento è lo stesso del nome dell'operazione.
| Risorsa o attività | Operazioni |
|---|---|
| Funzioni Web | CreateWebFunction, GetWebFunction,
ListWebFunctions, DeleteWebFunction |
| Revisioni | CreateWebFunctionRevision, GetWebFunctionRevision,
ListWebFunctionRevisions, DeleteWebFunctionRevision |
| Endpoints | CreateWebFunctionEndpoint, GetWebFunctionEndpoint,
ListWebFunctionEndpoints, UpdateWebFunctionEndpoint,
DeleteWebFunctionEndpoint |
| Impostazioni dell’account | GetWebAccountSettings |
| Policy delle risorse | PutResourcePolicy, GetResourcePolicy,
DeleteResourcePolicy |
| Tag | TagResource, UntagResource,
ListTags |
L'invocazione di Web Function è un'operazione sul piano dati. CloudTrail la registra solo come evento di dati, come descritto in. Eventi relativi ai dati di Web Function in CloudTrail
Risorse correlate
Per maggiori informazioni, consulta le seguenti risorse: