【发布时间】:2021-05-02 10:02:28
【问题描述】:
我正在尝试在 S3 存储桶上上传一些文件,它适用于硬编码凭据,但我想通过使用 IAM 角色来进一步提高安全性。
这就是我所做的:
- 创建一个允许完全访问特定 S3 存储桶的 IAM 角色
- 将角色添加到运行我的应用程序的 EC2 实例中
- 使用未指定凭据的 AWS SDK 进行调用(代入角色)
- 出现错误
这是我用于 S3 交互的代码
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const options = {
Bucket: BUCKET_NAME,
Key: /my/key/
Body: mybody,
ContentType: somecontent,
ACL: 'public-read'
};
return s3.upload(options, (err, data) => {
if (err) {
return reject(err);
}
//code continue
});
这就是我所拥有的:
CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
所以我尝试在 ~/.aws/config 和 ~/.aws/credentials 中使用配置文件(我还在 .bashrc 文件中将 AWS_SDK_LOAD_CONFIG 设置为 1 并设置配置文件路径)。
.aws/配置:
[default]
region=myregion
role_arn=myrolearn
还尝试使用文件中的凭据,以便至少它不会出现在代码本身中。
我错过了什么吗?
提前致谢
【问题讨论】:
标签: node.js amazon-s3 aws-sdk amazon-iam