[고급 S3 및 Athena] S3 pre-signed URLs

728x90

S3 pre-signed URLs

  • 사전 서명된 URL 을 사용하려면 SDK 또는 CLI 를 사용해야 한다.
  • 애플리케이션을 개발할 때 SDK 를 사용하여 입력받은 사진 파일을 업로드하고 로컬 환경에서 CLI 를 사용해서 이미지를 다운로드 받을 수 있다.
  • 만료 시간은 기본적으로 3600초, 1시간이다. 만료 시간을 변경하고 싶으면 --expires-in XX초 를 입력하면 된다.
  • 사전 서명된 URL 이 사용자에게 제공될 때는 기본적으로 객체를 만든 이의 권한이 상속된다. 따라서 사용자들은 상황에 따라 GET 이나 PUT 권한을 사용할 수 있다.
  • 예시 1) 로그인 한 사용자만 S3 버킷의 프리미엄 영상을 15분 동안 다운받도록 할 수 있따.
  • 예시 2) 파일을 다운로드 하는 사용자들의 목록이 계속해서 변경되는 경우 사용자가 버킷에 직접 액세스하지 못하도록 해야 한다. 왜냐하면 굉장히 위험하고, 유지 보수하기 힘들기 때문이다. 이런 경우 URL 을 동적으로 생성하여 사전 서명된 URL 을 죽일 수도 있다.
  • 예시 3) 사용자가 버킷의 특정 위치에만 파일을 업로드할 수 있도록 권한을 줄 수도 있다.

CLI 에서 pre-singed URL 을 생성하려면 아래 명령어를 입력하면 된다.

$ aws s3 presign s3://버킷/객체 --region 지역

혹은 만료 시간을 조정하고 싶을 때는 아래 명령어를 입력하면 된다.

$ aws s3 presign s3://버킷/객체 --region 지역 --expires-in XX초

만약 해당 명령어를 작성하다가 에러가 발생하는 경우 아래 명령어를 사용해보자.

문제가 발생할 때만 사용하면 된다.

$ aws configure set default.s3.signature_version s3v4

728x90