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.
Kontrolle des Zugriffs auf Lambda-Funktions-URLs
Anmerkung
Ab Oktober 2025 benötigen neue Funktions-URLs sowohl die Berechtigung lambda:InvokeFunctionUrl als auch lambda:InvokeFunction.
Sie können den Zugriff auf Ihre Lambda-Funktions-URLs mit dem AuthType-Parameter kombiniert mit ressourcenbasierten Richtlinien kontrollieren, die an Ihre spezifische Funktion angehängt sind. Die Konfiguration dieser beiden Komponenten bestimmt, wer andere administrative Aktionen für Ihre Funktions-URL aufrufen oder ausführen kann.
Der AuthType-Parameter bestimmt, wie Lambda Anfragen an Ihre Funktions-URL authentifiziert oder autorisiert. Wenn Sie Ihre Funktions-URL konfigurieren, müssen Sie eine der folgenden AuthType-Optionen angeben:
-
AWS_IAM— Lambda verwendet AWS Identity and Access Management (IAM), um Anfragen auf der Grundlage der Identitätsrichtlinie des IAM-Prinzipals und der ressourcenbasierten Richtlinie der Funktion zu authentifizieren und zu autorisieren. Wählen Sie diese Option, wenn Sie möchten, dass nur authentifizierte -Benutzer und -Rollen Ihre Funktion über die Funktions-URL aufrufen können.
-
NONE– Lambda führt keine Authentifizierung durch, bevor Sie Ihre Funktion aufrufen. Die ressourcenbasierte Richtlinie Ihrer Funktion ist jedoch immer in Kraft und muss öffentlichen Zugriff gewähren, bevor Ihre Funktions-URL Anfragen erhalten kann. Wählen Sie diese Option, um öffentlichen, nicht authentifizierten Zugriff auf Ihre Funktions-URL zu ermöglichen.
Für zusätzliche Einblicke in die Sicherheit können Sie eine umfassende Analyse des externen AWS Identity and Access Management Access Analyzer Zugriffs auf Ihre Funktions-URL verwenden. IAM Access Analyzer überwacht auch auf neue oder aktualisierte Berechtigungen für Ihre Lambda-Funktionen, um Berechtigungen zu identifizieren, die öffentlichen und kontoübergreifenden Zugriff gewähren. Sie können IAM Access Analyzer kostenlos nutzen. Weitere Informationen zu den ersten Schritten mit IAM Access Analyzer finden Sie unter Verwenden des AWS IAM Access Analyzer.
Diese Seite enthält Beispiele für ressourcenbasierte Richtlinien für beide Authentifizierungstypen und erklärt, wie diese Richtlinien mithilfe des AddPermission API-Vorgangs oder der Lambda-Konsole erstellt werden. Informationen darüber, wie Sie Ihre Funktions-URL aufrufen können, nachdem Sie Berechtigungen eingerichtet haben, finden Sie unter Aufrufen von Lambda-Funktions-URLs.
Themen
Verwenden des AWS_IAM-Authentifizierungstyps
Wenn Sie den Authentifizierungstyp AWS_IAM auswählen, müssen Benutzer, die Ihre Lambda-Funktions-URL aufrufen, die Berechtigungen lambda:InvokeFunctionUrl und lambda:InvokeFunction haben. Je nachdem, wer die Aufrufanforderung stellt, müssen Sie diese Berechtigung möglicherweise mithilfe einer ressourcenbasierten Richtlinie erteilen.
Wenn der Prinzipal, der die Anforderung stellt, mit der Funktions-URL AWS-Konto identisch ist, muss der Prinzipal entweder über lambda:InvokeFunctionUrl und lambda:InvokeFunction -Berechtigungen in seiner identitätsbasierten Richtlinie verfügen oder über Berechtigungen verfügen, die ihm in der ressourcenbasierten Richtlinie der Funktion erteilt wurden. Mit anderen Worten, eine ressourcenbasierte Richtlinie ist optional, wenn der Benutzer bereits die Berechtigungen lambda:InvokeFunctionUrl und lambda:InvokeFunction in seiner identitätsbasierten Richtlinie hat. Die Richtlinienbewertung folgt den Regeln, die in der Auswertungslogik für Richtlinien beschrieben sind.
Wenn der Prinzipal, der die Anfrage stellt, in einem anderen Konto ist, muss der Prinzipal sowohl eine identitätsbasierte Richtlinie haben, die ihm die Berechtigungen lambda:InvokeFunctionUrl und lambda:InvokeFunction gewährt, als auch Berechtigungen, die ihm in einer ressourcenbasierten Richtlinie für die Funktion gewährt werden, die er aufrufen möchte. Die Richtlinienbewertung folgt den im Abschnitt Festlegen, ob eine kontoübergreifende Anforderung zulässig ist erläuterten Regeln.
Die folgende ressourcenbasierte Richtlinie ermöglicht es der example Rolle in, die der Funktion zugeordnete Funktions-URL AWS-Konto 444455556666 aufzurufen. my-function Der Lambda: InvokedViaFunctionUrl Context-Schlüssel beschränkt die Aktion auf Funktions-URL-Aufrufe. lambda:InvokeFunction Das bedeutet, dass der Prinzipal die Funktions-URL verwenden muss, um die Funktion aufzurufen. Wenn Sie lambda:InvokedViaFunctionUrl nicht einfügen, kann der Prinzipal Ihre Funktion zusätzlich zur Funktions-URL auch über andere Aufrufmethoden aufrufen.
Beispiel— Cross-account ressourcenbasierte Richtlinie
Sie können diese ressourcenbasierte Richtlinie über die Konsole erstellen, indem Sie die folgenden Schritte ausführen:
So erteilen Sie einem anderen Konto (Konsole) URL-Aufrufberechtigungen
-
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie den Namen der Funktion aus, für die Sie URL-Aufrufberechtigungen gewähren möchten.
-
Wählen Sie die Registerkarte Konfiguration und dann Berechtigungen aus.
-
Wählen Sie unter Resource-based Richtlinie die Option Berechtigungen hinzufügen aus.
-
Wählen Sie Funktions-URL aus.
-
Wählen Sie für Auth type (Authentifizierungstyp) die Option AWS_IAM aus.
-
Geben Sie eine Anweisungs-ID für Ihre Richtlinienanweisung ein.
-
Geben Sie unter Prinzipal den Amazon-Ressourcennamen (ARN) des Benutzers oder der Rolle ein, dem bzw. der Sie Berechtigungen gewähren möchten. Beispiel:
444455556666. -
Wählen Sie Speichern.
Sie können diese Richtlinie auch mithilfe der folgenden add-permission lambda:InvokeFunction Anweisungen lambda:InvokeFunctionUrl und separat hinzufügen. Beispiel:
aws lambda add-permission --function-name my-function \ --statement-id UrlPolicyInvokeURL \ --actionlambda:InvokeFunctionUrl\ --principal 444455556666 \ --function-url-auth-type AWS_IAM
aws lambda add-permission --function-name my-function \ --statement-id UrlPolicyInvokeFunction \ --actionlambda:InvokeFunction\ --principal 444455556666 \ --invoked-via-function-url
Verwenden Sie den Authentifizierungstyp NONE
Wichtig
Wenn Ihre Funktions-URL-Auth-Typ NONE ist und Sie eine ressourcenbasierte Richtlinie haben, die öffentlichen Zugriff gewährt, kann jeder nicht authentifizierte Benutzer mit Ihrer Funktions-URL Ihre Funktion aufrufen.
In einigen Fällen möchten Sie möglicherweise, dass Ihre Funktions-URL öffentlich ist. So können Sie beispielsweise Anfragen direkt von einem Webbrowser aus bereitstellen. Um den öffentlichen Zugriff auf Ihre Funktions-URL zu ermöglichen, wählen Sie den Auth-Typ NONE aus.
Wenn Sie den Auth-Typ NONE auswählen, verwendet Lambda IAM nicht, um Anfragen an Ihre Funktions-URL zu authentifizieren. Ihre Funktion muss jedoch über eine ressourcenbasierte Richtlinie verfügen, die lambda:InvokeFunctionUrl und lambda:InvokeFunction erlaubt. Wenn Sie NONE mithilfe der Konsole oder AWS Serverless Application Model (AWS SAM) eine Funktions-URL mit dem Authentifizierungstyp erstellen, erstellt Lambda automatisch die ressourcenbasierte Richtlinie für Sie. Wenn Sie die AWS CLI,, oder die Lambda-API direkt verwenden AWS CloudFormation, müssen Sie die Richtlinie selbst hinzufügen.
Wir empfehlen, dass Sie den Schlüssel lambda: InvokedViaFunctionUrl context in Ihre ressourcenbasierten Richtlinien aufnehmen, wenn Sie den Authentifizierungstyp verwenden. NONE Dieser Kontextschlüssel stellt sicher, dass die Funktion nur über die Funktions-URL und nicht über andere Aufrufmethoden aufgerufen werden kann.
Beachten Sie die folgenden Informationen über diese Richtlinie:
-
Alle Entitäten können
lambda:InvokeFunctionUrlundlambda:InvokeFunctionaufrufen. Das bedeutet, dass jeder, der Ihre Funktions-URL hat, Ihre Funktion aufrufen kann. -
Der Wert des
lambda:FunctionUrlAuthType-Bedingungsschlüssels istNONE. Das bedeutet, dass diese Richtlinienanweisung den Zugriff nur erlaubt, wenn der Authentifizierungstyp Ihrer Funktions-URL ebenfallsNONEist. -
Die Bedingung
lambda:InvokedViaFunctionUrlstellt sicher, dass die Funktion nur über die Funktions-URL und nicht über andere Aufrufmethoden aufgerufen werden kann.
Beispiel– Ressourcenbasierte Standardrichtlinie für den Authentifizierungstyp NONE
Erstellen Sie die ressourcenbasierte Richtlinie mit dem AWS CLI
Sofern Sie nicht die Konsole verwenden oder AWS SAM eine Funktions-URL mit dem Authentifizierungstyp erstellenNONE, müssen Sie die ressourcenbasierte Richtlinie selbst hinzufügen. Verwenden Sie die folgenden Befehle zur Erstellung von Anweisungen für die Berechtigungen lambda:InvokeFunctionUrl und lambda:InvokeFunction. Jede Anweisung muss in einem separaten Befehl hinzugefügt werden.
aws lambda add-permission \ --function-name UrlTestFunction \ --statement-id UrlPolicyInvokeURL \ --actionlambda:InvokeFunctionUrl\ --principal * \ --function-url-auth-type NONE
aws lambda add-permission \ --function-name UrlTestFunction \ --statement-id UrlPolicyInvokeFunction \ --actionlambda:InvokeFunction\ --principal * \ --invoked-via-function-url
Anmerkung
Wenn Sie Ihre Funktions-URL mit Authentifizierungstyp NONE löschen, löscht Lambda nicht automatisch die zugehörige ressourcenbasierte Richtlinie. Wenn Sie diese Richtlinie löschen möchten, müssen Sie dies manuell tun.
Wenn die ressourcenbasierte Richtlinie einer Funktion keine lambda:InvokeFunction Berechtigungen gewährtlambda:invokeFunctionUrl, erhalten Benutzer beim Versuch, Ihre Funktions-URL aufzurufen, den Fehlercode 403 Forbidden. Dies tritt auch dann auf, wenn die Funktions-URL den Authentifizierungstyp verwendet. NONE
Governance und Zugriffskontrolle
Zusätzlich zu den Berechtigungen für den URL-Aufruf von Funktionen können Sie auch den Zugriff auf Aktionen kontrollieren, die zum Konfigurieren von Funktions-URLs verwendet werden. Lambda unterstützt die folgenden IAM-Richtlinienaktionen für Funktions-URLs:
-
lambda:InvokeFunctionUrl– Ruft eine Lambda-Funktion mit der Funktions-URL auf. -
lambda:CreateFunctionUrlConfig– Erstellt eine Funktions-URL und legt ihrenAuthTypefest. -
lambda:UpdateFunctionUrlConfig– Aktualisiert eine Funktions-URL-Konfiguration und ihrenAuthType. -
lambda:GetFunctionUrlConfig– Zeigt die Details einer Funktions-URL an. -
lambda:ListFunctionUrlConfigs– Listet die Funktions-URL-Konfigurationen auf. -
lambda:DeleteFunctionUrlConfig– Löscht eine Funktions-URL.
Um anderen AWS Entitäten den Funktions-URL-Zugriff zu gewähren oder zu verweigern, nehmen Sie diese Aktionen in die IAM-Richtlinien auf. Die folgende Richtlinie gewährt beispielsweise die example Rolle in AWS-Konto
444455556666 Berechtigungen zum Aktualisieren der Funktions-URL für die Funktion my-function im Konto123456789012.
Beispiel Kontoübergreifende Funktions-URL-Richtlinie
Bedingungsschlüssel
Verwenden Sie einen Bedingungskontextschlüssel, um eine feinabgestimmte Zugriffskontrolle über Ihre Funktions-URLs zu erhalten. Lambda unterstützt die folgenden Kontextschlüssel für Funktions-URLs.
-
lambda:FunctionUrlAuthType– Definiert einen Aufzählungswert, der den Authentifizierungstyp beschreibt, den Ihre Funktions-URL verwendet. Der Wert kann entwederAWS_IAModerNONEsein. -
lambda:InvokedViaFunctionUrl– Beschränkt die Aktionlambda:InvokeFunctionauf Aufrufe, die über die Funktions-URL getätigt werden. Das stellt sicher, dass die Funktion nur über die Funktions-URL und nicht über andere Aufrufmethoden aufgerufen werden kann. Beispiele für ressourcenbasierte Richtlinien, die den Kontextschlüssellambda:InvokedViaFunctionUrlverwenden, finden Sie in den Beispielen unter Verwenden des AWS_IAM-Authentifizierungstyps und Verwenden Sie den Authentifizierungstyp NONE.
Sie können diese Kontextschlüssel in Richtlinien verwenden, die mit Ihrer Funktion verknüpft sind. Sie können beispielsweise einschränken, wer Konfigurationsänderungen an Ihren Funktions-URLs vornehmen kann. Um alle UpdateFunctionUrlConfig-Anfragen an jede Funktion mit dem URL-Auth-Typ NONE zu verweigern, können Sie die folgende Richtlinie definieren:
Beispiel Funktions-URL-Richtlinie mit expliziter Zugriffsverweigerung
Um die example Rolle in Bezug auf AWS-Konto 444455556666 Berechtigungen für Funktionen mit URL-Authentifizierungstyp CreateFunctionUrlConfig und UpdateFunctionUrlConfig Anfragen zu gewährenAWS_IAM, können Sie die folgende Richtlinie definieren:
Beispiel Funktions-URL-Richtlinie mit expliziter Zulassung
Sie können diesen Bedingungsschlüssel auch in einer Service-Kontrollrichtlinie (SCP) verwenden. Verwenden Sie SCPs, um Berechtigungen in einer gesamten Organisation in AWS Organizations zu verwalten. Zum Beispiel, um Benutzern das Erstellen oder Aktualisieren von Funktions-URLs zu verweigern, die etwas anderes als den Auth-Typ AWS_IAM verwenden, verwenden Sie die folgende Service-Kontrollrichtlinie: