Gewähren des Lambda-Ebenenzugriffs für andere Konten
Um eine Ebene mit einem anderen AWS-Konto gemeinsam zu nutzen, fügen Sie der ressourcenbasierten Richtlinie der Ebene eine kontenübergreifende Berechtigungsanweisung hinzu. Führen Sie den Befehl add-layer-version-permissionprincipal an. In jeder Anweisung können Sie einem einzelnen Konto, allen Konten oder einer Organisation in eine Berechtigung erteilen AWS Organizations.
Im folgenden Beispiel wird dem Konto 111122223333 Zugriff auf Version 2 der bash-runtime-Ebene gewährt.
aws lambda add-layer-version-permission \ --layer-name bash-runtime \ --version-number 2 \ --statement-id xaccount \ --action lambda:GetLayerVersion \ --principal 111122223333 \ --output text
Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:
{"Sid":"xaccount","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-east-1:123456789012:layer:bash-runtime:2"}
Berechtigungen gelten nur für eine Version mit einer Ebene. Wiederholen Sie den Vorgang bei jeder Erstellung einer neuen Ebenenversion.
Um Berechtigungen für alle Konten in einer AWS Organizations Organisation zu erteilen, verwenden Sie die Option organization-id. Im folgenden Beispiel wird allen Konten in Organisation o-t194hfs8cz die Berechtigung für die Verwendung von Version 3 einer my-layer erteilt.
aws lambda add-layer-version-permission \ --layer-name my-layer \ --version-number 3 \ --statement-id engineering-org \ --principal '*' \ --action lambda:GetLayerVersion \ --organization-id o-t194hfs8cz \ --output text
Die Ausgabe sollte folgendermaßen aussehen:
{"Sid":"engineering-org","Effect":"Allow","Principal":"*","Action":"lambda:GetLayerVersion","Resource":"arn:aws:lambda:us-east-2:123456789012:layer:my-layer:3","Condition":{"StringEquals":{"aws:PrincipalOrgID":"o-t194hfs8cz"}}}"
Um die Berechtigung für mehrere Konten oder Organisationen zu erteilen, müssen Sie mehrere Bescheinigungen hinzufügen.