Definieren von Lambda-Funktionsberechtigungen mit einer Ausführungsrolle
Die Ausführungsrolle einer Lambda-Funktion ist eine AWS Identity and Access Management (IAM)-Rolle, die der Funktion die Berechtigung erteilt, auf AWS-Services und Ressourcen zuzugreifen. Sie können zum Beispiel eine Ausführungsrolle für die Entwicklung mit der Berechtigung zum Senden von Protokollen an Amazon CloudWatch und zum Hochladen von Ablaufverfolgungsdaten zu AWS X-Ray erstellen. Diese Seite enthält Informationen zum Erstellen, Anzeigen und Verwalten der Ausführungsrolle einer Lambda-Funktion.
Lambda übernimmt automatisch Ihre Ausführungsrolle an, wenn Sie Ihre Funktion aufrufen. Sie sollten vermeiden, sts:AssumeRole manuell aufzurufen, um die Ausführungsrolle in Ihrem Funktionscode zu übernehmen. Wenn Ihr Anwendungsfall erfordert, dass die Rolle sich selbst annimmt, müssen Sie die Rolle selbst als vertrauenswürdigen Prinzipal in die Vertrauensrichtlinie Ihrer Rolle aufnehmen. Weitere Informationen zum Ändern einer Rollenvertrauensrichtlinie finden Sie unter Ändern einer Rollenvertrauensrichtlinie (Konsole) im IAM-Benutzerhandbuch.
Damit Lambda Ihre Ausführungsrolle ordnungsgemäß übernehmen kann, muss in der Vertrauensrichtlinie der Rolle der Lambda-Serviceprinzipal (lambda.amazonaws.com) als vertrauenswürdiger Service angegeben sein.
Themen
Erstellen einer Ausführungsrolle in der IAM-Konsole
Standardmäßig erstellt Lambda beim Erstellen einer Funktion in der Lambda-Konsole eine Ausführungsrolle mit minimalen Berechtigungen. Insbesondere umfasst diese Ausführungsrolle die AWSLambdaBasicExecutionRole-verwaltete Richtlinie, die Ihrer Funktion grundlegende Berechtigungen zum Protokollieren von Ereignissen in Amazon CloudWatch Logs erteilt.
Ihre Funktionen benötigen in der Regel zusätzliche Berechtigungen, um aussagekräftigere Aufgaben ausführen zu können. Sie verfügen beispielsweise möglicherweise über eine Lambda-Funktion, die auf ein Ereignis reagiert, indem sie Einträge in einer Amazon-DynamoDB-Datenbank aktualisiert. Sie können über die IAM-Konsole eine Ausführungsrolle mit den erforderlichen Berechtigungen erstellen.
So erstellen Sie eine Ausführungsrolle in der IAM-Konsole
-
Öffnen Sie die Seite Roles (Rollen)
in der IAM-Konsole. -
Wählen Sie Create role aus.
-
Wählen Sie unter Typ der vertrauenswürdigen Entität die Option AWS-Service aus.
-
Wählen Sie unter Anwendungsfall Lambda aus.
-
Wählen Sie Weiter aus.
-
Wählen Sie die AWS verwalteten Richtlinien aus, die Sie mit Ihrer Rolle verknüpfen möchten. Wenn Ihre Funktion beispielsweise auf DynamoDB zugreifen muss, wählen Sie die verwaltete Richtlinie AWSLambdaDynamoDBExecutionRole aus.
-
Wählen Sie Weiter aus.
-
Geben Sie einen Role name (Rollennamen) ein und klicken Sie auf Create Role (Rolle erstellen).
Detaillierte Anweisungen finden Sie unter Erstellen einer Rolle für einen AWS-Service (Konsole) im IAM-Benutzerhandbuch.
Nachdem Sie Ihre Ausführungsrolle erstellt haben, fügen Sie sie an Ihre Funktion an. Wenn Sie eine Funktion in der Lambda-Konsole erstellen, können Sie eine beliebige Ausführungsrolle, die Sie zuvor erstellt haben, an die Funktion anhängen. Wenn Sie einer vorhandenen Funktion eine neue Ausführungsrolle zuordnen möchten, folgen Sie den Schritten unter Aktualisierung der Ausführungsrolle einer Funktion.
Erstellen und Verwalten von Rollen mit dem AWS CLI
Verwenden Sie den Befehl AWS Command Line Interface, um eine Ausführungsrolle mit der AWS CLI (create-role) zu erstellen. Wenn Sie diesen Befehl verwenden, können Sie die Vertrauensrichtlinie angeben. Über die Vertrauensrichtlinie einer Rolle wird den angegebenen Prinzipalen die Berechtigung gegeben, die Rolle zu übernehmen. Im folgenden Beispiel erteilen Sie dem Lambda-Serviceprinzipal die Berechtigung, Ihre Rolle zu übernehmen. Die Anforderungen für Escape-Anführungszeichen in der JSON-Zeichenfolge können je nach Shell variieren.
aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document '{"Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
Sie können die Vertrauensrichtlinie für die Rolle auch mithilfe einer separaten JSON-Datei definieren. Im folgenden Beispiel ist trust-policy.json eine Datei im aktuellen Verzeichnis.
Beispiel trust-policy.json
aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document file://trust-policy.json
Um der Rolle Berechtigungen hinzuzufügen, verwenden Sie den attach-policy-to-role-Befehl. Mit dem folgenden Befehl wird die verwaltete Richtlinie AWSLambdaBasicExecutionRole der Ausführungsrolle lambda-ex hinzugefügt.
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Nachdem Sie Ihre Ausführungsrolle erstellt haben, fügen Sie sie an Ihre Funktion an. Wenn Sie eine Funktion in der Lambda-Konsole erstellen, können Sie eine beliebige Ausführungsrolle, die Sie zuvor erstellt haben, an die Funktion anhängen. Wenn Sie einer vorhandenen Funktion eine neue Ausführungsrolle zuordnen möchten, folgen Sie den Schritten unter Aktualisierung der Ausführungsrolle einer Funktion.
Gewähren Sie den Zugriff auf Ihre Lambda-Ausführungsrolle mit den geringsten Berechtigungen
Wenn Sie während der Entwicklungsphase zum ersten Mal eine IAM-Rolle für Ihre Lambda-Funktion erstellen, können Sie manchmal Berechtigungen erteilen, die über das erforderliche Maß hinausgehen. Bevor Sie Ihre Funktion in der Produktionsumgebung veröffentlichen, sollten Sie als bewährte Methode die Richtlinie so anpassen, dass sie nur die erforderlichen Berechtigungen enthält. Weitere Informationen finden Sie unter Anwenden von Berechtigungen mit geringsten Berechtigungen im IAM-Benutzerhandbuch.
Verwenden Sie IAM Access Analyzer, um die erforderlichen Berechtigungen für die IAM-Ausführungsrollenrichtlinie zu identifizieren. IAM Access Analyzer überprüft Ihre AWS CloudTrail-Protokolle über den von Ihnen angegebenen Zeitraum und generiert eine Richtlinienvorlage nur mit den Berechtigungen, die die Funktion während dieser Zeit verwendet hat. Sie können die Vorlage verwenden, um eine verwaltete Richtlinie mit definierten Berechtigungen zu erstellen und sie dann an die IAM-Rolle anzuhängen. Auf diese Weise gewähren Sie nur die Berechtigungen, die die Rolle benötigt, um mit AWS-Ressourcen für Ihren spezifischen Anwendungsfall zu interagieren.
Weitere Informationen finden Sie unter Generieren von Richtlinien basierend auf Zugriffsaktivitäten im IAM-Benutzerhandbuch.