如何在AWS JS SDK中使用ECS凭据

时间:2017-08-11 12:02:19

标签: javascript amazon-s3 aws-sdk amazon-ecs

我正在尝试使用 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;

我还有一个

  

拒绝访问

知道我在那里缺少什么吗?

0 个答案:

没有答案