-
[AWS] Presigned URL 이란?공부/Cloud & Ai 2026. 9. 22. 00:15
Presigned URL은 단순히 말하면 "S3" 같은 저장소에 있는 파일을 일정 시간 동안만 임시로 접근할 수 있게 해주는 URL을 의미한다.
왜 쓰냐구?
그야 저장소에 아무나 들어오면 안 되기 때문이다.
예를 들어 설명해보자.
마을 사람들이 먹을 식량을 저장해놓은 **"식량 창고(저장소)"**가 있다고 생각해보자.
창고에는 중요한 식량들이 보관되어 있고, 아무나 들어가서 가져가면 안 된다는 규칙이 있다.
그래서 창고에는 자물쇠가 걸려있는 상태이다.
그렇다면 이 자물쇠를 여는 방법은 어떤 것이 있을까?
1. 그냥 창고 문을 열어버리기
가장 간단한 방법이다.
창고 문을 아예 열어버리면 누구나 들어갈 수 있다.
하지만 이렇게 하면 마을 사람뿐만 아니라 도둑도 들어올 수 있다.
즉, 편리하지만 보안에 문제가 생길 수 있다.
2. 모든 마을 사람에게 창고 열쇠를 나눠주기
이번에는 마을 사람들에게 각각 창고 열쇠를 나눠주는 방법이다.
철수 🔑 영희 🔑 민수 🔑 ↓ 🏠 식량창고이 방법도 사용할 수 있다.
하지만 여기에는 한 가지 문제가 있다.
창고 열쇠를 가지고 있다는 것은 창고에 지속적으로 접근할 수 있는 권한을 가지고 있다는 것이다.
예를 들어 철수에게 창고 전체를 열 수 있는 열쇠를 줬다면 철수는 필요하지 않은 식량까지 접근할 수 있다.
철수 🔑 ↓ 🏠 식량창고 ├─ 🍎 사과 ├─ 🍚 쌀 └─ 🥩 고기그리고 철수의 열쇠가 다른 사람에게 넘어가거나 분실된다면 창고에 대한 접근 권한을 다시 관리해야 한다.
3. 필요한 순간에만 임시 열쇠를 만들어주기
그렇다면 이런 방법은 어떨까?
철수가 경비원에게 찾아가서 말한다.
"사과 하나가 필요합니다."
경비원은 철수가 사과를 가져갈 권한이 있는지 확인한다.
그리고 문제가 없다면 철수에게 임시 열쇠를 하나 만들어준다.
🎫 임시 열쇠 어디에 들어갈 수 있는가? → 사과 보관 장소 무엇을 할 수 있는가? → 사과 가져가기 언제까지 가능한가? → 10분철수는 이 임시 열쇠를 가지고 사과 보관 장소에 간다.
그리고 창고는 이 열쇠가 진짜인지, 만료되지 않았는지, 허용된 장소와 작업인지 확인한 다음 접근을 허용한다.
10분이 지나면 어떻게 될까?
🎫 임시 열쇠 ↓ 10분 경과 ↓ ❌더 이상 사용할 수 없다.
여기서 이 임시 열쇠가 Presigned URL과 비슷한 개념이다.
그렇다면 AWS에서는 어떻게 되는가?
식량창고를 S3라고 생각하면 된다.
🏠 식량창고 = S3 🍚 식량 = 사진 / 파일 🔑 열쇠 = 접근 권한 🎫 임시 열쇠 = Presigned URL 🧑✈️ 경비원 = Backend예를 들어 사진 공유 서비스에서 사용자가 사진을 업로드한다고 생각해보자.
사용자가 Backend에게
"사진을 업로드하고 싶어요."
라고 요청한다.
Backend는 사용자의 로그인 여부와 업로드 권한을 확인한다.
그리고 문제가 없다면 S3에 접근할 수 있는 Presigned URL을 만들어 사용자에게 전달한다.
사용자 ↓ Backend ↓ 권한 확인 ↓ Presigned URL 발급 ↓ 사용자 ↓ S3에 직접 사진 업로드여기서 중요한 점은 사용자에게 S3 전체를 사용할 수 있는 권한을 주는 것이 아니라는 것이다.
예를 들어 다음과 같이 제한할 수 있다.
대상 → users/123/photo.jpg 가능한 작업 → 업로드 유효 시간 → 10분즉,
"이 사용자는 S3에 마음대로 접근해도 된다."
가 아니라,
"이 사용자는 이 특정 파일에 대해 이 작업을 10분 동안만 할 수 있다."
라는 식으로 필요한 권한만 잠시 빌려주는 것이다.
그리고 10분이 지나면 Presigned URL은 더 이상 사용할 수 없다.
따라서 Presigned URL은 단순히 파일에 접근하기 위한 URL이라기보다는,
S3 같은 Private 저장소를 공개하지 않은 상태에서 특정 파일에 특정 작업을 일정 시간 동안만 수행할 수 있도록 만들어주는 임시 접근 권한
이라고 이해하면 된다.
쉽게 말하면,
"식량창고의 문을 아예 열어버리는 것이 아니라, 필요한 사람에게 필요한 식량을 가져갈 수 있는 임시 열쇠를 잠깐 빌려주는 것"
이라고 생각하면 된다.
'공부 > Cloud & Ai' 카테고리의 다른 글
[Weekly AI Study log] Python으로 OCR 모델 만들기 (feat. docker, Tesseract) (0) 2026.07.23 [Weekly AI Study log] Ai 질문하는 방법 그리고 Codex (0) 2026.05.06 [Terraform] 테라폼 주석 활용법 (0) 2026.04.12 [AWS] AWS Config 정리 (1) 2026.01.07 [AWS] S3 퍼블릭 접근, S3에서의 URL 이란 (0) 2026.01.06