0

問題API Gatewayの前でEC2ホストアプリケーションからCognito IDにアクセスするにはどうすればよいですか?ハイレベルで

、私は、ユーザーの特定のCognitoが提供するアイデンティティに基づいて自分のアプリケーションで特定の機能を許可します。

具体的には、私はEC2ホストのTomcatアプリケーション内で、APIゲートウェイに頼らずにこれを行いたいと思います。

例えば、私のRESTfulなサービスがhelloworld.com/tastyTreats/foo/tastyTreats/barでリソースを持っているかもしれません。 tastyTreatがデータベースに特定のCognito識別子が所有するものとしてリストされている場合にのみ、それらのリソースへの書き込みアクセスを許可したいとします。

は、データベースがこのようになっていることを言う:

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

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

... 

ので、ボブとしてCognitoで識別されるユーザーはhelloworld.com/tastyTreats/barへの書き込みアクセス権を持っている必要がありますがhit a 403/tastyTreats/fooにアクセスする必要があるとき。

EC2インスタンス内で(本質的に)無制限の柔軟性のためにこの権限を実行したいと考えています。実現可能であれば、API Gatewayをロールする必要はありません。非常に小さなアプリケーションであり、できるだけシンプルにしたいと思います。

  • API Gatewayは、このアイデンティティin the mapping templateへのアクセスを許可するようだ:この機能にストレートEC2の横

    その他のサービスを提供

    他のAWSサービスは、実際のアイデンティティに基づいて動作を変更する機能を提供します。

  • より一般的にはcustomize a policy based on this identityですが、この機能はIDを変換する機能に制限があるようです。

ありがとう!

答えて

2

Cognito Identity Poolを使用している場合は、EC2インスタンスから自分でこれを行うことはできません。これは、APIゲートウェイID属性のような他のAWSサービスを介してのみ利用可能です。 Cognito User Poolsを使用している場合は、標準のJWT/JWK実装(OIDCを使用して実装されている)ですので、EC2インスタンスから実装することができます。

関連する問題