【问题标题】:How to get access to private s3 bucket using cognito如何使用 cognito 访问私有 s3 存储桶
【发布时间】:2020-02-29 19:24:12
【问题描述】:

我有一个 cognito 用户池,它作为身份提供者连接到 google(以便我可以使用 gmail 帐户登录)。我还有一个带有文件()的私有存储桶 s3。如何使用我的 lambda 函数,使用 Cognito 返回的令牌(AcessToken,IdToken)来访问我的不公开的 s3 存储桶?

我只想使用我的 cognito 访问我在 s3 上的私人文件。

类似于 Cognito Authorizer for lambda 函数,仅适用于 s3 存储桶。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cognito serverless-framework


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      您可以使用Signed URLs 来实现此目的。

      基本上,在您的用户成功通过 Cognito 身份验证后,您的 Lambda 函数将为请求的对象生成 s3 预签名 url 并回复。

      Example from AWS Documentation

      也看看这个AWS forum thread

      【讨论】:

      • 但这会生成一个在一段时间内有效的链接,任何获得该链接的人都可以访问该对象。我希望资源直接受到 cognito 的保护。
      • 你可以把这个 TTL 设置得很低,所以它只能使用一次,不能与任何人共享。否则,您必须通过您的 lambda(Lambda 大小限制为 6mb)从 s3 代理整个文件主体,或使用部署在 EC2 上的任何其他解决方案进行代理
      • 不需要签名的 URL。使用 AWS 开发工具包和您的 Cognito id_token,您可以请求 AWS 凭证(临时)。
      猜你喜欢
      • 1970-01-01
      • 2019-01-25
      • 2017-03-19
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多