com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied
(Service: Amazon S3; Status Code: 403;
Error Code: AccessDenied; Request ID: ~~~~; S3 Extended Request ID: ~~~~
클래스명 수정을 해야해서 해당 작업을 진행한 후,
제대로 기능이 동작하는 지 전체적으로 점검을 하던 중에
만나게 된 에러입니다.
분명,
얼마전까지만 하더라도 작동이 잘 됐었는데
처음 뜬 오류를 보고
이번에도 내가 뭔가 실수를 했구나!?라고 생각했죠..
부랴부랴
구글링을 해보니 API Key가 노출되어
접근이 막혔다네요..!?
하지만 전 깃허브 어디에도 API Key를 올린 기억이 없고
무엇보다도 항상 push 할 때 키를 싹 지우고 진행했기에
다른 이유겠거니 생각하고 구글링을 계속 해봤어요
(물론 해당 파일을 ignore 하고 push했지만,
그래도 혹시 모르니까라는 마음으로 항상 지우고 올렸습니다)
하지만, 구글링을 하는 족족
다 키가 노출되서 일어난 일이라고 ..
그래서 일단 IAM 사용자 해당 API KEY를 비활성화로 돌렸고,
삭제를 진행했습니다.
(이미 노출이 되었다니 안전하게 삭제를 진행)
그래서 문득 이 생각이 들었습니다.
혹시 팀원들중에 이 API KEY를 올린 사람이 있나?
팀원들의 깃허브를 찾아보니
발견했어요!!
바로 팀원한테 아주 긴급한 해당 소식을 전했고,
이 오류의 원인을 찾을 수 있었습니다.
https://velog.io/@idean3885/Spring-S3-%EC%97%85%EB%A1%9C%EB%93%9C
https://cloudest.oopy.io/posting/074
위 게시글을 보고
오류의 원인에 대한 감을 잡을 수 있었습니다 (감사합니다!)
감사하게도
AWS에서 key가 노출된 것을 파악하고
일부 권한에 제한을 걸어주었습니다.
그래서 이미지 삭제 기능이
제대로 돌아가지 않았던 것... !
이제 오류를 발견했으니
해결을 해야겠지요..
해당 키를 삭제하고
AWSCompromisedKeyQuarantineV2 정책을 삭제해줍니다.
그리고 새로운 API Key를 발급받고,
application.properties 파일 부분에
accessKey, secretKey 를 수정해줍니다.
그리고 다시 삭제 기능을 동작시키면,
위 사진처럼 기능이 제대로 동작하는 것을 확인할 수 있습니다!
(참고로 사용자 생성은 아래 링크를 참고했어요)
https://kitty-geno.tistory.com/67
'여니의 프로그래밍 study' 카테고리의 다른 글
[REST API] REST API 설계 방법 (0) | 2022.02.27 |
---|---|
[REST API] REST API가 뭐야 도대체! (+API, HTTP Method, HTTP Status Code ... ) (0) | 2022.02.26 |
MySQL 실행창이 갑자기 꺼져버리는 현상.. 해결방법은? (1) | 2019.11.29 |