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

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 AWS Lambda API-Aufrufen mit AWS CloudTrail

AWS Lambda ist in integriert, einem ServiceAWS CloudTrail, der die Aktionen eines Benutzers, einer Rolle oder eines AWS-Service. CloudTrail captures-API-Aufrufs für Lambda als Ereignisse aufzeichnet. Zu den erfassten Aufrufen gehören Aufrufe über die Lambda-Konsole und Codeaufrufe der Lambda-API-Operationen. Anhand der von CloudTrailgesammelten Informationen können Sie die an Lambda gestellte Anfrage, die IP-Adresse, von der die Anfrage gestellt wurde, den Zeitpunkt der Anfrage und zusätzliche Details bestimmen.

Jeder Ereignis- oder Protokolleintrag enthält Informationen zu dem Benutzer, der die Anforderung generiert hat. Die Identitätsinformationen unterstützen Sie bei der Ermittlung der folgenden Punkte:

  • Ob die Anfrage mit Anmeldeinformationen des Root-Benutzers oder des Benutzers gestellt wurde.

  • Ob die Anforderung im Namen eines IAM-Identity-Center-Benutzers gestellt wurde.

  • Gibt an, ob die Anforderung mit temporären Sicherheitsanmeldeinformationen für eine Rolle oder einen Verbundbenutzer gesendet wurde.

  • Ob die Anforderung aus einem anderen AWS-Service gesendet wurde.

CloudTrail ist in Ihrem aktiv AWS-Konto , wenn Sie das Konto erstellen und automatisch Zugriff auf den CloudTrail Ereignisverlauf haben. Der CloudTrail Ereignisverlauf bietet eine anzeigbare, durchsuchbare, herunterladbare und unveränderliche Aufzeichnung der aufgezeichneten Verwaltungsereignisse der letzten 90 Tage in einem AWS-Region. Weitere Informationen finden Sie unter Arbeiten mit dem CloudTrail Ereignisverlauf im AWS CloudTrail -Benutzerhandbuch. Für die Anzeige des Ereignisverlaufs fallen keine CloudTrail Gebühren an.

Erstellen Sie für eine fortlaufende Aufzeichnung der Ereignisse in den AWS-Konto letzten 90 Tagen einen Trail oder einen CloudTrail Lake-Ereignisdatenspeicher.

CloudTrail Trails

Ein Trail ermöglicht CloudTrail die Bereitstellung von Protokolldateien an einen Amazon S3-Bucket. Alle Trails, die mit der erstellt wurden, AWS Management Console sind multiregional. Sie können einen Trail für eine oder mehrere Regionen erstellen, indem Sie die verwenden AWS CLI. Das Erstellen eines multiregionalen Trails wird empfohlen, da Sie Aktivitäten in allen AWS-Regionen in Ihrem Konto erfassen. Wenn Sie einen Trail für eine einzelne Region erstellen, können Sie nur die Ereignisse anzeigen, die im des Trails protokolliert wurden AWS-Region. Weitere Informationen zu Trails finden Sie unter Erstellen eines Trails für Ihr AWS-Konto und Erstellen eines Trails für eine Organisation im AWS CloudTrail -Benutzerhandbuch.

Sie können eine Kopie Ihrer laufenden Verwaltungsereignisse in Ihrem Amazon S3-Bucket kostenlos von bereitstellen, CloudTrail indem Sie einen Trail erstellen. Es fallen jedoch Amazon S3-Speichergebühren an. Weitere Informationen zu CloudTrail Preisen finden Sie unter -AWS CloudTrail Preise. Informationen zu Amazon-S3-Preisen finden Sie unter Amazon S3-Preise.

CloudTrail Lake-Ereignisdatenspeicher

Mit CloudTrail Lake können Sie SQL-basierte Abfragen für Ihre Ereignisse ausführen. CloudTrail Lake konvertiert vorhandene Ereignisse im zeilenbasierten JSON-Format in das Apache-ORC-Format. ORC ist ein spaltenförmiges Speicherformat, das für den schnellen Abruf von Daten optimiert ist. Die Ereignisse werden in Ereignisdatenspeichern zusammengefasst, bei denen es sich um unveränderliche Sammlungen von Ereignissen handelt, die auf Kriterien basieren, die Sie mit Hilfe von erweiterten Ereignisselektoren auswählen. Die Selektoren, die Sie auf einen Ereignisdatenspeicher anwenden, steuern, welche Ereignisse bestehen bleiben und für Sie zur Abfrage verfügbar sind. Weitere Informationen zu CloudTrail Lake finden Sie unter Arbeiten mit AWS CloudTrail Lake im AWS CloudTrail -Benutzerhandbuch.

