이번 프로젝트에서 맡게된 역할 중 AWS S3 스토리지를 생성 및 액세스하려는 과정 중에 겪은 오류이다.
공식 문서대로 모든 것을 세팅하고 이미지를 업로드하려고 보니 SignatureDoesNotMatch 오류를 만났다.
이 오류로 인해 프로젝트 개발기간 중 하루+@를 온전히 troubleshooting으로 날리게 되는데....
문제의 원인은 정말 황당하게도 AWS S3를 사용하기 위해 등록한 IAM 사용자에게 AWS가 발급해주는 Secret Access Key에 있었다.
AWS에서 IAM유저를 생성하면 발급해주는 Secret Access Key에 '/'나 '%'와 같은 특수문자가 들어있을 경우에 해당 오류가 발생한다는 것이다.
AWS에 등록한 유저에게 AWS가 발급해주는 키에 문제가 있다니 정말 상상도 못했다..
해결책은 간단하다. 그냥 IAM유저를 계속 만들어내면 된다. 언제까지? Secret Access Key에 특수문자가 없을 때까지 ㅎㅎ
이번 에러는 가뜩이나 촉박한 프로젝트 개발 일정 중 나로 하여금 가장 오랜 기간동안 블로커로 작용했다. 하나 둘 결과물을 만들어내는 팀원들을 보며 조바심이 들기 시작했고, 결국 쫓기듯이 디버깅을 하기 시작했다.
그럼에도 문제를 해결할 수 없었던 이유는 코드의 어느 한 부분을 고쳤을 때 또다른 에러를 마주하게 될 경우, 새롭게 발생하는 에러를 해결하는 쪽으로 깊게 파고들지 못하고 다시 원점으로 회귀해 코드의 다른 부분을 수정하는 방향으로 나아갔기 때문이었다. 무릇 개발자란 에러를 두려워하지 않고 경우에 따라선 깊이 탐색하는 능력 또한 요구된다고 느꼈다.
아울러 이틀 넘게 그저 내 코드에게 문제가 있을거라 생각하며 애꿎은 코드만 뜯어고치고 있던 내게 함께 둘러앉아 문제의 원인과 그 해결책까지 찾아준 동기 아영님과 그 해결법을 기록해둔 인터넷 어느 한 블로그의 이름모를 주인분께 압도적 감사와 무한한 존경을 보냅니다...
Reference
https://lynlab.co.kr/blog/52