ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • S3 Presigned URL
    AWS 2023. 4. 11. 15:29

    https://aws.amazon.com/ko/

    Amazon Simple Storage Service (S3)

    AWS에서 제공하는 클라우드 기반의 객체 스토리지 서비스로, S3는 인터넷을 통해 어디서든 안전하고 확장 가능한 방식으로 파일을 저장하고 검색할 수 있는 스토리지 서비스이다, 대규모 데이터의 저장, 백업 및 복원, 데이터 아카이빙, 빅 데이터 분석, 웹 사이트 호스팅 등 다양한 용도로 사용된다.

     

    S3의 파일 공유하는 방법

    • 모든 파일을 퍼블릭으로 만들기

    장점: 별도의 관리가 필요 없음

    단점: 아무나 파일 다운로드 가능

     

    • IAM 자젹증명 공유(Access Key Pair)

    장점: 지정한 사람만 공유 가능

    단점: 자격증명 유출/ 변경 시 공유자 모두에게 다시 부여해야함(자격증명 관리가 어려움)

     

    • IAM 사용자 부여하기

    장점: 지정한 사람만 공유 가능

    단점

    IAM 사용자 숫자 제한(5000개)

    모든 유저에게 IAM 사용자를 부여하는 과정 필요

    유지보수의 어려움

     

    Presigned URL

    제한된 시간 동안만 특정 객체에 접근할 수 있는 URL을 생성하는 것으로 인증 및 권한 부여를 수행하며, 특정 리소스에 대한 임시 액세스를 허용한다. Presigned URL은 인증 및 권한 부여가 필요한 원하는 애플리케이션에서 안전하게 데이터를 업로드, 다운로드 또는 삭제하는 등의 작업을 수행할 수 있다

     

    • 특징

    S3의 파일을 안전하게 공유하고 싶을 때 사용한다.

    생성자가 가진 권한으로 파일에 접근 가능한 임시 URl을 생성한다.

    URL의 만료 기간 지정 가능

    Method(Get, Post 등) 설정 가능

     

    • 장점

    지정한 사람만 공유 가능

    만료기간 설정 가능

    권한 관리 가능

    HTTP 기반으로 접근 가능

     

    Presigned URL 콘솔에서 발급

     

    Presigned URL CLI 발급

    • S3권한이 있는 IAM 역할 및 인스턴스 생성
    • 인스턴스 접속 후 S3 버킷에 접근할 때 가상 호스팅 스타일로 주소를 지정하도록 설정
    aws configure set default.s3.addressing_style virtual

     

    S3는 기본적으로 가상 호스팅 스타일 및 경로 스타일 두 가지의 주소 지정 방식을 지원한다.

    • 가상 호스팅 스타일은 "bucket-name.s3.amazonaws.com" 형식으로 버킷에 접근하는 방식
    • 경로 스타일은 "s3.amazonaws.com/bucket-name" 형식으로 버킷에 접근하는 방식

     

    "default.s3.addressing_style virtual" 명령어는 AWS CLI에서 S3 버킷에 접근할 때 가상 호스팅 스타일로 주소를 지정하도록 설정하는 것으로, 경로 스타일로 접근할 때 발생할 수 있는 일부 문제를 회피할 수 있다.

    예를 들어, 버킷 이름에 마침표가 들어가 있는 경우에는 가상 호스팅 스타일을 사용하는 것이 필요할 수 있다. 이 명령어는 특정 AWS CLI 프로필에 대한 설정으로 사용되며, 해당 프로필에서만 가상 호스팅 스타일을 사용하고자 할 때 사용다.

     

    • 버킷 생성 후 파일 업로드 및 접속

    엑세스가 없어 접속할 수 없다고 나온다.

     

    • CLI를 통해 PresignURL 신청
    aws s3 presign s3://[버킷명]/[파일경로] --region ap-northeast-2
    
    만료 시간 추가
    aws s3 presign s3://[버킷명]/[파일경로] --region ap-northeast-2 --expires-in 10

    명령어 입력 후 생성된 URL 접속

     

Designed by Tistory.