【Ruby On Rails】RubyAws::Sigv4::Errors::MissingCredentialsError 정보

오류 배경



AWS 도입 후 로컬 환경에서 개발 중인 앱에서 이미지를 업로드하고 실제로 저장한 것이 S3에 저장되어 있는지 확인하려고 했는데 이번과 같은 오류가 나왔습니다.

오류 문의 의미





"읽을 수 없습니다. 자격 증명이 없으므로 다음 중 하나를 사용하여 자격 증명을 제공하십시오."



라는 느낌이 듭니다.

:access_key_id
: secret_access_key
: credentials

....

즉, 이러한 자격 증명을 올바르게 선택하고 로드되지 않았을 수 있습니다.

확인한 것



S3에서 저장할 수 있도록 하기 위해 S3에서 데이터가 저장되도록 버킷을 준비했으며 리전과 체크박스도 적절하게 설정했습니다. 버킷 정책도 사용자의 ARN, 버킷 이름을 확실히 입력했습니다.

그리고 터미널에서 환경 변수는 대입되어 confing/environments/production.rb의 기술도, config/storage.yml의 기술도 올바르게 행해지고 있는 것을 확인했습니다.

confing/environments/production.rb
config.active_storage.service = :amazon

confing/environment/development.rb
config.active_storage.service = :amazon

config/storage.yml
amazon:
  service: S3
  access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
  secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
  region: ap-northeast-1
  bucket: バケット名

가설



터미널에서 입력이 제대로 수행되지 않음



가설에 근거한 작업



vim ~/.zshrc 또는 source ~/.zshrc 명령으로 정상적으로 작동하는지 확인

결과



source ~/.zshrc를 실행하지 않았기 때문입니다.



원래 source ~/.zshrc란



vim ~/.zshrc로 키를 입력하고 저장한 후 수행하는 명령. .zshrc를 다시 읽은 다음 환경 변수로 추가 한 변수를 사용할 수있게하는 명령.

그러면 실행하지 않으면 이미지를 올릴 수 없다는 오류가 나옵니다. 일단 실수한 것은 다음 번부터 잊지 않고 실행해 가고 싶습니다.

좋은 웹페이지 즐겨찾기