CloudTrail Für Lake-Ereignisdatenspeicher und Abfragen fallen Kosten an. Beim Erstellen eines Ereignisdatenspeichers wählen Sie die Preisoption aus, die für den Ereignisdatenspeicher genutzt werden soll. Die Preisoption bestimmt die Kosten für die Erfassung und Speicherung von Ereignissen sowie die standardmäßige und maximale Aufbewahrungsdauer für den Ereignisdatenspeicher. Weitere Informationen zu CloudTrail Preisen finden Sie unter -AWS CloudTrail Preise.

Lambda-Datenereignisse in CloudTrail

Datenereignisse liefern Informationen über die Ressourcenoperationen, die auf oder in einer Ressource ausgeführt werden (z. B. Lesen oder Schreiben in ein Amazon-S3-Objekt). Sie werden auch als Vorgänge auf Datenebene bezeichnet. Datenereignisse sind oft Aktivitäten mit hohem Volume. Standardmäßig protokolliert CloudTrail die meisten Datenereignisse nicht und der CloudTrail Ereignisverlauf zeichnet sie nicht auf.

Ein CloudTrail Datenereignis, das standardmäßig für unterstützte Services protokolliert wird, ist LambdaESMDisabled. Weitere Informationen zur Verwendung dieses Ereignisses zur Behebung von Problemen mit Lambda-Ereignisquellenzuordnungen finden Sie unter Verwenden von CloudTrail zur Fehlerbehebung deaktivierter Lambda-Ereignisquellen.

Für Datenereignisse werden zusätzliche Gebühren fällig. Weitere Informationen zu CloudTrail Preisen finden Sie unter -AWS CloudTrail Preise.

Sie können Datenereignisse für den AWS::Lambda::Function Ressourcentyp mithilfe der - CloudTrail Konsole AWS CLI oder API CloudTrail -Operationen protokollieren. Weitere Informationen zum Protokollieren von Datenereignissen finden Sie unter Protokollieren von Datenereignissen mit der AWS Management Console und Protokollieren von Datenereignissen mit der AWS Command Line Interface im AWS CloudTrail -Benutzerhandbuch.

In der folgenden Tabelle ist der Lambda-Ressourcentyp aufgeführt, für den Sie Datenereignisse protokollieren können. In der Spalte Datenereignistyp (Konsole) wird der Wert angezeigt, der aus der Liste Datenereignistyp in der CloudTrail Konsole ausgewählt werden kann. Die Spalte resources.type value zeigt den resources.type Wert an, den Sie bei der Konfiguration erweiterter Ereignisselektoren mit der AWS CLI oder CloudTrail APIs angeben würden. Die Spalte Daten-APIs, die in protokolliert CloudTrail wurden, zeigt die API-Aufrufe an, die CloudTrail für den -Ressourcentyp protokolliert wurden.

Typ des Datenereignisses (Konsole) resources.type-Wert Daten-APIs, die bei protokolliert wurden CloudTrail
Lambda AWS::Lambda::Function

Aufrufen

Sie können erweiterte Ereignisselektoren so konfiguriereneventName, dass sie nach den resources.ARN Feldern readOnly, und filtern, um nur die Ereignisse zu protokollieren, die für Sie wichtig sind. Das folgende Beispiel ist die JSON-Ansicht einer Datenereigniskonfiguration, die Ereignisse nur für eine bestimmte Funktion protokolliert. Weitere Informationen zu diesen Feldern finden Sie unter AdvancedFieldSelector in der APIAWS CloudTrail -Referenz zu .

[ { "name": "function-invokes", "fieldSelectors": [ { "field": "eventCategory", "equals": [ "Data" ] }, { "field": "resources.type", "equals": [ "AWS::Lambda::Function" ] }, { "field": "resources.ARN", "equals": [ "arn:aws:lambda:us-east-1:111122223333:function:hello-world" ] } ] } ]

Lambda-Verwaltungsereignisse in CloudTrail

Verwaltungsereignisse liefern Informationen zu Verwaltungsvorgängen, die für Ressourcen in Ihrem ausgeführt werden AWS-Konto. Sie werden auch als Vorgänge auf Steuerebene bezeichnet. Standardmäßig CloudTrail protokolliert Verwaltungsereignisse.

Lambda unterstützt die Protokollierung der folgenden Aktionen als Verwaltungsereignisse in CloudTrail Protokolldateien.

Anmerkung

In der CloudTrail Protokolldatei eventName kann die Datums- und Versionsinformationen enthalten, verweist aber immer noch auf dieselbe öffentliche API-Aktion. Beispielsweise wird die GetFunction Aktion als angezeigtGetFunction20150331v2. Die folgende Liste gibt an, wann sich der Ereignisname vom Namen der API-Aktion unterscheidet.

