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.
IAMBerechtigungen und Rollen für Lambda @Edge einrichten
Um Lambda @Edge zu konfigurieren, benötigen Sie die folgenden IAM Berechtigungen und Rollen für AWS Lambda:
-
IAMBerechtigungen — Mit diesen Berechtigungen können Sie Ihre Lambda-Funktion erstellen und sie Ihrer CloudFront Distribution zuordnen.
-
Eine Lambda-Funktionsausführungsrolle (IAMRolle) — Die Lambda-Dienstprinzipale übernehmen diese Rolle, um Ihre Funktion auszuführen.
-
Dienstgebundene Rollen für Lambda @Edge — Die dienstverknüpften Rollen ermöglichen es bestimmten, Lambda-Funktionen in Protokolldateien AWS-Services zu replizieren AWS-Regionen und deren Verwendung zu ermöglichen CloudWatch. CloudFront
IAMBerechtigungen, die erforderlich sind, um Lambda @Edge -Funktionen mit CloudFront Distributionen zu verknüpfen
Zusätzlich zu den IAM Berechtigungen, die Sie für Lambda benötigen, benötigen Sie die folgenden Berechtigungen, um Lambda-Funktionen Distributionen zuzuordnen: CloudFront
-
lambda:GetFunction
— Erteilt die Erlaubnis, Konfigurationsinformationen für Ihre Lambda-Funktion und eine URL zum Herunterladen vorsignierte.zip
Datei abzurufen, die die Funktion enthält. -
lambda:EnableReplication*
— Erteilt die Berechtigung für die Ressourcenrichtlinie, sodass der Lambda-Replikationsdienst den Funktionscode und die Konfiguration abrufen kann. -
lambda:DisableReplication*
— Erteilt der Ressourcenrichtlinie die Berechtigung, sodass der Lambda-Replikationsdienst die Funktion löschen kann.Wichtig
Sie müssen das Sternchen (
*
) am Ende der Aktionenlambda:EnableReplication*
undlambda:DisableReplication*
hinzufügen. -
Geben Sie für die Ressource die Version ARN der Funktion an, die Sie ausführen möchten, wenn ein CloudFront Ereignis eintritt, wie im folgenden Beispiel:
arn:aws:lambda:us-east-1:123456789012:function:
TestFunction
:2 -
iam:CreateServiceLinkedRole
— Erteilt die Erlaubnis, eine serviceverknüpfte Rolle zu erstellen, in der Lambda @Edge Lambda-Funktionen repliziert. CloudFront Nachdem Sie Lambda @Edge zum ersten Mal konfiguriert haben, wird die serviceverknüpfte Rolle automatisch für Sie erstellt. Sie müssen diese Berechtigung nicht zu anderen Distributionen hinzufügen, die Lambda @Edge verwenden. -
cloudfront:UpdateDistribution
odercloudfront:CreateDistribution
— Erteilt die Erlaubnis, eine Distribution zu aktualisieren oder zu erstellen.
Weitere Informationen finden Sie unter den folgenden Themen:
-
Zugriffsberechtigungen für Lambda-Ressourcen im AWS Lambda Developer Guide
Funktionsausführungsrolle für Service-Prinzipale
Sie müssen eine IAM Rolle erstellen, die die Dienstprinzipale lambda.amazonaws.com
und die edgelambda.amazonaws.com
Dienstprinzipale bei der Ausführung Ihrer Funktion übernehmen können.
Tipp
Wenn Sie Ihre Funktion in der Lambda-Konsole erstellen, können Sie wählen, ob Sie mithilfe einer AWS Richtlinienvorlage eine neue Ausführungsrolle erstellen möchten. Dieser Schritt fügt automatisch die erforderlichen Lambda @Edge -Berechtigungen hinzu, um Ihre Funktion auszuführen. Siehe Schritt 5 im Tutorial: Eine einfache Lambda @Edge -Funktion erstellen.
Weitere Informationen zum manuellen Erstellen einer IAM Rolle finden Sie unter Rollen erstellen und Richtlinien anhängen (Konsole) im IAMBenutzerhandbuch.
Beispiel: Vertrauensrichtlinie für Rollen
Sie können diese Rolle auf der Registerkarte Trust Relationship in der IAM Konsole hinzufügen. Fügen Sie diese Richtlinie nicht auf der Registerkarte „Berechtigungen“ hinzu.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com", "edgelambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Weitere Informationen zu den Berechtigungen, die Sie der Ausführungsrolle gewähren müssen, finden Sie unter Lambda-Ressourcenzugriffsberechtigungen im AWS Lambda Entwicklerhandbuch.
Hinweise
-
Standardmäßig werden Daten in CloudWatch Logs geschrieben, wenn ein CloudFront Ereignis eine Lambda-Funktion auslöst. Wenn Sie diese Protokolle verwenden möchten, benötigt die Ausführungsrolle die Berechtigung, Daten in CloudWatch Logs zu schreiben. Sie können das Vordefinierte verwenden AWSLambdaBasicExecutionRole um der Ausführungsrolle die Erlaubnis zu erteilen.
Weitere Informationen zu CloudWatch Protokollen finden Sie unterProtokolle für Edge-Funktionen.
-
Wenn Ihr Lambda-Funktionscode auf andere AWS Ressourcen zugreift, z. B. auf das Lesen eines Objekts aus einem S3-Bucket, benötigt die Ausführungsrolle die Erlaubnis, diese Aktion auszuführen.
Serviceverknüpfte Rollen für Lambda@Edge
Lambda @Edge verwendet IAM dienstverknüpfte Rollen. Eine dienstbezogene Rolle ist ein einzigartiger Rollentyp, der IAM direkt mit einem Dienst verknüpft ist. Serviceverknüpfte Rollen werden vom Service vorab definiert und beinhalten alle Berechtigungen, die dieser zum Aufrufen anderer AWS -Services in Ihrem Namen benötigt.
Lambda @Edge verwendet die folgenden IAM dienstbezogenen Rollen:
-
AWSServiceRoleForLambdaReplicator – Lambda@Edge verwendet diese Rolle, um es Lambda@Edge zu ermöglichen, Funktionen in AWS-Regionen zu replizieren.
Wenn Sie zum ersten Mal einen Lambda @Edge -Trigger hinzufügen CloudFront, wird eine Rolle mit dem Namen AWSServiceRoleForLambdaReplicator wird automatisch erstellt, damit Lambda @Edge Funktionen replizieren kann. AWS-Regionen Diese Rolle ist erforderlich, um Lambda @Edge -Funktionen verwenden zu können. Das ARN für die AWSServiceRoleForLambdaReplicator Die Rolle sieht wie das folgende Beispiel aus:
arn:aws:iam::123456789012:role/aws-service-role/replicator.lambda.amazonaws.com/AWSServiceRoleForLambdaReplicator
-
AWSServiceRoleForCloudFrontLogger— CloudFront verwendet diese Rolle, um Protokolldateien zu übertragen CloudWatch. Sie können Protokolldateien verwenden, um Lambda @Edge -Validierungsfehler zu debuggen.
Das Tool AWSServiceRoleForCloudFrontLogger Die Rolle wird automatisch erstellt, wenn Sie eine Lambda @Edge -Funktionsassoziation hinzufügen, in die Lambda @Edge -Fehlerprotokolldateien übertragen werden können CloudFront . CloudWatch Das für die ARN AWSServiceRoleForCloudFrontLogger Die Rolle sieht so aus:
arn:aws:iam::account_number:role/aws-service-role/logger.cloudfront.amazonaws.com/AWSServiceRoleForCloudFrontLogger
Eine serviceverknüpfte Rolle vereinfacht das Einrichten und Verwenden von Lambda@Edge, da Sie die erforderlichen Berechtigungen nicht manuell hinzufügen müssen. Lambda@Edge definiert die Berechtigungen seiner servicegebundenen Rollen. Nur Lambda@Edge kann die Rollen übernehmen. Die definierten Berechtigungen umfassen die Vertrauens- und Berechtigungsrichtlinie. Sie können die Berechtigungsrichtlinie keiner anderen IAM Entität zuordnen.
Sie müssen alle zugehörigen Ressourcen CloudFront oder Lambda @Edge -Ressourcen entfernen, bevor Sie eine dienstverknüpfte Rolle löschen können. Dies trägt zum Schutz Ihrer Lambda @Edge -Ressourcen bei, sodass Sie keine dienstbezogene Rolle entfernen, die weiterhin für den Zugriff auf aktive Ressourcen erforderlich ist.
Weitere Informationen zu serviceverknüpften Rollen finden Sie unter Dienstbezogene Rollen für CloudFront.
Serviceverknüpfte Rollenberechtigungen für Lambda@Edge
Lambda @Edge verwendet zwei dienstverknüpfte Rollen mit dem Namen AWSServiceRoleForLambdaReplicator und AWSServiceRoleForCloudFrontLogger. In den folgenden Abschnitten werden die Berechtigungen für jede dieser Rollen beschrieben.
Inhalt
Serviceverknüpfte Rollenberechtigungen für Lambda Replicator
Diese serviceverknüpfte Rolle ermöglicht Lambda das Replizieren von Lambda@Edge-Funktionen zu AWS-Regionen.
Das Tool AWSServiceRoleForLambdaReplicator Eine mit einem Dienst verknüpfte Rolle vertraut darauf, dass der replicator.lambda.amazonaws.com
Dienst die Rolle übernimmt.
Die Rollenberechtigungsrichtlinie erlaubt Lambda@Edge die Durchführung der folgenden Aktionen für die angegebenen Ressourcen:
-
lambda:CreateFunction
aufarn:aws:lambda:*:*:function:*
-
lambda:DeleteFunction
aufarn:aws:lambda:*:*:function:*
-
lambda:DisableReplication
aufarn:aws:lambda:*:*:function:*
-
iam:PassRole
aufall AWS resources
-
cloudfront:ListDistributionsByLambdaFunction
aufall AWS resources
Mit dem Dienst verknüpfte Rollenberechtigungen für den Logger CloudFront
Diese dienstbezogene Rolle ermöglicht das CloudFront Pushen von Protokolldateien, CloudWatch sodass Sie Lambda @Edge -Validierungsfehler debuggen können.
Das Tool AWSServiceRoleForCloudFrontLogger Die mit dem Dienst verknüpfte Rolle vertraut darauf, dass der logger.cloudfront.amazonaws.com
Dienst die Rolle übernimmt.
Die Rollenberechtigungsrichtlinie ermöglicht es Lambda @Edge, die folgenden Aktionen für die angegebene arn:aws:logs:*:*:log-group:/aws/cloudfront/*
Ressource durchzuführen:
-
logs:CreateLogGroup
-
logs:CreateLogStream
-
logs:PutLogEvents
Sie müssen Berechtigungen konfigurieren, damit eine IAM Entität (z. B. ein Benutzer, eine Gruppe oder eine Rolle) die mit dem Lambda @Edge -Service verknüpften Rollen löschen kann. Weitere Informationen finden Sie unter Berechtigungen für dienstbezogene Rollen im IAM Benutzerhandbuch.
Serviceverknüpfte Rollen für Lambda@Edge erstellen
Servicegebundene Rollen für Lambda@Edge werden in der Regel nicht manuell erstellt. In den folgenden Szenarien legt der Service die Rollen für Sie automatisch an:
-
Wenn Sie zum ersten Mal einen Trigger erstellen, erstellt der Service den AWSServiceRoleForLambdaReplicator Rolle (falls sie noch nicht existiert). Diese Rolle ermöglicht es Lambda, Lambda @Edge -Funktionen auf zu replizieren. AWS-Regionen
Wenn Sie die serviceverknüpfte Rolle löschen, wird die Rolle erneut erstellt, wenn Sie einen neuen Auslöser für Lambda@Edge in einer Verteilung hinzufügen.
-
Wenn Sie eine CloudFront Distribution aktualisieren oder erstellen, die über eine Lambda @Edge -Verknüpfung verfügt, erstellt der Dienst die AWSServiceRoleForCloudFrontLogger Rolle (falls die Rolle noch nicht existiert). Diese Rolle ermöglicht CloudFront es, Ihre Protokolldateien zu übertragen CloudWatch.
Wenn Sie die dienstverknüpfte Rolle löschen, wird die Rolle erneut erstellt, wenn Sie eine CloudFront Distribution aktualisieren oder erstellen, die über eine Lambda @Edge -Zuordnung verfügt.
Um diese dienstbezogenen Rollen manuell zu erstellen, können Sie die folgenden Befehle AWS Command Line Interface ()AWS CLI ausführen:
Um das zu erstellen AWSServiceRoleForLambdaReplicator role
-
Führen Sie den folgenden Befehl aus.
aws iam create-service-linked-role --aws-service-name replicator.lambda.amazonaws.com
Um das zu erstellen AWSServiceRoleForCloudFrontLogger role
-
Führen Sie den folgenden Befehl aus.
aws iam create-service-linked-role --aws-service-name logger.cloudfront.amazonaws.com
Bearbeiten von serviceverknüpften Lambda@Edge-Rollen
Lambda @Edge erlaubt Ihnen nicht, das zu bearbeiten AWSServiceRoleForLambdaReplicator or AWSServiceRoleForCloudFrontLogger Rollen, die mit Diensten verknüpft sind. Nachdem der Dienst eine dienstverknüpfte Rolle erstellt hat, können Sie den Namen der Rolle nicht mehr ändern, da verschiedene Entitäten möglicherweise auf die Rolle verweisen. Sie können sie jedoch verwenden, IAM um die Rollenbeschreibung zu bearbeiten. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Bearbeiten einer dienstbezogenen Rolle.
Wird AWS-Regionen für CloudFront dienstverknüpfte Rollen unterstützt
CloudFront unterstützt die Verwendung von dienstverknüpften Rollen für Lambda @Edge im Folgenden: AWS-Regionen
-
US East (N. Virginia) –
us-east-1
-
US East (Ohio) –
us-east-2
-
US West (N. California) –
us-west-1
-
US West (Oregon) –
us-west-2
-
Asia Pacific (Mumbai) –
ap-south-1
-
Asien-Pazifik (Seoul) –
ap-northeast-2
-
Asia Pacific (Singapore) –
ap-southeast-1
-
Asien-Pazifik (Sydney) –
ap-southeast-2
-
Asien-Pazifik (Tokio) –
ap-northeast-1
-
Europe (Frankfurt) –
eu-central-1
-
Europe (Ireland) –
eu-west-1
-
Europe (London) –
eu-west-2
-
South America (São Paulo) –
sa-east-1