Feinabstimmung der Abschnitte „Ressourcen“ und „Bedingungen“ der Richtlinien - 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.

Feinabstimmung der Abschnitte „Ressourcen“ und „Bedingungen“ der Richtlinien

Sie können den Umfang der Benutzerberechtigungen einschränken, indem Sie Ressourcen und Bedingungen in einer AWS Identity and Access Management (IAM) -Richtlinie angeben. Jede Aktion in einer Richtlinie unterstützt eine Kombination aus Ressourcen- und Bedingungstypen, die je nach Verhalten der Aktion variiert.

Jede IAM Richtlinienaussage erteilt die Genehmigung für eine Aktion, die an einer Ressource ausgeführt wird. Wenn die Aktion nicht auf eine benannte Ressource reagiert oder Sie die Berechtigung zum Ausführen der Aktion für alle Ressourcen erteilen, wird der Wert der Ressource in der Richtlinie als Platzhalter () dargeste (*). Bei vielen Aktionen können Sie die Ressourcen einschränken, die ein Benutzer ändern kann, indem Sie den Amazon-Ressourcennamen (ARN) einer Ressource oder ein ARN Muster angeben, das mehreren Ressourcen entspricht.

Je nach Ressourcentyp lässt sich der Umfang einer Aktion generell wie folgt einschränken:

  • Funktionen — Aktionen, die auf eine Funktion angewendet werden, können nach Funktion, Version oder Alias auf eine bestimmte Funktion beschränkt werden. ARN

  • Zuordnungen von Ereignisquellen — Aktionen können auf bestimmte Ressourcen zur Zuordnung von Ereignisquellen beschränkt werden, indem ARN Zuordnungen von Ereignisquellen sind immer mit einer Funktion verknüpft. Sie können die lambda:FunctionArn Bedingung auch verwenden, um Aktionen anhand der zugehörigen Funktion einzuschränken.

  • Ebenen — Aktionen, die sich auf die Nutzung und Berechtigungen von Layern beziehen, wirken sich auf eine Version eines Layers aus.

  • Konfiguration der Codesignatur — Aktionen können auf bestimmte Ressourcen für die Codesignatur-Konfiguration beschränkt werden, indem ARN

  • Tags — Verwenden Sie standardmäßige Tag-Bedingungen. Weitere Informationen finden Sie unter Verwendung der attributbasierten Zugriffskontrolle in Lambda.

Um die Berechtigungen pro Ressource einzuschränken, geben Sie die Ressource nach an. ARN

Lambda-Ressourcenformat ARN
  • Funktion – arn:aws:lambda:us-west-2:123456789012:function:my-function

  • Funktionsversion – arn:aws:lambda:us-west-2:123456789012:function:my-function:1

  • Funktionsalias – arn:aws:lambda:us-west-2:123456789012:function:my-function:TEST

  • Mapping von Ereignisquellen – arn:aws:lambda:us-west-2:123456789012:event-source-mapping:fa123456-14a1-4fd2-9fec-83de64ad683de6d47

  • Ebene – arn:aws:lambda:us-west-2:123456789012:layer:my-layer

  • Ebenenversion – arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1

  • Konfiguration der Codesignatur — arn:aws:lambda:us-west-2:123456789012:code-signing-config:my-csc

Die folgende Richtlinie ermöglicht es einem Benutzer beispielsweise, eine Funktion AWS-Konto 123456789012 aufzurufen, die my-function in der AWS Region USA West (Oregon) benannt ist.

Beispiel Aufrufen der Funktionsrichtlinie
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-function" } ] }

Dies ist ein Sonderfall, in dem sich die Aktions-ID (lambda:InvokeFunction) von der API Operation (Invoke) unterscheidet. Bei anderen Aktionen ist die Aktionskennung der Operationsname mit dem Präfix lambda:.

Grundlegendes zum Abschnitt „Bedingung“ in Richtlinien

Bedingungen sind ein optionales Richtlinienelement, das zusätzliche Logik anwendet, um zu bestimmen, ob eine Aktion zulässig ist. Zusätzlich zu gemeinsamen Bedingungen, die alle Aktionen unterstützen, definiert Lambda Bedingungstypen, die Sie verwenden können, um die Werte zusätzlicher Parameter für einige Aktionen einzuschränken.

Mit der Bedingung lambda:Principal können Sie beispielsweise den Service oder das Konto beschränken, für das ein Benutzer in der ressourcenbasierten Richtlinie einer Funktion Aufrufzugriff gewähren kann. Mit der folgenden Richtlinie kann ein Benutzer Amazon Simple Notification Service (AmazonSNS) -Themen die Erlaubnis erteilen, eine Funktion mit dem Namen test aufzurufen.

Beispiel Verwalten von Berechtigungen für Funktionsrichtlinien
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageFunctionPolicy", "Effect": "Allow", "Action": [ "lambda:AddPermission", "lambda:RemovePermission" ], "Resource": "arn:aws:lambda:us-west-2:123456789012:function:test:*", "Condition": { "StringEquals": { "lambda:Principal": "sns.amazonaws.com" } } } ] }