Verwenden von CloudTrail zur Fehlerbehebung deaktivierter Lambda-Ereignisquellen

Wenn Sie den Status einer Ereignisquellenzuordnung mithilfe der UpdateEventSourceMapping API-Aktion ändern, wird der API-Aufruf als Verwaltungsereignis in protokolliert CloudTrail. Ereignisquellenzuordnungen können auch aufgrund von Fehlern direkt in den -DisabledStatus übergehen.

Für die folgenden Services veröffentlicht Lambda das LambdaESMDisabled Datenereignis in , CloudTrail wenn Ihre Ereignisquelle in den Status Deaktiviert wechselt:

  • Amazon Simple Queue Service (Amazon SQS)

  • Amazon DynamoDB

  • Amazon Kinesis

Lambda unterstützt dieses Ereignis nicht für andere Ereignisquellenzuordnungstypen.

Um Warnungen zu erhalten, wenn Ereignisquellenzuordnungen für unterstützte Services in den -DisabledStatus übergehen, richten Sie CloudWatch mithilfe des -LambdaESMDisabled CloudTrail Ereignisses einen Alarm in Amazon ein. Weitere Informationen zum Einrichten eines CloudWatch Alarms finden Sie unter Erstellen von CloudWatch Alarmen für - CloudTrail Ereignisse: Beispiele.

Die serviceEventDetails Entität in der LambdaESMDisabled Ereignismeldung enthält einen der folgenden Fehlercodes.

RESOURCE_NOT_FOUND

Die in der Anforderung angegebene Ressource ist nicht vorhanden.

FUNCTION_NOT_FOUND

Die an die Ereignisquelle angefügte Funktion ist nicht vorhanden.

REGION_NAME_NOT_VALID

Ein Regionsname, der der Ereignisquelle oder -funktion zur Verfügung gestellt wird, ist ungültig.

AUTHORIZATION_ERROR

Es wurden keine Berechtigungen festgelegt oder sie wurden falsch konfiguriert.

FUNCTION_IN_FAILED_STATE

Der Funktionscode wird nicht kompiliert, hat eine nicht wiederherstellbare Ausnahme festgestellt oder eine fehlerhafte Bereitstellung ist aufgetreten.

Lambda-Ereignisbeispiele

Ein Ereignis stellt eine einzelne Anforderung aus einer beliebigen Quelle dar und enthält Informationen über die angeforderte API-Operation, das Datum und die Uhrzeit der Operation, die Anforderungsparameter usw. CloudTrail Protokolldateien sind kein geordnetes Stacktrace der öffentlichen API-Aufrufe, sodass Ereignisse nicht in einer bestimmten Reihenfolge angezeigt werden.

Das folgende Beispiel zeigt CloudTrail Protokolleinträge für die DeleteFunction Aktionen GetFunction und .

Anmerkung

Die eventName kann Datums- und Versionsinformationen enthalten, wie z. B. die "GetFunction20150331", aber sie bezieht sich immer noch auf dieselbe öffentliche API.

{ "Records": [ { "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/myUserName", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "myUserName" }, "eventTime": "2015-03-18T19:03:36Z", "eventSource": "lambda.amazonaws.com", "eventName": "GetFunction", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "Python-httplib2/0.8 (gzip)", "errorCode": "AccessDenied", "errorMessage": "User: arn:aws:iam::111122223333:user/myUserName is not authorized to perform: lambda:GetFunction on resource: arn:aws:lambda:us-west-2:111122223333:function:other-acct-function", "requestParameters": null, "responseElements": null, "requestID": "7aebcd0f-cda1-11e4-aaa2-e356da31e4ff", "eventID": "e92a3e85-8ecd-4d23-8074-843aabfe89bf", "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }, { "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::111122223333:user/myUserName", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "myUserName" }, "eventTime": "2015-03-18T19:04:42Z", "eventSource": "lambda.amazonaws.com", "eventName": "DeleteFunction20150331", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "Python-httplib2/0.8 (gzip)", "requestParameters": { "functionName": "basic-node-task" }, "responseElements": null, "requestID": "a2198ecc-cda1-11e4-aaa2-e356da31e4ff", "eventID": "20b84ce5-730f-482e-b2b2-e8fcc87ceb22", "eventType": "AwsApiCall", "recipientAccountId": "111122223333" } ] }

Informationen zu CloudTrail Datensatzinhalten finden Sie unter CloudTrail Datensatzinhalte im AWS CloudTrail -Benutzerhandbuch.