<aside> <img src="/icons/reorder_gray.svg" alt="/icons/reorder_gray.svg" width="40px" />

목차


</aside>

1. 문제 상황


<aside> 🛠

문제상황


상품 등록 시 이미지 업로드가 정상적으로 이루어지지 않고,

클라이언트 측에서 HTTP 403 오류 또는 AccessDenied 응답을 받는 문제가 발생했다.

상품 등록 시 이미지 업로드가 정상적으로 이루어지지 않고,

클라이언트 측에서 HTTP 403 오류 또는 AccessDenied 응답을 받는 문제가 발생했다.

2. 원인 분석


<aside> 🛠

원인


문제 항목 내용
IAM 권한 부족 EC2에 설정된 IAM Role 또는 접근 Key에 S3 업로드 권한 누락
CORS 정책 미설정 S3 Bucket CORS 설정이 되어 있지 않아 브라우저에서 차단됨
Content-Type 누락 파일 업로드 시 Content-Type이 지정되지 않아 S3에서 거부
버킷 퍼블릭 접근 제한 버킷 정책에서 public-read 설정이 없었고, 기본적으로 모든 요청이 차단됨
</aside>

3. 문제 해결 의사결정


<aside> 🛠

문제 해결


선택지 이유 최종 결정
IAM 정책 수정 서비스 계정에 s3:PutObject, s3:GetObject 권한 부여 ✅ 적용
CORS 설정 추가 프론트에서 직접 S3에 요청 → 브라우저 CORS 허용 필요 ✅ 적용
버킷 정책 수정 S3 객체 읽기 권한을 public-read로 최소한 열어야 이미지 조회 가능 ✅ 적용
Content-Type 설정 명시 업로드 시 HTTP 헤더에 Content-Type 명시 ✅ 적용

</aside>