Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie kann ich ressourcenbasierte Richtlinien mit AWS Lambda verwenden, um Berechtigungen für AWS-Services zu erteilen?
Ich möchte ressourcenbasierte Richtlinien für AWS Lambda verwenden, um AWS-Services die Berechtigung zu erteilen.
Kurzbeschreibung
Du kannst die AWS Command Line Interface (AWS CLI) mit Lambda verwenden, um mithilfe ressourcenbasierter Richtlinien Berechtigungen für AWS-Services zu erteilen. Weitere Informationen findest du unter Verwenden von ressourcenbasierten Richtlinien für AWS Lambda.
Lösung
Das folgende Beispiel fügt die Berechtigung für EventBridge hinzu und überprüft, ob die Lambda-Funktion die ressourcenbasierte Richtlinie aufruft.
Hinweis:
- Sollten beim Ausführen von AWS-CLI-Befehlen Fehler auftreten, stelle sicher, dass du die neueste Version der AWS CLI verwendest.
- Ersetze your-event und your-function durch deine Variablen und your-region durch deine AWS-Region.
Sich vergewissern, dass für die Lambda-Funktion keine Ressourcenrichtlinie konfiguriert ist
Einige AWS-Services wie EventBridge erstellen eine ressourcenbasierte Richtlinie für die Lambda-Funktion. Stelle sicher, dass die ressourcenbasierte Richtlinie keine Berechtigung für EventBridge hat, indem du den AWS-CLI-Befehl get-policy verwendest, der dem folgenden ähnelt:
aws lambda get-policy --region your-region --function-name your-function An error occurred (ResourceNotFoundException) when calling the GetPolicy operation: The resource you requested does not exist.
Dieser Fehler bestätigt, dass für die Lambda-Funktion keine ressourcenbasierte Richtlinie konfiguriert ist.
Berechtigungen für EventBridge hinzufügen
Führe den AWS-CLI-Befehl add-permission aus, um die Lambda-Funktion ähnlich der folgenden aufzurufen:
aws lambda add-permission --region your-region --function-name your-function --statement-id "your-event-permission" --action "lambda:InvokeFunction" --principal "events.amazonaws.com" --source-arn "arn:aws:events:your-region:xxxxxxxxxxxxx:rule/your-event" { "Statement": "{\"Sid\":\"your-event-permission\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:your-region:xxxxxxxxxxxxx:function:your-function\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:events:your-region:xxxxxxxxxxxxx:rule/your-event\"}}}" }
Überprüfen der Berechtigungen für die ressourcenbasierte Richtlinie der Lambda-Funktion
Führe den AWS-CLI-Befehl get-policy, ähnlich dem folgenden, erneut aus:
aws lambda get-policy --region your-region --function-name your-function { "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "your-event-permission", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:your-region:xxxxxxxxxxxxx:function:your-function", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:events:your-region:xxxxxxxxxxxxx:rule/your-event" } } } ] }
(Optional) Entfernen der Berechtigung aus einer ressourcenbasierten Richtlinie der Lambda-Funktion
Wenn du keinen AWS-Service mehr benötigst, um die Lambda-Funktion auszulösen, kannst du den AWS-CLI-Befehl remove-permission ähnlich dem folgenden ausführen:
aws lambda remove-permission --region your-region --function-name your-function --statement-id "your-event-permission"
Hinweis: Das ressourcenbasierte Richtlinienkontingent der Lambda-Funktion beträgt 20 KB. Weitere Informationen findest du unter Lambda-Kontingente.
Ähnliche Informationen
Wie behebe ich den Lambda-Fehler „The final policy size is bigger than the limit“?
- Themen
- ServerlessCompute
- Tags
- AWS Lambda
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor 4 Monaten
AWS OFFICIALAktualisiert vor 3 Jahren