여니의 프로그래밍 study

[AWS S3 버킷] Access Denied 오류 해결

여니's 2022. 5. 28. 15:51

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

 

Spring S3 업로드

S3 파일 업로드 코드

velog.io

https://cloudest.oopy.io/posting/074

 

[AWS CLI] GitHub에 Access Key노출

Git Hub에 실수로... AWS 키가 노출됐따..

cloudest.oopy.io

 

위 게시글을 보고

오류의 원인에 대한 감을 잡을 수 있었습니다 (감사합니다!)

 

 

감사하게도

AWS에서 key가 노출된 것을 파악하고

일부 권한에 제한을 걸어주었습니다.

 

그래서 이미지 삭제 기능이 

제대로 돌아가지 않았던 것... !

 

 

이제 오류를 발견했으니

해결을 해야겠지요..

 

 

 

해당 키를 삭제하고

AWSCompromisedKeyQuarantineV2 정책을 삭제해줍니다.

 

 

그리고 새로운 API Key를 발급받고,

application.properties 파일 부분에

accessKey, secretKey 를 수정해줍니다.

 

그리고 다시 삭제 기능을 동작시키면,

 

위 사진처럼 기능이 제대로 동작하는 것을 확인할 수 있습니다!

 


 

 

(참고로 사용자 생성은 아래 링크를 참고했어요)
https://kitty-geno.tistory.com/67