AWS(Amazon Web Service)

[AWS] Amazon S3 - Pre-Signed URLs(미리 서명된 URL)

yunseohhe 2024. 11. 9. 02:48

Amazon S3 - Pre-Signed URLs(미리 서명된 URL)

  • S3콘솔, CLI, SDK를 사용하여 생성할 수 있는 URL이다.
  • URL에는 만료 기한이 있는데, S3 콘솔을 사용하면 최대 12시간이고, CLI를 하면 168시간까지 사용할 수 있다.
  • 미리 서명된 URL을 생성할 때 URL을 받는 사용자는 URL을 생성한 사용자의 GET 또는 PUT에 대한 권한을 상속한다.
  • 미리 서명된 URL은 다운로드 또는 업로드를 위해 특정 파일에 임시로 액세스할 때 아주 널리 사용되는 방법이다.
      - 로그인한 사용자만 S3 버킷에서 프리미엄 비디오를 다운로드 할 수 있도록 허용하거나 사용자 목록이 계속 변하는 경우 URL을 동적으로 생성해서 파일을 다운로드 할 수 있게 하는 것이다.
      - 일시적으로 사용자가 S3 버킷의 특정한 위치에 파일을 업로드하도록 허용할 수 있다. 버킷을 비공개로 유지하면서

  • 어떤 사용 사례가 있을까?
  • 위의 이미지처럼 프라이빗 S3 버킷이 있다고 가정해 보자. 
      - AWS 외부의 사용자에게 한 파일에 대한 액세스 권한을 부여해야 할 때 퍼블릭 파일로 설정하고 싶진 않을 것이다. 보안에 문제가 생길 수 있을테니깐. 이때 버킷 소유자 또는 사용자로서 해당 파일을 가지고 미리 서명된 URL을 생성하는 것이다. 그러면 S3 버킷이 URL을 제공하고 해당 URL은 미리 서명된다.
  • URL이 자격 증명을 이어받아 해당 파일에 액세스 할 수 있는 권한을 부여한다. 그런 다음 이 URL을 제한된 시간 내에 파일에 대한 액세스 권한을 부여할 대상 사용자에게 보내면 사용자는 URL을 사용해서 S3 버킷의 파일에 액세스 한다. 만료 기간 후에는 S3 버킷에서 파일을 다시 가져온다. 사용자는 그동안 파일을 다운로드 할 수 있다.