Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么我的访问在s3上被拒绝(使用aws-sdk for Node.js)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从我的s3存储桶读取现有文件,但我一直收到“拒绝访问”,没有任何解释或说明如何处理它. Here是我正在使用的代码

'use Strict'

var AWS = require('aws-sdk')
const options = {
  apiVersion: '2006-03-01',params: {
    Bucket: process.env['IMAGINATOR_BUCKET']
  },accessKeyId: process.env['IMAGINATOR_AWS_ACCESS_KEY_ID'],secretAccessKey: process.env['IMAGINATOR_AWS_SECRET_ACCESS_KEY'],signatureVersion: 'v4'
}
console.log('options',options)
var s3 = new AWs.S3(options)

module.exports = exports = {
  get (name,cb) {
    const params = {
      Key: name + '.json'
    }
    console.log('get params',params)
    return s3.getObject(params,cb)
  },set (name,body,cb) {
    const params = {
      Key: name + '.json',Body: body
    }
    console.log('set params',params)
    return s3.putObject(params,cb)
  }
}

这就是我在使用get方法并记录回调中提供的错误输出的结果(敏感信息被删除):

options { apiVersion: '2006-03-01',params: { Bucket: CENSORED_BUT_CORRECT },accessKeyId: CENSORED_BUT_CORRECT,secretAccessKey: CENSORED_BUT_CORRECT,signatureVersion: 'v4' }
get params { Key: 'whitelist.json' }
err { [AccessDenied: Access Denied]
  @R_696_8798@ge: 'Access Denied',code: 'AccessDenied',region: null,time: Wed Sep 21 2016 11:17:50 GMT-0400 (EDT),requestId: CENSORED,extendedrequestId: CENSORED,cfId: undefined,statusCode: 403,retryable: false,retryDelay: 20.084538962692022 }
/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/request.js:31
            throw err;
            ^

AccessDenied: Access Denied
    at request.extractError (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/services/s3.js:538:35)
    at request.callListeners (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
    at request.emit (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
    at request.emit (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/request.js:668:14)
    at request.transition (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/state_machine.js:26:10
    at request.<anonymous> (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/request.js:38:9)
    at request.<anonymous> (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/request.js:670:12)
    at request.callListeners (/Users/shawn/git/vigour-io/imaginate/node_modules/aws-sdk/lib/sequential_executor.js:115:18)

现在我不知道该怎么做因为我认为我根据文档正确地做事,但它不起作用,错误信息没有说明为什么我的访问权被拒绝…任何想法下一步应该是什么是为了让这个工作

解决方法

问题是我的新IAM用户没有附加策略.我为它分配了AmazonS3FullAccess策略,现在它可以工作了.

正如评论中指出的那样,限制性更强的政策会更加安全

大佬总结

以上是大佬教程为你收集整理的为什么我的访问在s3上被拒绝(使用aws-sdk for Node.js)?全部内容,希望文章能够帮你解决为什么我的访问在s3上被拒绝(使用aws-sdk for Node.js)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。