我正在使用的IAM用户附加以下策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1468642330000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::elasticbeanstalk-ap-southeast-1-648213736065/documents/*"
]
}
]
}
问题在于我做了类似的事情:
return readFile(file.path)
.then(function(buffer) {
var s3obj = s3.putObject({
Bucket: bucket,
Key: `documents/${destFileName}`,
Body: buffer
});
return s3obj.promise();
});
我明白了:
AccessDenied: Access Denied
这里有什么不对?
当我使用listBuckets
时,我从其他S3帐户获取内容。好像我配置SDK的方式不正确?
答案 0 :(得分:1)
好的,我发现了这个问题,就像使用[default]
文件中指定的~/.aws/credentials
个人资料一样。
我发现我需要像这样配置AWS:
AWS.config = new AWS.Config({
accessKeyId: appConfig.aws.accessId,
secretAccessKey: appConfig.aws.secretKey,
logger: process.stdout
});
我最初设置
AWS.config.accessKeyId = ...