Anderen Konten Zugriff auf Lambda-Funktionen gewähren - 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.

Anderen Konten Zugriff auf Lambda-Funktionen gewähren

Um eine Funktion mit einer anderen gemeinsam zu nutzen AWS-Konto, fügen Sie der ressourcenbasierten Richtlinie der Funktion eine kontoübergreifende Berechtigungsanweisung hinzu. Führen Sie den Befehl add-permission aus und geben Sie die Konto-ID als. principal Im folgenden Beispiel wird dem Konto 111122223333 die Berechtigung zum Aufrufen von my-function mit dem Alias prod erteilt.

aws lambda add-permission \ --function-name my-function:prod \ --statement-id xaccount \ --action lambda:InvokeFunction \ --principal 111122223333 \ --output text

Die Ausgabe sollte folgendermaßen aussehen:

{"Sid":"xaccount","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-1:123456789012:function:my-function"}

Die ressourcenbasierte Richtlinie erteilt dem anderen Konto die Berechtigung für den Zugriff auf die Funktion, erlaubt den Benutzern in diesem Konto jedoch nicht, ihre Berechtigungen zu überschreiten. Benutzer des anderen Kontos müssen über die entsprechenden Benutzerberechtigungen verfügen, um Lambda API verwenden zu können.

Um den Zugriff auf einen Benutzer oder eine Rolle in einem anderen Konto zu beschränken, geben Sie die vollständige ARN Identität als Hauptbenutzer an. Beispiel, arn:aws:iam::123456789012:user/developer.

Der Alias schränkt ein, welche Version das andere Konto aufrufen kann. Dazu muss das andere Konto den Alias in die Funktion aufnehmenARN.

aws lambda invoke \ --function-name arn:aws:lambda:us-east-2:123456789012:function:my-function:prod out

Die Ausgabe sollte folgendermaßen aussehen:

{ "StatusCode": 200, "ExecutedVersion": "1" }

Der Funktionsbesitzer kann dann den Alias so aktualisieren, dass er auf eine neue Version verweist, ohne dass der Aufrufer die Methode ändern muss, mit der er Ihre Funktion aufruft. Dadurch wird sichergestellt, dass das andere Konto seinen Code nicht ändern muss, um die neue Version zu verwenden, und nur zum Aufruf der Version der Funktion berechtigt ist, die dem Alias zugeordnet ist.

Für die meisten API Aktionen, die mit einer vorhandenen Funktion ausgeführt werden, können Sie kontenübergreifenden Zugriff gewähren. Beispielsweise könnten Sie Zugriff auf lambda:ListAliases gewähren, damit ein Konto eine Liste der Aliasse abrufen kann, oder lambda:GetFunction, damit es Ihren Funktionscode herunterladen kann. Fügen Sie jede Berechtigung separat hinzu oder verwenden Sie lambda:*, um Zugriff auf alle Aktionen der angegebenen Funktion zu gewähren.

Um anderen Konten Berechtigungen für mehrere Funktionen oder für Aktionen zu gewähren, die nicht auf eine Funktion angewendet werden, empfehlen wir die Verwendung von IAMRollen.