View a markdown version of this page

Sicherheit und Berechtigungen für langlebige Lambda-Funktionen - 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.

Sicherheit und Berechtigungen für langlebige Lambda-Funktionen

AWS Lambda Dauerhafte Funktionen erfordern spezielle IAM-Berechtigungen, um dauerhafte Ausführungen auszuführen und zu verwalten. Folgen Sie dem Prinzip der geringsten Rechte, indem Sie nur die Berechtigungen gewähren, die jeder Prinzipal benötigt.

IAM-Berechtigungen für dauerhafte Funktionen

Für die meisten dauerhaften API-Aktionen autorisiert Lambda die Anforderung anhand des permanenten Ausführungs-ARN, nicht anhand des Funktions-ARN. Eine dauerhafte Ausführung ist eine Unterressource einer Funktionsversion, und ihr ARN erweitert den Funktions-ARN:

arn:aws:lambda:region:account-id:function:function-name:qualifier/durable-execution/execution-name/execution-id

Der Qualifizierer in einer dauerhaften Ausführungs-ARN ist immer $LATEST oder eine Versionsnummer.

Wenn Ihre Richtlinie einen unqualifizierten Funktions-ARN im Resource-Element angibt, lehnt Lambda die Anforderung ab, da ein unqualifizierter ARN niemals einem dauerhaften Ausführungs-ARN entspricht. Um Zugriff zu gewähren, hängen Sie ein Qualifikationsmuster an den Funktions-ARN an:

  • arn:aws:lambda:us-east-1:123456789012:function:my-function:*— Entspricht dauerhaften Ausführungen aller Versionen.

  • arn:aws:lambda:us-east-1:123456789012:function:my-function:1/durable-execution/*— Entspricht nur dauerhaften Ausführungen von Version 1.

Die meisten Richtlinien verwenden das :* Formular, da sich die Versionsnummern bei jeder Bereitstellung ändern können.

Aliase gelten nicht für dauerhafte Ausführungsberechtigungen

Sie können eine dauerhafte Funktion über einen Alias aufrufen, aber der ARN der resultierenden Ausführung enthält die aufgelöste Versionsnummer.

Berechtigungen für die Ausführungsrolle

Die Ausführungsrolle Ihrer dauerhaften Funktion muss über Berechtigungen zum Erstellen von Checkpoints und zum Abrufen des Ausführungsstatus verfügen. Die folgende Richtlinie zeigt die mindestens erforderlichen Berechtigungen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name:*" } ] }

Wenn Sie mithilfe der Konsole eine dauerhafte Funktion erstellen, fügt Lambda diese Berechtigungen automatisch der Ausführungsrolle hinzu. Wenn Sie die Funktion mithilfe von AWS CLI oder erstellen AWS CloudFormation, fügen Sie diese Berechtigungen Ihrer Ausführungsrolle hinzu.

Damit Lambda Ihre Ausführungsrolle übernehmen kann, muss die Vertrauensrichtlinie der Rolle den Lambda-Serviceprinzipal (lambda.amazonaws.com) als vertrauenswürdigen Dienst angeben. Das folgende Beispiel zeigt eine Vertrauensrichtlinie, die Lambda die Erlaubnis erteilt, die Rolle zu übernehmen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Prinzip der geringsten Privilegien

Beschränkt das Resource Element auf bestimmte Funktions-ARNs, anstatt Platzhalter zu verwenden. Dies beschränkt die Ausführungsrolle auf Checkpoint-Operationen nur für die Funktionen, die sie benötigen.

Beispiel Eingeschränkte Berechtigungen für mehrere Funktionen
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CheckpointDurableExecution", "lambda:GetDurableExecutionState" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:orderProcessor:*", "arn:aws:lambda:us-east-1:123456789012:function:paymentHandler:*" ] } ] }

Alternativ können Sie die AWS verwaltete Richtlinie verwenden, die AWSLambdaBasicDurableExecutionRolePolicy die erforderlichen dauerhaften Ausführungsberechtigungen zusammen mit den grundlegenden Lambda-Ausführungsberechtigungen für Amazon Logs enthält. CloudWatch

Berechtigungen für die Verwaltung dauerhafter Ausführungen

Lambda autorisiert die lambda:StopDurableExecution Aktionen lambda:GetDurableExecutionlambda:GetDurableExecutionHistory, und gegen den ARN für die dauerhafte Ausführung.

Um die dauerhaften Ausführungen einer Funktion aufzulisten, verwenden Sie. lambda:ListDurableExecutionsByFunction Lambda autorisiert diese Aktion für den Funktions-ARN aus der Anfrage. Die folgenden Regeln gelten für den ARN-Abgleich:

  • Eine Richtlinie, die der unqualifizierten Funktion ARN gewährt, entspricht nur Anforderungen, die den unqualifizierten Funktionsnamen verwenden.

  • Eine Richtlinie, die einen qualifizierten ARN gewährt, entspricht nur Anforderungen, die einen qualifizierten Funktionsnamen verwenden.

Weitere Informationen finden Sie unter Referenzierung von Funktionen im Abschnitt „Ressourcen“ von Richtlinien.

Um Anfragen mit einer beliebigen Form des Funktionsnamens abzugleichen, schließen Sie sowohl den unqualifizierten als auch den qualifizierten Funktions-ARN ein, wie die folgende Richtlinie zeigt:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageDurableExecutions", "Effect": "Allow", "Action": [ "lambda:GetDurableExecution", "lambda:GetDurableExecutionHistory", "lambda:StopDurableExecution" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" }, { "Sid": "ListDurableExecutions", "Effect": "Allow", "Action": "lambda:ListDurableExecutionsByFunction", "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction", "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" ] } ] }

Berechtigungen für das Senden von Rückrufen

Das externe System, das ein Callback-Ergebnis sendet, verwendet die lambda:SendDurableExecutionCallbackSuccess Aktionenlambda:SendDurableExecutionCallbackFailure, undlambda:SendDurableExecutionCallbackHeartbeat.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SendCallbacks", "Effect": "Allow", "Action": [ "lambda:SendDurableExecutionCallbackSuccess", "lambda:SendDurableExecutionCallbackFailure", "lambda:SendDurableExecutionCallbackHeartbeat" ], "Resource": "arn:aws:lambda:us-east-1:123456789012:function:myDurableFunction:*" } ] }

Lambda autorisiert Rückrufanfragen anhand des ARN der dauerhaften Ausführung, die den Callback generiert hat.

Zustandsverschlüsselung

Dauerhafte Lambda-Funktionen verschlüsseln Ausführungsdaten im Ruhezustand. Bei jeder Funktionsausführung wird ein isolierter Zustand beibehalten, auf den andere Ausführungen nicht zugreifen können. Sie können einen vom Kunden verwalteten Schlüssel konfigurieren, um dauerhafte Ausführungsdaten zu verschlüsseln. Weitere Informationen finden Sie unter Verschlüsseln AWS Lambda dauerhafte Ausführungsdaten.

Zu den Checkpoint-Daten gehören:

  • Ergebnisse und Fehler der Schritte

  • Verkettete Invoke-Eingaben

Eine vollständige Liste der dauerhaften Ausführungsdaten, die im Ruhezustand verschlüsselt werden, finden Sie unter. Was ist verschlüsselt

Alle Daten werden während der Übertragung mit TLS verschlüsselt, wenn Lambda Checkpoint-Daten liest oder schreibt.

Benutzerdefinierte Verschlüsselung mit benutzerdefinierten Serializern und Deserializern

Für kritische Sicherheitsanforderungen können Sie mithilfe benutzerdefinierter Serialisierer und Deserialisierer () mithilfe eines dauerhaften SDK Ihren eigenen Verschlüsselungs- und Entschlüsselungsmechanismus implementieren. SerDer Dieser Ansatz gibt Ihnen die volle Kontrolle über die Verschlüsselungsschlüssel und Algorithmen, die zum Schutz der Checkpoint-Daten verwendet werden.

Wichtig

Wenn Sie eine benutzerdefinierte Verschlüsselung verwenden, verlieren Sie die Sichtbarkeit der Betriebsergebnisse in der Lambda-Konsole und der API-Antworten. Checkpoint-Daten werden im Ausführungsverlauf verschlüsselt angezeigt und können ohne Entschlüsselung nicht überprüft werden.

Anforderungen kms:Encrypt und kms:Decrypt Berechtigungen der Ausführungsrolle Ihrer Funktion für den AWS KMS Schlüssel, der in der benutzerdefinierten SerDer Implementierung verwendet wird.

CloudTrail Protokollierung

Lambda protokolliert Checkpoint-Operationen als Datenereignisse in. AWS CloudTrail Sie können CloudTrail damit überwachen, wann Checkpoints erstellt werden, Änderungen am Ausführungsstatus verfolgen und den Zugriff auf dauerhafte Ausführungsdaten überwachen.

Checkpoint-Operationen werden in CloudTrail Protokollen mit den folgenden Ereignisnamen angezeigt:

  • CheckpointDurableExecution— Wird protokolliert, wenn ein Schritt abgeschlossen ist und ein Checkpoint erstellt wird

  • GetDurableExecutionState— Wird protokolliert, wenn Lambda während der Wiedergabe den Ausführungsstatus abruft

Um die Protokollierung von Datenereignissen für dauerhafte Funktionen zu aktivieren, konfigurieren Sie einen CloudTrail Trail zur Protokollierung von Lambda-Datenereignissen. Weitere Informationen finden Sie im CloudTrail Benutzerhandbuch unter Protokollieren von Datenereignissen.

Beispiel: CloudTrail Logeintrag für den Checkpoint-Betrieb

{ "eventVersion": "1.08", "eventTime": "2024-11-16T10:30:45Z", "eventName": "CheckpointDurableExecution", "eventSource": "lambda.amazonaws.com", "requestParameters": { "functionName": "myDurableFunction", "executionId": "exec-abc123", "stepId": "step-1" }, "responseElements": null, "eventType": "AwsApiCall" }

Cross-account Überlegungen

Wenn Sie dauerhafte Funktionen kontoübergreifend AWS aufrufen, benötigt das aufrufende Konto eine lambda:InvokeFunction Genehmigung, Checkpoint-Operationen verwenden jedoch immer die Ausführungsrolle im Konto der Funktion. Das aufrufende Konto kann nicht direkt auf Checkpoint-Daten oder den Ausführungsstatus zugreifen.

Diese Isolierung stellt sicher, dass die Checkpoint-Daten im Konto der Funktion sicher bleiben, auch wenn sie von externen Konten aus aufgerufen werden.

Übernommene Lambda-Sicherheitsfunktionen

Dauerhafte Funktionen übernehmen alle Sicherheits-, Governance- und Compliance-Funktionen von Lambda. Dazu gehören VPC-Konnektivität, Verschlüsselung mit Umgebungsvariablen, Warteschlangen, reservierte Parallelität, Funktions-URLs, Codesignaturen und Compliance-Zertifizierungen wie SOC, PCI DSS und HIPAA.

Ausführliche Informationen zu den Lambda-Sicherheitsfunktionen finden Sie unter Sicherheit im Lambda Developer Guide. AWS Lambda Die einzigen zusätzlichen Sicherheitsaspekte für langlebige Funktionen sind die in diesem Handbuch dokumentierten IAM-Berechtigungen.