0

Das ProblemWie erfolgt der Zugriff auf die Cognito-Identität von einer von EC2 gehosteten Anwendung ohne API Gateway?

Auf hohem Niveau möchte ich eine bestimmte Funktionalität in meiner Anwendung auf dem Benutzer spezifischen Cognito bereitgestellten identitätsbasierten autorisieren.

Genauer gesagt, würde Ich mag diese Tomcat Anwendung in meinem gehosteten EC2-tun, ohne sich auf API-Gateway.

Ein Beispiel

Zum Beispiel könnte meine RESTful Service-Ressourcen haben bei helloworld.com/tastyTreats/foo und /tastyTreats/bar. Ich möchte nur Schreibzugriff auf diese Ressourcen ermöglichen, wenn die tastyTreat in der Datenbank als Besitzer einer bestimmten Cognito-ID aufgeführt ist.

Sagen Sie, dass Datenbank wie folgt aussieht:

{"TreatName":"foo", "Owner":"Alice"}, 

{"TreatName":"bar", "Owner":"Bob"}, 

... 

So kann der Benutzer von Cognito als Bob sollte sollte, wenn aber hit a 403/tastyTreats/foo Zugriff Zugriff auf helloworld.com/tastyTreats/bar haben Schreib identifiziert.

Ich möchte in der Lage sein, diese Genehmigung für seine (im Wesentlichen) unbegrenzte Flexibilität in meiner EC2-Instanz auszuführen. Und wenn es machbar ist, möchte ich die Anforderung vermeiden, API Gateway zu rollen - es ist eine sehr kleine Anwendung und ich möchte die Dinge so einfach wie möglich halten.

Andere Dienste AWS, die diese Funktionalität

Andere Dienste neben geraden EC2 bieten bieten die Möglichkeit, das Verhalten auf die tatsächliche Identität zu verändern, basierend:

Vielen Dank!

Antwort

2

Wenn Sie eine Cognito Identität Pool verwenden, werden Sie nicht in der Lage sein, dies aus einer EC2-Instanz auf eigene Faust zu tun. Dies ist nur über andere AWS-Dienste wie das API-Gateway-Identitätsattribut verfügbar. Wenn Sie Cognito-Benutzerpools verwenden, handelt es sich um eine JWT/JWK-Standardimplementierung (unter Verwendung von OIDC, glaube ich), sodass Sie diese selbst aus der EC2-Instanz implementieren können.