[Etc] Presigned URL이란
2023. 8. 28. 09:14ㆍWeb/네트워크
[Etc] Presigned URL
스프링 이미지 업로드를 구현하기 위해 구글링을 하다가 알게 되었다. 기존에 생각한 방법은 다음과 같다.
- 클라이언트가 서버에 MultipartFile을 보내면서 요청을 한다.
- 서버는 해당 이미지를 받아서 S3 버킷에 해당 이미지를 업로드한다.
기존의 경우에는 용량이 있는 파일을 과정 상으로 두 번 옮겨야한다. 다만 구글링을 통해 발견한 Presigned URL의 방식으로 사용하면 과정이 변하게 된다.
- 클라이언트는 서버에 이미지를 올리고 싶다는 요청을 전송한다.
- 서버는 해당 요청을 받게 되면 S3에 업로드 가능한 URL을 요청한다.
- S3는 서버에게 URL을 발급한다.
- 서버는 클라이언트에서 업로드 URL, 파일명을 지정한다.
- 클라이언트는 주어진 URL을 통해 S3에 바로 업로드한다.
- S3는 업로드 결과값을 클라이언트에게 반환한다.
단계가 좀 더 복잡해졌지만 해당 방식을 사용하면 파일을 두 번 업로드 업로드 해야하는 불필요한 자원의 낭비를 줄일 수 있다.
이때 S3에서 발급하는 URL이 바로 Presigned URL이다. 그럼 해당 Presigned URL이 어떤 역할을 하는지 알아보았다.
- Amazon S3에서 제공하는 기능이다
- 사용자가 특정 S3 객체에 대한 일시적인 액세스 권한을 부여할 수 있는 URLdㅣ다.
- 해당 URL을 통해 접근한 사용자는 접근하려는 객체을 읽거나 쓸 수 있다.
- 사용 이유
- 보안 : 일시적 액세스 권한을 부여하므로, 보안상의 이유로 일부 사용자만 S3 객체에 접근할 수 있도록 할 수 있다.
- 제한된 엑세스 : Presigned URL은 일시적 액세스 권한을 부여한다. 사용자가 S3 객체에 대한 액세스를 제어할 수 있다.
- 간편성 : URL을 공유함으로 사용자가 S3객체에 쉽게 액세스 할 수 있게 한다.
- 사용 예시
- 파일의 공유 - 해당 방법을 알게 된 계기
- URL을 통해 일시적인 액세스 권한을 부여하므로, 보안상 이유로 일부 사용자만이 파일에 액세스 할 수 있다.
- 임시 액세스
- 일시적 액세스 권한을 부여하므로, 일부 사용자만이 해당 S3 객체에 대한 액세스를 제어할 수 있다.
- 제한된 액세스
- 일시적 액세스 권한을 부여하므로, 사용자가 S3 객체에 대한 액세스를 제어할 수 있다.
- 파일의 공유 - 해당 방법을 알게 된 계기
'Web > 네트워크' 카테고리의 다른 글
[HTTP] HTTPS란? (0) | 2024.02.17 |
---|---|
[Web 지식] IPv6 - Internet Protocol (0) | 2023.05.25 |
[REST API] REST API 설계 (0) | 2022.12.22 |
[HTTP] PUT / PATCH 차이 (0) | 2022.12.22 |
[Basic] 인증, 인가 (0) | 2022.12.14 |