Amazon AWS 오류: 구성 노드에 자격 증명이 없습니다.js

질문:

저는 AWS를 사용하기 시작했습니다. 그들의 예시 코드here.를 사용해 보고 있습니다. Dotenv를 사용하여 키를 환경 변수로 저장하고 있습니다.coffee 스크립트를 사용하여 내 코드는 다음과 같습니다.
require('dotenv').config()

express = require 'express'
router = express.Router()

AWS = require('aws-sdk')
AWS.config.region = 'us-west-2'

s3bucket = new (AWS.S3)(params: Bucket: 'new-bucket-name')

s3bucket.createBucket ->
  params = 
    Key: process.env.AWS_ACCESS_KEY_ID
    Body: 'Hello!'
  s3bucket.upload params, (err, data) ->
    if err
      console.log 'Error uploading data: ', err
    else
      console.log 'Successfully uploaded data to myBucket/myKey'
    return
  return
그러나 나는 줄곧 다음과 같은 실수를 얻었다.
message: 'Missing credentials in config',
  code: 'CredentialsError',
  errno: 'EHOSTDOWN',
  syscall: 'connect',
  address: '169.254.169.254',
  port: 80,
  time: 2016-10-13T14:14:03.605Z,
  originalError: 
   { message: 'Could not load credentials from any providers',
     code: 'CredentialsError',
     errno: 'EHOSTDOWN',
     syscall: 'connect',
     address: '169.254.169.254',
     port: 80,
     time: 2016-10-13T14:14:03.605Z,
     originalError: 
      { message: 'Missing credentials in config',
        code: 'CredentialsError',
        errno: 'EHOSTDOWN',
        syscall: 'connect',
        address: '169.254.169.254',
        port: 80,
        time: 2016-10-13T14:14:03.599Z,
        originalError: [Object] } } }
이 문제를 어떻게 해결합니까? 키를 어떤 방식으로 보내야 합니까?
업데이트:
사용
AWS.config = new AWS.Config();
AWS.config.accessKeyId = "accessKey";
AWS.config.secretAccessKey = "secretKey";
그러나 지금 나는 새로운 잘못을 발견했다.
  message: 'Access Denied',
  code: 'AccessDenied',
  region: null,
  time: 2016-10-13T14:38:19.651Z,
  requestId: '958BD7EA261F2DCA',
  extendedRequestId: 'xuBSmGL/GC5Tx1osMh9tBFIwXMLy15VtJXniwYVGutTcoBJgrCeOLZpQMlliF1Azrkmj1tsAX7o=',
  cfId: undefined,
  statusCode: 403,
  retryable: false,
  retryDelay: 11.225715031927086 }

답안

Access Denied IAM 권한 설정이 올바르지 않은 것 같습니다.이러한 자격 증명에 바인딩된 사용자가 계정에 스토리지 통을 생성할 수 있는지 확인합니다.
또한 일반적으로 AWS SDK는 실제 환경 변수를 읽을 수 있으므로 DotEnv를 사용하지 않아도 됩니다.EC2 또는 Lambda에서 실행할 수 있는 프로덕션 시스템으로 코드를 푸시할 때 실제로 IAM 구성 파일을 사용하여 자격 증명을 처리해야 합니다.다시 말해봐.DotEnv는 필요하지 않습니다.