【发布时间】:2023-03-12 07:46:01
【问题描述】:
我是 AWS 的新手,遇到了一些安全问题。
我想允许我的用户上传个人资料图片并将其保存在 S3 中。 我的代码如下所示:
import AWS_S3 from 'aws-sdk/clients/s3';
import config from '../../config';
const myS3Credentials = {
accessKeyId: config('AWSS3AccessKeyID'),
secretAcccessKey: config('AWSS3SecretAccessKey'),
};
console.log('myS3Credentials:', myS3Credentials);
const S3 = new AWS_S3({
credentials: myS3Credentials,
region: config('AWSS3Region'),
});
所有变量(如AWSS3Region 和我的凭据)都在.env 文件中设置。但是在这里,我将它们暴露在代码中。如何避免这种情况?还是我应该设置一些存储桶权限?
【问题讨论】:
-
不要这样做。黑客使用机器人 Github 和其他公共网站搜索这些确切的访问令牌,以便他们可以从您的 AWS 账户中挖掘比特币。因为这个,我曾经在我的 AWS 上累积了 8k 的每月费用。此外,如果您公开任何凭据,请尽快更改您的访问令牌
-
这是客户端代码还是服务器代码?
-
@lukaleli 客户端代码。
-
您应该在服务器上的 API 中有一个瘦代理层,它可以传递到您的 S3 实例。这样您就不会公开您的凭据。
-
@NicholasKyriakides 谢谢。从来没有想过这些混蛋会这样做。
标签: javascript amazon-web-services amazon-s3 aws-sdk-js