Direkt zum Inhalt

Wie sehe ich, wer meine Lambda-Funktion aufgerufen hat?

Lesedauer: 2 Minute
0

Ich möchte Informationen über den/die Benutzer:in haben, der meine AWS-Lambda-Funktion aufgerufen hat, z. B. seine userIdentity-, sourceIPAddress- oder userAgent-Details.

Lösung

Um Informationen über den/die Benutzer:in anzuzeigen, der/die deine Lambda-Funktion aufgerufen hat, musst du die Protokollierung von Datenereignissen in AWS CloudTrail aktivieren. Standardmäßig protokolliert CloudTrail keine Invoke-API-Aufrufe von Lambda, und der Ereignisverlauf von CloudTrail zeichnet sie nicht auf.

Informationen zur Preisgestaltung für Datenereignisse in CloudTrail findest du unter Preise für AWS CloudTrail.

Um die Protokollierung von Datenereignissen zu aktivieren, erstelle einen neuen Trail oder aktualisiere einen vorhandenen Trail und konfiguriere dann die Einstellung Datenereignisse. Wähle unter Datenereignistyp für Quelle die Option Lambda und für Protokollauswahl-Vorlage die Option Alle Ereignisse protokollieren aus.

Die folgenden Beispielprotokolle zeigen Details eines Invoke-API-Aufrufs:

{
  "eventVersion": "1.06",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAIOR74VCJ2M3NB8U4M",
    "arn": "arn:aws:iam::999999999999:user/kyle",
    "accountId": "999999999999",
    "accessKeyId": "AK2IU7DKE7U2KOI8CCBP",
    "userName": "kyle"
  },
  "eventTime": "2017-11-29T08:47:45Z",
  "eventSource": "lambda.amazonaws.com",
  "eventName": "Invoke",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "[IP_ADDRESS]",
  "userAgent": "aws-cli/1.11.129 Python/2.7.8 Linux/3.1.56-0.6.839hdh3.x86_64 botocore/1.5.92",
  "requestParameters": {
    "invocationType": "RequestResponse",
    "functionName": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction:prod",
    "clientContext": "ew0KICAiY29udGV4dGtleSIgOiAiY29udGV4dHZhbHVlIg0KfQ==",
    "qualifier": "prod"
  },
  "responseElements": null,
  "additionalEventData": {
    "functionVersion": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction:4"
  },
  "requestID": "eaccb900-8f45-11e7-b60d-179cdf501g92",
  "eventID": "0e205f1d-3929-4803-b887-0d2aca122148",
  "readOnly": false,
  "resources": [{
    "accountId": "999999999999",
    "type": "AWS::Lambda::Function",
    "ARN": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction"
  }],
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "recipientAccountId": "999999999999",
  "sharedEventID": "6159da59-ad2f-4e04-9669-cf0a6b6b4827"
}

Um Informationen über den/die Benutzer:in zu finden, der/die die Lambda-Funktion im vorherigen Beispiel aufgerufen hat, überprüfe die folgenden Felder:

  • Die userIdentity liefert Informationen über den/die Benutzer:in, der/die die Anfrage gestellt hat.
  • Die sourceIPAddress gibt die IP-Adresse an, an die der/die Benutzer:in die Anfrage gestellt hat.
    Hinweis: Dieses Feld erlaubt sowohl IPv4- als auch IPv6-Adressen.
  • Der userAgent stellt den Agenten bereit, mit dem der/die Benutzer:in die Anfrage gestellt hat.

Ähnliche Informationen

Mit AWS CloudTrail einen Überblick über die Ausführung deiner AWS Lambda-Funktionen bekommen

Protokollieren von AWS-Lambda-API-Aufrufen mithilfe von AWS CloudTrail

Grundlegendes zum CloudTrail Lake-Ereignisschema

CloudTrail zeichnet Inhalte für Verwaltungs-, Daten- und Netzwerkaktivitätsereignisse auf

AWS OFFICIALAktualisiert vor 8 Monaten