Gibt es eine Möglichkeit, einen benutzerdefinierten Autorizer zu erstellen, der Richtlinien zurückgibt, die Ressourcenpfade und Pfadparameter zulassen?Benutzerdefinierte AWS-API-Autorisierungsrichtlinien mit Pfadparametern
Beispiel: Allow: GET/Stores, GET/Geschäfte/{} storeId Deny: GET/Geschäfte/{storeId}/Produkte
Ich habe Probleme mit Pfadparameter mit, denn wenn ich eine Rückkehr policy like arn: ...: .../stage/GET/speichert/{storeId}, API-Gateway blockiert Aufrufe von GET/stores/123 oder GET/stores/555123
Die {id} am Ende des zweiten Beispiels wird nicht wie gewünscht funktionieren, wenn Sie es mit einem bestimmten ID ersetzen oder alle IDs erlauben, mit "Ressource": "arn: aws: execute-api: eu-zentral-1: 1234567890: 9f4xsv4jbl/*/GET/speichert/*" –
Das ist interessant. Ich habe mit diesen Aussagen getestet. curl -H 'Autorisierung: a' https://9f4xsv4jbl.execute-api.eu-central-1.amazonaws.com/prod/stores -> funktioniert. curl -H 'Autorisierung: a' https://9f4xsv4jbl.execute-api.eu-central--1.amazonaws.com/prod/stores/123 -> Benutzer nicht autorisiert. curl -H 'Autorisierung: a' https://9f4xsv4jbl.execute-api.eu-central-1.amazonaws.com/prod/stores/123/products -> funktioniert. Dies würde im Widerspruch dazu stehen, dass ich die konkrete ID in der Richtlinie angeben muss. –
Ich glaube nicht, dass Api Gateway Unterstützung für Pfadvariablen bietet. Ich "löste" dies für jetzt, indem ich keinen Cache und jeden API-Aufruf verwende. Ich rufe meinen benutzerdefinierten Autorisierer an, der ein ALLOW | zurückgibt DENY arn ..: v1..GET/speichert/* –