我正在尝试从 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
实例?
答案 0 :(得分:0)
从实例访问S3的推荐方法是通过IAM roles for Amazon EC2。
基本角色可能仅包含AWS托管策略AmazonS3ReadOnlyAccess
:
在您的实例上附加了角色后,您无需为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);
});