我正在尝试使用 AWS JS SDK 访问 S3 Bucket ,但没有成功。
我有一个任务定义,它使用名为Foo
的任务角色。此任务角色作为附加的策略来访问S3 Bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::foo-bucket"
}
]
}
它在AWS Documentation about loading credentials from IAM roles for EC2中说我应该配置我的实例以使用IAM角色。但我在AWS文档中找不到任何相关内容。
我尝试使用AWS.ECSCredentials class
:
credentials
const options = {
apiVersion: '2006-03-01',
region: bucketSettings.region,
credentials: new AWS.ECSCredentials({
httpOptions: { timeout: 5000 }, // 5 second timeout
maxRetries: 10, // retry 10 times
retryDelayOptions: { base: 200 }, // see AWS.Config for information
})
};
this.s3Instance = new AWS.S3(options);
当我尝试访问S3 Bucket中的文件时:
const document = await this.s3Instance
.getObject({ Bucket: bucketSettings.name, Key: key })
.promise();
return document;
我还有一个
拒绝访问
知道我在那里缺少什么吗?