Skip to main content

Presigned URL이란?


1. Presigned URL이란?

S3에 저장된 파일을 제한된 시간 동안만 접근할 수 있게 해주는 임시 링크

  • AWS 인증이 없는 사용자도 접근 가능하다.
  • URL에 서명(signature)만료 시간이 포함되는 것이 특징이다.
  • 다운로드 또는 업로드 둘 다 가능하다.

2. 왜 필요한가?

S3는 기본적으로 비공개(private) 이기 때문에, 이미지나 파일을 외부 사용자에게 보여주려면 S3를 공개로 설정해야 하거나 Presigned URL을 발급해야 한다. 이 때 Presigned URL 이 더 안전하고 일시적인 방법으로 선호된다.


3. 사용 예시

시나리오

설명

사용자 프로필 이미지 업로드

프론트엔드에서 서버를 거치지 않고 S3에 직접 업로드

다운로드 링크 제공

로그인한 사용자에게만 일시적 다운로드 허용

전자책/PDF 같은 유료 콘텐츠

구매한 사람에게만 유효기간 있는 다운로드 링크 제공

  • Presigned URL은 기본적으로 몇 분~몇 시간 단위로 설정
  • 예: 1시간짜리 링크는 1시간 지나면 접근 불가

4. 예시 코드

https://my-bucket.s3.amazonaws.com/sample.pdf?
X-Amz-Algorithm=AWS4-HMAC-SHA256&
X-Amz-Credential=...&
X-Amz-Date=...&
X-Amz-Expires=3600&
X-Amz-Signature=...

위는 Presigned URL이 생성된 형태이다. URL 자체에 인증 정보와 만료 시간이 포함되어 있어, 다른 사람도 이 링크만 알면 다운로드 가능하지만, 시간이 지나면 무효가 된다.