Ich habe eine GET-Methode unter API-Gateway (Auth: AWS_IAM) eingerichtet und verfügen über einen Cognito-Pool mit Entwickleridentität. Ich habe ein Lambda hinter Methode bekommen.AWS Cognito und API-Gateway-Authentifizierung
Wenn ich Cognito anrufe bekomme ich die temporären Zugangsdaten und ich nehme eine Rolle an. Meine angenommene Rolle hat die entsprechende Berechtigung, um alles auf dem API-Gateway auszuführen und darauf zuzugreifen.
...
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"apigateway:GET"
],
"Resource": [
"*"
]
}
...
Wenn ich den API-Gateway mit dieser Einrichtung aufrufen, bekomme ich einen 500, Interner Server Fehler.
Wenn ich die oben genannten API-Gateway Berechtigungen aus der Richtlinie entferne dann bekomme ich 403 error forbidden (User: arn:aws:sts::xxxxx:assumed-role/Cogn_Auth_Role/xxx is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:us-east-1:xxxx:xxx/xxx/GET/events
Wenn ich gehe und an die AdminAccess
diese Rolle dann fein alles funktioniert. Was ist der Deal hier? Fehle ich etwas?
Hallo Johnny hast du Erfolg gehabt? – Krishna
ja, siehe die zweite Antwort unten. Was ich brauchte, war Lambada-Anrufung. Testen Sie den AWS-Richtliniensimulator und sehen Sie, welche Berechtigungen Ihnen fehlen, wenn Sie so etwas erleben. – johnny
Vielen Dank @Johnny. Lassen Sie mich mit Lambda-Aufruf versuchen. Aber ich verwechsle, wir können API-Gateway nicht mit Cognito und ohne Lambda verwenden? – Krishna