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.
Sie können den Zugriff auf Ihre Lambda-Funktion URLs mithilfe des AuthType
Parameters in Kombination mit ressourcenbasierten Richtlinien steuern, 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.
Zusätzlich zu AuthType
können Sie auch ressourcenbasierte Richtlinien verwenden, um anderen AWS-Konten Berechtigungen zu gewähren, Ihre Funktion aufzurufen. Weitere Informationen finden Sie unter Ressourcenbasierte IAM-Richtlinien in Lambda anzeigen.
Zusätzliche Einblicke in die Sicherheit erhalten Sie mit einer umfassenden Analyse des externen AWS Identity and Access Management Access Analyzer Zugriffs auf Ihre Funktions-URL. 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. Die Nutzung von IAM Access Analyzer ist für jeden AWS Kunden kostenlos. Informationen zu den ersten Schritten mit IAM Access Analyzer finden Sie unter Verwenden von AWS IAM Access Analyzer.
Diese Seite enthält Beispiele für ressourcenbasierte Richtlinien für beide Authentifizierungstypen sowie die Erstellung dieser Richtlinien mithilfe des AddPermissionAPI-Vorgangs oder der Lambda-Konsole. Informationen darüber, wie Sie Ihre Funktions-URL aufrufen können, nachdem Sie Berechtigungen eingerichtet haben, finden Sie unter Lambda-Funktion aufrufen URLs.
Themen
Verwenden des Auth-Typs AWS_IAM
Wenn Sie den Authentifizierungstyp AWS_IAM
auswählen, müssen Benutzer, die Ihre Lambda-Funktions-URL aufrufen, die lambda:InvokeFunctionUrl
-Berechtigung haben. Je nachdem, wer die Aufrufanforderung stellt, müssen Sie diese Berechtigung möglicherweise mithilfe einer ressourcenbasierten Richtlinie erteilen.
Wenn sich der Principal, der die Anfrage stellt, in derselben URL befindet AWS-Konto wie die Funktions-URL, muss der Principal entweder über lambda:InvokeFunctionUrl
Berechtigungen in seiner identitätsbasierten Richtlinie verfügen oder ihm in der ressourcenbasierten Richtlinie der Funktion Berechtigungen erteilt worden sein. Mit anderen Worten, eine ressourcenbasierte Richtlinie ist optional, wenn der Benutzer bereits lambda:InvokeFunctionUrl
-Berechtigungen in seiner identitätsbasierten Richtlinie hat. Die Bewertung der Richtlinien folgt den im Abschnitt Ermitteln, ob eine Anforderung innerhalb eines Kontos zugelassen oder verweigert wird erläuterten Regeln.
Wenn der Prinzipal, der die Anfrage stellt, in einem anderen Konto ist, muss der Prinzipal sowohl eine identitätsbasierte Richtlinie haben, die ihm lambda:InvokeFunctionUrl
-Berechtigungen gewährt, als auchBerechtigungen, die ihm in einer ressourcenbasierten Richtlinie für die Funktion gewährt werden, die er aufrufen möchte. In diesen kontoübergreifenden Fällen folgt die Richtlinienbewertung den im Abschnitt Festlegen, ob eine kontoübergreifende Anforderung zulässig ist erläuterten Regeln.
Bei einem Beispiel für eine kontenübergreifende Interaktion ermöglicht die folgende ressourcenbasierte Richtlinie der example
Rolle in, die der Funktion zugeordnete Funktions-URL AWS-Konto 444455556666
aufzurufen: my-function
Beispiel Kontoübergreifende Aufrufrichtlinie für Funktions-URL
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/
example
" }, "Action": "lambda:InvokeFunctionUrl", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:my-function
", "Condition": { "StringEquals": { "lambda:FunctionUrlAuthType": "AWS_IAM" } } } ] }
Sie können diese Richtlinienanweisung ü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 policy (Ressourcenbasierte Richtlinie) die Option Add permissions (Berechtigungen hinzufügen) aus.
-
Wählen Sie Funktions-URL aus.
-
Wählen Sie als Authentifizierungstyp die Option. AWS_IAM
-
(Optional) Geben Sie für Statement ID (Statement-ID) eine 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 Save (Speichern) aus.
Alternativ können Sie diese Richtlinienanweisung mit dem folgenden Befehl add-permission
aws lambda add-permission --function-name my-function \ --statement-id example0-cross-account-statement \ --action lambda:InvokeFunctionUrl \ --principal 444455556666 \ --function-url-auth-type AWS_IAM
Im vorangegangenen Beispiel ist der lambda:FunctionUrlAuthType
-Bedingungsschlüsselwert AWS_IAM
. Diese Richtlinie erlaubt den Zugriff nur, wenn der Authentifizierungstyp Ihrer Funktions-URL ebenfalls AWS_IAM
ist.
Verwenden des Authentifizierungstyps 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. Benutzer müssen jedoch immer noch lambda:InvokeFunctionUrl
-Berechtigungen haben, um Ihre Funktions-URL erfolgreich aufzurufen. Sie können lambda:InvokeFunctionUrl
-Berechtigungen erteilen, indem Sie die folgende ressourcenbasierte Richtlinie verwenden:
Beispiel Funktions-URL-Aufrufrichtlinie für alle nicht authentifizierten Prinzipale
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "lambda:InvokeFunctionUrl", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:
my-function
", "Condition": { "StringEquals": { "lambda:FunctionUrlAuthType": "NONE" } } } ] }
Anmerkung
Wenn Sie eine Funktions-URL mit dem Authentifizierungstyp NONE
über die Konsole oder AWS Serverless Application Model (AWS SAM) erstellen, erstellt Lambda automatisch die vorherige ressourcenbasierte Richtlinienanweisung für Sie. Wenn die Richtlinie bereits vorhanden ist oder der Benutzer oder die Rolle, die die Anwendung erstellt, nicht über die entsprechenden Berechtigungen verfügt, erstellt Lambda sie nicht für Sie. Wenn Sie die AWS CLI AWS CloudFormation, oder die Lambda-API direkt verwenden, müssen Sie selbst lambda:InvokeFunctionUrl
Berechtigungen hinzufügen. Dies macht Ihre Funktion öffentlich.
Wenn Sie Ihre Funktions-URL mit Authentifizierungstyp NONE
löschen, löscht Lambda außerdem nicht automatisch die zugehörige ressourcenbasierte Richtlinie. Wenn Sie diese Richtlinie löschen möchten, müssen Sie dies manuell tun.
In dieser Anweisung ist der lambda:FunctionUrlAuthType
-Bedingungsschlüsselwert NONE
. Diese Richtlinienanweisung erlaubt den Zugriff nur, wenn der Auth-Typ Ihrer Funktions-URL ebenfalls NONE
ist.
Wenn die ressourcenbasierte Richtlinie einer Funktion lambda:invokeFunctionUrl
-Berechtigungen nicht gewährt, dann erhalten Benutzer einen 403-Forbidden-Fehlercode beim Versuch, Ihre Funktions-URL aufzurufen, auch wenn die Funktions-URL den Authentifizierungstyp NONE
verwendet.
Governance und Zugriffskontrolle
Neben den Zugriffsberechtigungen für den Aufruf von Funktions-URLs können Sie auch den Zugriff auf Aktionen steuern, die zur Konfiguration der Funktion verwendet werden. URLs Lambda unterstützt die folgenden IAM-Richtlinienaktionen für die Funktion: URLs
-
lambda:InvokeFunctionUrl
– Ruft eine Lambda-Funktion mit der Funktions-URL auf. -
lambda:CreateFunctionUrlConfig
– Erstellt eine Funktions-URL und legt ihrenAuthType
fest. -
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.
Anmerkung
Die Lambda-Konsole unterstützt das Hinzufügen von Berechtigungen nur für lambda:InvokeFunctionUrl
. Für alle anderen Aktionen müssen Sie Berechtigungen mit der Lambda-API oder AWS CLI hinzufügen.
Um anderen AWS Entitäten den Zugriff auf Funktions-URLs zu gewähren oder zu verweigern, nehmen Sie diese Aktionen in die IAM-Richtlinien auf. Die folgende Richtlinie gewährt der example
Rolle in beispielsweise AWS-Konto
444455556666
Berechtigungen zur Aktualisierung der Funktions-URL für die Funktion my-function
im Konto123456789012
.
Beispiel Kontoübergreifende Funktions-URL-Richtlinie
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/example" }, "Action": "lambda:UpdateFunctionUrlConfig", "Resource": "arn:aws:lambda:us-east-2:123456789012:function:
my-function
" } ] }
Bedingungsschlüssel
Verwenden Sie eine Bedingungstaste URLs, um eine detaillierte Zugriffskontrolle für Ihre Funktion zu erhalten. Lambda unterstützt einen zusätzlichen Bedingungsschlüssel für die Funktion URLs:FunctionUrlAuthType
. Der Schlüssel FunctionUrlAuthType
definiert einen Aufzählungswert, der den Authentifizierungstyp beschreibt, den Ihre Funktions-URL verwendet. Der Wert kann entweder AWS_IAM
oder NONE
sein.
Sie können diesen Bedingungsschlüssel in Richtlinien verwenden, die mit Ihrer Funktion verknüpft sind. Beispielsweise möchten Sie möglicherweise einschränken, wer Konfigurationsänderungen an Ihrer Funktion 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
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action":[
"lambda:UpdateFunctionUrlConfig"
],
"Resource": "arn:aws:lambda:us-east-1:123456789012:function:*",
"Condition": {
"StringEquals": {
"lambda:FunctionUrlAuthType": "NONE"
}
}
}
]
}
Um der example
Rolle AWS-Konto 444455556666
Berechtigungen zum Erstellen CreateFunctionUrlConfig
und UpdateFunctionUrlConfig
Anfordern von Funktionen mit URL-Authentifizierungstyp zu gewährenAWS_IAM
, können Sie die folgende Richtlinie definieren:
Beispiel Funktions-URL-Richtlinie mit expliziter Zulassung
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::444455556666:role/example"
},
"Action":[
"lambda:CreateFunctionUrlConfig",
"lambda:UpdateFunctionUrlConfig"
],
"Resource": "arn:aws:lambda:us-east-1:123456789012:function:*",
"Condition": {
"StringEquals": {
"lambda:FunctionUrlAuthType": "AWS_IAM"
}
}
}
]
}
Sie können diesen Bedingungsschlüssel auch in einer Service-Kontrollrichtlinie (SCP) verwenden. Wird verwendet SCPs , um Berechtigungen für eine gesamte Organisation in AWS Organizations zu verwalten. Verwenden Sie beispielsweise die folgende Dienststeuerungsrichtlinie, um Benutzern URLs das Erstellen oder Aktualisieren von Funktionen zu verbieten, die AWS_IAM
etwas anderes als den Authentifizierungstyp verwenden:
Beispiel Funktions-URL-SCP mit expliziter Zugriffsverweigerung
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action":[
"lambda:CreateFunctionUrlConfig",
"lambda:UpdateFunctionUrlConfig"
],
"Resource": "arn:aws:lambda:*:123456789012:function:*",
"Condition": {
"StringNotEquals": {
"lambda:FunctionUrlAuthType": "AWS_IAM"
}
}
}
]
}