S3に書き込む機能が必要な組み込みデバイスがあります。私は組み込み機器に実際のAWS IAMUserを与えることを避けたい。私はCognitoを使ってS3への書き込みアクセス権を得ることに目を向けています。CognitoユーザーにS3への書き込みを許可する
私はグループと1人のユーザー(今のところ)を持つユーザープールを持っています。このグループには、特定のS3バケットへのアクセスを許可する添付されたポリシーがあります。管理者だけが新しいユーザーを作成できるようにプールが設定されています。私はCognitoユーザーを認証して、新しいトークンとidTokensにアクセスできました。私はこれらのトークンを使用してs3バケットに書き込むことを検討しています。
私はドキュメントに従うようにしようとしていますが、混乱しています。私は連合アイデンティティプールが必要だと思うが、私は公共プロバイダーの必要はない。私はちょうど私のcognitoユーザグループがs3に書きたいと思う。
CognitoユーザーがフェデレーションIDなしでS3に書き込むことができるようにする単純なソリューションがありますか、フェデレーションID用にトークンを提供するためにバックエンドを必要としないのですか?
私がように認証するために令状 https://github.com/capless/warrantを使用している:
from warrant.aws_srp import AWSSRP
import boto3
client = boto3.client('cognito-idp')
aws = AWSSRP(username='<username>', password='<password>', pool_id='<pool>',
client_id='<clientid>', client=client)
tokens = aws.authenticate_user()
任意のヒントをいただければ幸いです!
Cognitoトークンを使用してS3用に使用する一時的なAWS資格情報を取得するには、STS AssumeRoleWithWebIdentityを呼び出す必要があります。ちなみに、ユーザープールを導入した元のブログ投稿(現在は連合アイデンティティプールと呼ばれている自己管理型の代替手段として)は役に立ちます:https://aws.amazon.com/blogs/aws/new-user-pools -for-amazon-cognito /。 Facebookなどの必要はありません – jarmod