Die Bedingung setzt voraus, dass der Auftraggeber Amazon ist SNS und kein anderer Service oder Account. Das Ressourcenmuster erfordert, dass der Funktionsname test lautet und eine Versionsnummer oder einen Alias enthält. Beispiel, test:v1.

Weitere Informationen zu Ressourcen und Bedingungen für Lambda und andere AWS Dienste finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS Dienste in der Service Authorization Reference.

Referenzierung von Funktionen im Abschnitt „Ressourcen“ der Richtlinien

Sie verweisen in einer Richtlinienerklärung mit einem Amazon-Ressourcennamen (ARN) auf eine Lambda-Funktion. Das Format einer Funktion ARN hängt davon ab, ob Sie auf die gesamte Funktion (unqualifiziert) oder auf eine Funktionsversion oder einen Alias (qualifiziert) verweisen.

Bei API Lambda-Aufrufen können Benutzer eine Version oder einen Alias angeben, indem sie eine Version ARN oder einen Alias ARN im GetFunctionFunctionNameParameter übergeben oder einen Wert im GetFunctionQualifierParameter festlegen. Lambda trifft Autorisierungsentscheidungen, indem es das Ressourcenelement in der IAM Richtlinie sowohl mit den als auch mit den FunctionName Qualifier weitergeleiteten API Aufrufen vergleicht. Wenn es keine Übereinstimmung gibt, lehnt Lambda die Anforderung ab.

Unabhängig davon, ob Sie eine Aktion für Ihre Funktion zulassen oder ablehnen, müssen Sie in Ihrer Richtlinienerklärung die richtigen ARN Funktionstypen verwenden, um die erwarteten Ergebnisse zu erzielen. Wenn Ihre Richtlinie beispielsweise auf das Unqualifizierte verweist, akzeptiert Lambda AnfragenARN, die auf das Unqualifizierte verweisen, lehnt ARN jedoch Anfragen ab, die auf ein qualifiziertes Objekt verweisen. ARN

Anmerkung

Sie können kein Platzhalterzeichen (*) verwenden, um die Konto-ID abzugleichen. Weitere Informationen zur akzeptierten Syntax finden Sie in der IAMJSONRichtlinienreferenz im Benutzerhandbuch. IAM

Beispiel ermöglicht den Aufruf eines unqualifizierten ARN
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction" } ] }

Wenn Ihre Richtlinie auf eine bestimmte qualifizierte Person verweistARN, akzeptiert Lambda Anfragen, die sich auf diese beziehen, ARN lehnt jedoch Anfragen ab, die sich auf die unqualifizierte Person ARN oder eine andere qualifizierte Person beziehenARN, z. B. myFunction:2

Beispiel ermöglicht den Aufruf eines bestimmten qualifizierten ARN
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1" } ] }

Wenn Ihre Richtlinie auf eine qualifizierte ARN Verwendung verweist:*, akzeptiert Lambda jede qualifizierte Nutzung, lehnt ARN jedoch Anfragen ab, die sich auf die unqualifizierte Nutzung beziehen. ARN

Beispiel ermöglicht den Aufruf aller qualifizierten ARN
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:*" } ] }

Wenn Ihre Richtlinie auf eine ARN Nutzung verweist*, akzeptiert Lambda jede qualifizierte oder ARN unqualifizierte Nutzung.

Beispiel erlaubt den Aufruf aller qualifizierten oder unqualifizierten ARN
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-west-2:123456789012:function:myFunction*" } ] }

Unterstützte IAM Aktionen und Funktionsverhalten

Aktionen definieren, was durch IAM Richtlinien erlaubt werden kann. Eine Liste der in Lambda unterstützten Aktionen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS Lambda in der Service Authorization Reference. In den meisten Fällen, wenn eine IAM Aktion eine API Lambda-Aktion zulässt, entspricht der Name der IAM Aktion dem Namen der API Lambda-Aktion, mit den folgenden Ausnahmen:

APIAktion IAMAktion
Aufrufen lambda:InvokeFunction

GetLayerVersion

GetLayerVersionByArn

lambda:GetLayerVersion

Zusätzlich zu den in der Service Authorization Reference definierten Ressourcen und Bedingungen unterstützt Lambda die folgenden Ressourcen und Bedingungen für bestimmte Aktionen. Viele davon beziehen sich auf Referenzfunktionen im Ressourcenbereich der Richtlinien. Aktionen, die für eine Funktion ausgeführt werden, können nach Funktion, Version oder Alias auf eine bestimmte Funktion beschränkt werdenARN, wie in der folgenden Tabelle beschrieben.

Aktion Ressource Bedingung

AddPermission

RemovePermission

AufrufenErlaubnis: lambda:InvokeFunction

Funktionsversion

Funktionsalias

N/A

UpdateFunctionConfiguration

N/A

lambda:CodeSigningConfigArn

CreateFunctionUrlConfig

DeleteFunctionUrlConfig

GetFunctionUrlConfig

UpdateFunctionUrlConfig

Funktionsalias

N/A