即使拥有私人访问权限,也可以查看s3中的文件

时间:2018-08-11 07:52:54

标签: javascript reactjs amazon-web-services amazon-s3

我想要的是在我的img src中安全地添加s3网址,但要有一定的安全性。我无法将文件权限更改为public。是否可以使用令牌或其他类型的变通办法。

2 个答案:

答案 0 :(得分:1)

使用S3预签名URL。但是您必须构建一个后端(使用ec2或lambda或任何您想要的角色来访问该存储桶)。

然后在后端,您可以使用此脚本(对于nodejs)使用idk您要使用的语言。

const url = s3.getSignedUrl('getObject', {
    Bucket: "bucket-name",
    Key: "image/secret.jpg",
    Expires: 300 //300 seconds
})

将网址返回到您的前端

然后您可以在img src中使用该网址

答案 1 :(得分:0)

您可以在到期时使用签名URL。您的应用程序将需要AWS凭证(如果在ec2上运行,则需要角色才能访问S3)

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html

(好的,本文档适用于Cloudfront,但是您也可以直接在s3中使用它)