[AWS] S3 이미지 업로드 후 URL 접속시, 접근 거부

Benjamin·2022년 10월 23일
0

Troubleshooting

목록 보기
5/6

드디어, springboot와 S3의 연동에 성공했다.
하지만 반환된 url로 접속하니 아래와 같이 접근이 거부되는 현상을 만났다...

이에 대한 원인은 여러가지가 있다.

원인

  1. AWS Identity and Access Management(IAM) 사용자 또는 역할에s3:GetBucketPolicy 및 s3:PutBucketPolicy 모두에 대해 권한이 없을 때
  2. 버킷 정책이 s3:GetBucketPolicy 또는 s3:PutBucketPolicy에 대한 IAM 자격 증명의 권한을 거부할 때
  3. Amazon S3 퍼블릭 액세스 차단이 활성화되었을 때

분석

  1. IAM 사용자의 권한을 보면 S3FullAccess를 주었었기 때문에, 1번은 원인이 아니라고 판단했다.

2 and 3. 버킷 정책은 아래와 같이 설정해두었었는다.

조금 이상했던 부분은 ACL중 이것이었다.
아래 사진처럼, 피부여자 리스트 중 모든사람에는 객체 '읽기'의 권한이 없는것이었다.

하지만 ACL이 아닌 버킷 정책으로 보안을 설정했었다. 따라서 아래 문구대로 버킷 정책을 사용하여 접근하는건 맞는데.. (ACL은 적용x)

  1. 아래사진과 같이 액세스 차단은 비활성화, 액세스는 퍼블릭으로 설정되어있으므로 이것도 아니라고 판단했다.

해결

💡근본적으로 접근해보았다.
결국 버킷 정책으로 관리되는건 확실하므로, 버킷정책을 다시 유심히 살펴보았다.

정책 생성기에서 생성했었기때문에 큰 의심없이 생성기에서 생성해준대로 넣고 지나갔었는데, 다른 블로그들과 비교해보았을때 조금 찝찝한 부분이 있었다.
바로 Resource이다.
해당 내용으로는 s3 버킷주소만 들어가있었다. 하지만 현재에는 개별적인 객체에 접근이 안되는것이므로 버킷주소명/*으로 뒤에 '/*'를 추가했다.
그러고 다시 url로 이미지에 접근해보니 성공!
이것이 문제였구나...ㅎ하ㅏ하

참고사이트
https://inpa.tistory.com/entry/AWS-📚-S3-버킷-생성-사용법-실전-구축
https://velog.io/@ygreenb/AWS-S3-정책-권한-설정-시-403-에러

0개의 댓글