0

ユーザーがS3のファイルにアクセスできるようにする必要があります。これは特定の接頭辞 - つまりusername1 - を変更できないため、$ {cognito -identity.amazonaws.com:sub}をプレフィックスとして使用します。 My S3バケットには特定のプレフィックスの下にコンテンツが既に設定されているため、ユーザーが自分のアプリにログインして特定のプレフィックスの1つにアクセスできるようになりますS3でCognitoでカスタムプレフィックスにアクセスできるようにする

現在、AWSに設定されているため、 Firebaseと開発者が認証したアイデンティティ各ユーザーアカウント(電子メール/パスワード)には、アクセス可能なS3接頭辞が関連付けられています。一部のユーザーはこの接頭辞を共有します(たとえば、2人のユーザーがS3-bucket/username1にアクセスします)。ユーザーは、関連する接頭辞を除いて、他の接頭辞を一覧表示したり、アクセスしたりすることはできません。

Cognitoの役割やデータベースとラムダ関数+ apiエンドポイント、バケット/ユーザーポリシーまたはACLを使用するだけで、これを達成するための最善の方法がわかりません。私が行方不明になっている簡単な方法はありますか?

AWSにはまったく新しい、どんな助けも大歓迎です!

tl; dr:$ {cognito-identity.amazonaws.com:sub}変数ではない特定の接頭辞を持つS3上のファイルにユーザーがアクセスできるようにするにはどうすればよいですか?

+0

変更しないために、Cognito Identityプレフィックスを使用できないと言っていますか?一度CognitoのIDを認証すると、あなたが行っているように見えない別のIDとマージするまで、IDは変更されません。それが問題ならば、そのプレフィックスを使用するのが安全であるはずです。 –

+0

@JeffBailey:いいえ私はCognitoとは無関係に完全に異なるプレフィックスを使用する必要があります - 特定のプレフィックスの下でS3にデータをダウンロードして保存していますが、ユーザーがこれらのプレフィックスの1つにアクセスできるようにするには – mmmyum

+0

Amazon Cognitoは現在のカスタム値をサポートしていません。私たちはこの要求を他の顧客から聞いたことがあり、今後のサービスの更新で考慮します。 –

答えて

0

コメントに記載されているように、Amazon Cognitoは今日あなたのユースケースを直接サポートしていません。

  1. Cognitoを使用してユーザーを正常に認証できます。 Cognito IDにはAPIゲートウェイエンドポイントを呼び出す権限があります。
  2. API(Lambdaで動作)は、Cognito ID(コンテキストで提供)を使用して、Cognito IDとカスタムS3プレフィックスのマッピングを検索します。
  3. APIはSTSを使用して、そのプレフィックスにアクセスするための一時的な資格情報を生成し、クライアントに返します。
  4. クライアントはこれらの資格情報を使用して、S3に直接リクエストを行います。
関連する問題