用配置文件初始化Node aws

时间:2020-09-15 05:17:36

标签: node.js amazon-web-services amazon-s3

我正在尝试从 S3存储桶中读取内容,目前我有以下代码:

var AWS = require('aws-sdk');
AWS.config.update({accessKeyId: 'myAccesID', secretAccessKey: 'superRandomSecretKey', region: 'us-west-2'});
var s3 = new AWS.S3();

var params = {
 Bucket: 'my-bucket',
 Delimiter: '/'
}

s3.listObjects(params, function (err, data) {
 if(err)throw err;
 console.log(data);
});

但是我得到Access Denied,我知道我的命名个人资料可以正常工作,因为我可以使用aws cli命令列出文件:

aws s3 ls s3://my-bucket --recursive --profile  my-named-profile

那么,如何使用 命名的个人资料 初始化aws实例?

1 个答案:

答案 0 :(得分:0)

从实例访问S3的推荐方法是通过IAM roles for Amazon EC2

基本角色可能仅包含AWS托管策略AmazonS3ReadOnlyAccess

enter image description here

在您的实例上附加了角色后,您无需为aws-sdk进行任何特殊操作即可使用它。 SDK将自动识别。因此,您可能是:

var AWS = require('aws-sdk');

var s3 = new AWS.S3();

var params = {
 Bucket: 'my-bucket',
 Delimiter: '/'
}

s3.listObjects(params, function (err, data) {
 if(err)throw err;
 console.log(data);
});