S3 Pre-Signed URLs
- 사전 서명된 URL을 생성하려면 SDK 또는 CLI를 사용해야하며
다운로드의 경우 쉬운 방법으로 CLI를 사용하고, 업로드의 경우 SDK를 사용 - 사전 서명된 URL을 생성하면 기본적인 만료 시간은 3600초(1시간)
- 시간초과를 변경하려면 명령어 --expires-in에 파라미터, 인자, 그리고 초 단위로 시간을 지정
--expires in [TIME_BY_SECONDS] - 사전 서명된 URL이 사용자에게 제공될 때는 기본적으로 생성한 사람(객체를 만든 이)의 권한이 상속됨
그러므로 상황에 따라 GET이나 PUT 권한을 사용할 수 있음 - 사전 서명된 URL을 통해 로그인한 사용자만이 S3 버킷의 프리미엄 영상을 다운로드할 수 있도록 승인하거나
파일을 다운로드할 사용자들의 목록이 지속적으로 변경될 경우 사전 서명된 URL을 통해 버킷에 직접 액세스하지 못하도록 관리
또한 사용자가 버킷의 특정 위치에만 파일을 업로드하도록 일시적으로 승인할 수 있음
예) 사용자가 S3 버킷에 프로필 사진을 직접 업로드
<S3 사전 서명된 URL 실습>
- 공용 버킷이 아닌 버킷에서 객체 확인
demo-stephane-origin 버킷은 공용이 아니며 beach.jpg를 선택하여 Obejct Actions를 열면
공용 버킷이 아님에도 불구하고 미리 서명된 URL이 생성되기 때문에 이 버킷에서 해변의 사진을 볼 수 있음
하지만 공용 객체 URL을 사용하는 경우에는 접근이 거부됨
- CLI를 통해 미리 서명된 URL 생성
pre-signed-url.sh를 통해 명령들을 확인할 수 있음
AWS S3 presign 명령어를 통해 버킷과 객체 URI를 지정해 준 뒤 현재 위치한 리전도 입력해 주고 만료 시간을 지정하여
미리 서명된 URL을 생성할 수 있고 이를 복사한 후 붙여넣기 하여 해변 사진에 접근해 객체를 살펴볼 수 있음
작업에서 에러가 발생할 경우 aws configure set default.s3.signature_version s3v4를 사용
'Cloud > AWS' 카테고리의 다른 글
[SAA] S3 수명 주기 규칙 (0) | 2022.03.28 |
---|---|
[SAA] S3 스토리지 클래스 + Glacier (0) | 2022.03.27 |
[SAA] S3 복제 (리전 간 동일한 리전) (0) | 2022.03.27 |
[SAA] S3 액세스 로그 (0) | 2022.03.27 |
[SAA] S3 기본 암호화 (0) | 2022.03.27 |