首页 > 解决方案 > 使用配置文件初始化节点 aws

问题描述

我正在尝试从S3 Bucket读取,目前我有代码:

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初始化我的实例?

标签: node.jsamazon-web-servicesamazon-s3

解决方案


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

基本角色可能只包含 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);
});

推荐阅读