【问题标题】:Is there a way to use AWS Amplify library (JavaScript) to access s3 bucket without cognito user poool and identity pool?有没有办法在没有认知用户池和身份池的情况下使用 AWS Amplify 库 (JavaScript) 访问 s3 存储桶?
【发布时间】:2020-12-31 04:31:57
【问题描述】:

我正在尝试使用放大库(JavaScript 来访问 s3 存储桶,其中包含 STS 生成的临时访问密钥和秘密访问密钥。但似乎我需要一个 cognito 用户池和身份池。

import Amplify, { Storage } from 'aws-amplify';

Amplify.configure({
  Storage: {
    region: 'ap-south-1',
    endpoint: "http://localhost:4572",
    bucket: 'mybucket',
  }
})

Storage.list('photos/').then(res => console.log(res)).catch(err => console.log(err))

有没有办法在不使用 AWS SDK 的情况下实现这一目标?

[WARN] 56:56.803 AWSS3Provider - ensure credentials error No Cognito Identity pool provided for unauthenticated access
No credentials

【问题讨论】:

    标签: javascript amazon-web-services amazon-s3 amazon-cognito aws-amplify


    【解决方案1】:

    您可以使用 AWS SDK for javascript,它在后台使用 AWS API。在这种情况下,您需要将 s3 存储桶公开/对所有人开放,或者使用 AWS IAM 凭证,这不是一种安全的方式。

    【讨论】:

    • 我打算利用AWS STS来生成临时的AccessKeyId和SecretAccessKey。我想坚持使用 amplify 的原因是因为它为我提供了简单/干净的方式来配置 blob 级别的访问级别以及上传和下载进度等功能,
    • 但这也不是一种安全的方式。您需要一些 STS 标准来决定谁能够访问资源。
    【解决方案2】:

    通常不建议在 Amplify 中直接使用 IAM 凭证,因为滚动您自己的身份验证/授权(决定是否授予 STS 凭证的过程)是危险的。

    但是,这样做有很多正当理由,所以这里是:this GitHub thread 是关于这个问题的,并说你可以通过类似的代码来做到这一点

    AWS.config.update({
      credentials: new AWS.Credentials({
        accessKeyId: 'the key',
        secretAccessKey: 'the other key'
      })
    });
    

    在你的Amplify.configure()之前

    【讨论】:

    • 仍然遇到同样的错误。难道我做错了什么 ?? import AWS from 'aws-sdk'; import Amplify, { Storage, Auth } from 'aws-amplify'; AWS.config.update({ credentials: new AWS.Credentials({ accessKeyId: 'the key', secretAccessKey: 'the other key' }) }); Amplify.configure({ Storage: { region: 'ap-south-1', endpoint: "http://localhost:4572", bucket: 'mybucket' } }); Storage.list('/').then(res => console.log(res)).catch(err => console.log(err))
    猜你喜欢
    • 2020-08-14
    • 2019-12-27
    • 2018-02-11
    • 2020-12-11
    • 1970-01-01
    • 2020-06-22
    • 2016-04-07
    • 2020-05-29
    • 2020-09-16
    相关资源
    最近更新 更多