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 Berechtigungen eines Benutzers 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-Richtlinienanweisung erteilt die Berechtigung für eine Aktion, die auf eine 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 (*
). Für viele 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 Maßnahme generell wie folgt einschränken:
Funktionen–Aktionen, die auf eine Funktion wirken, können auf eine bestimmte Funktion nach Funktion, Version oder Alias-ARN beschränkt werden.
-
Zuordnungen von Ereignisquellen – Aktionen können per ARN auf bestimmte Ressourcen zur Zuordnung von Ereignisquellen beschränkt werden. Zuordnungen von Ereignisquellen sind immer mit einer Funktion verknüpft. Sie können auch die
lambda:FunctionArn
-Bedingung verwenden, um Aktionen durch die zugehörige Funktion einzuschränken. Ebenen – Aktionen, die sich auf die Verwendung von Ebenen und Berechtigungen beziehen, wirken sich auf eine Version einer Ebene aus.
Codesignaturkonfiguration – Aktionen können per ARN auf bestimmte Codesignatur-Konfigurationsressourcen beschränkt werden.
Tags – Verwenden Sie standardmäßige Tag-Bedingungen. Weitere Informationen finden Sie unter Verwendung der attributbasierten Zugriffskontrolle in Lambda.
Zum Einschränken von Berechtigungen nach Ressource bestimmen Sie die Ressource unter Angabe des ARN.
Format des Lambda-Ressourcen-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
-
Codesignaturkonfiguration –
arn:aws:lambda:
us-west-2
:123456789012
:code-signing-config:my-csc
Beispielsweise erlaubt die folgende Richtlinie einem Benutzer in AWS-Konto 123456789012
, eine Funktion mit dem Namen my-function
in der Region USA West (Oregon) AWS aufzurufen.
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, da sich die Aktionskennung (lambda:InvokeFunction
) von der API-Operation (Invoke) unterscheidet. Bei anderen Aktionen ist die Aktionskennung der Operationsname mit dem Präfix lambda:
.
Sections
Den Abschnitt „Bedingungen“ in Richtlinien verstehen
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 (Amazon SNS)-Themen die Berechtigung 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 erfordert, dass der Prinzipal Amazon SNS und kein anderer Service bzw. kein anderes Konto ist. Das Ressourcenmuster erfordert, dass der Funktionsname test
lautet und eine Versionsnummer oder einen Alias enthält. Zum Beispiel test:v1
.
Weitere Informationen zu Ressourcen und Bedingungen für Lambda und andere AWS-Services finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS-Services in der Service-Autorisierungsreferenz.
Referenzierung von Funktionen im Abschnitt „Ressourcen“ von Richtlinien
Sie referenzieren eine Lambda-Funktion in einer Richtlinienanweisung mithilfe eines Amazon-Ressourcennamens (ARN). Das Format des ARN für eine Funktion hängt davon ab, ob Sie die gesamte Funktion, eine Funktionsversion (unqualifiziert), eine Funktionsversion oder einen Alias referenzieren.
Beim Ausführen von Lambda-API-Aufrufen können Benutzer eine Version oder einen Alias angeben, indem sie einen Versions-ARN oder Alias-ARN im Parameter GetFunction FunctionName
übergeben oder einen Wert im Parameter GetFunction Qualifier
festlegen. Lambda trifft Autorisierungsentscheidungen, indem es das Ressourcenelement in der IAM-Richtlinie sowohl mit dem in API-Aufrufen übergebenen FunctionName
n als auch dem Qualifier
vergleicht. Wenn es keine Übereinstimmung gibt, lehnt Lambda die Anforderung ab.
Unabhängig davon, ob Sie eine Aktion für Ihre Funktion zulassen oder verweigern, müssen Sie die richtigen ARN-Typen für Funktionen in Ihrer Richtlinienanweisung verwenden, um die erwarteten Ergebnisse zu erzielen. Wenn Ihre Richtlinie beispielsweise auf den unqualifizierten ARN verweist, akzeptiert Lambda Anfragen, die auf den unqualifizierten ARN verweisen, lehnt jedoch Anfragen ab, die auf einen qualifizierten ARN verweisen.
Anmerkung
Sie können kein Platzhalterzeichen (*) verwenden, um die Konto-ID abzugleichen. Weitere Informationen zur zulässigen Syntax finden Sie unter IAM JSON-Richtlinienreferenz im IAM-Benutzerhandbuch.
Beispiel Zulassen des Aufrufs eines nicht 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 einen bestimmten qualifizierten ARN verweist, akzeptiert Lambda Anfragen, die auf diesen ARN verweisen, lehnt aber Anfragen ab, die auf den nicht qualifizierten ARN oder einen anderen qualifizierten ARN verweisen, z. B. myFunction:2
.
Beispiel Zulassen des Aufrufs 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 mit :*
einen qualifizierten ARN referenziert, akzeptiert Lambda alle qualifizierten ARN, lehnt jedoch Anfragen ab, die den unqualifizierten ARN referenzieren.
Beispiel Zulassen des Aufrufs eines beliebigen 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 mit *
einen ARN referenziert, akzeptiert Lambda alle qualifizierten oder unqualifizierten ARNs.
Beispiel Zulassen des Aufrufs eines beliebigen qualifizierten oder nicht qualifizierten 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 zugelassen werden kann. Eine Liste der in Lambda unterstützten Aktionen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS Lambda in der Referenz zur Dienstautorisierung. Wenn eine IAM-Aktion eine Lambda-API-Aktion zulässt, ist der Name der IAM-Aktion in den meisten Fällen derselbe wie der Name der Lambda-API-Aktion, mit den folgenden Ausnahmen:
API-Aktion | IAM-Aktion |
---|---|
Aufrufen | lambda:InvokeFunction |
lambda:GetLayerVersion |
Zusätzlich zu den Ressourcen und Bedingungen, die in der Service Authorization Reference definiert sind, 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 verwender werden, können – wie in der folgenden Tabelle beschrieben – nach Funktion, Version oder Alias-ARN auf eine spezifische Funktion eingeschränkt werden.
Aktion | Ressource | Bedingung |
---|---|---|
Aufrufen – Erlaubnis: |
Funktionsversion Funktionsalias |
N/A |
N/A |
|
|
Funktionsalias |
N/A |