S3를 웹서버로 하여 콘텐츠를 공개한다 ②(S3 서명 첨부 URL편)

3362 단어 S3AWS
S3를 웹 서버로 사용하여 정적 콘텐츠를 게시하는 방법을 소개합니다.
  • S3 공개편

  • S3 서명된 URL편 ← 이거!
  • CloudFront 공공편
  • CloudFront 서명된 URL편
  • CloudFront 서명된 쿠키편

  • 절차



    버킷 만들기



    먼저 버킷을 만들어 보겠습니다.

    관리 콘솔에서 S3 페이지를 엽니다.
    버킷 만들기를 클릭합니다.



    버킷 이름을 넣고 리전을 선택합니다.
    버킷 이름은 전 세계 S3에서 고유해야 합니다.



    서명된 URL로 게시하는 경우 '버킷의 블록 공개 액세스 설정'은 기본적으로 모든 블록에 문제가 없습니다.



    이것으로 버킷 생성이 완료됩니다.

    HTML 저장



    만든 버킷을 선택합니다.
    그런 다음 HTML 파일을 드래그 앤 드롭합니다.



    다양한 설정이 있지만 화면 하단에 업로드를 수행합니다.



    여러 파일이나 폴더를 통째로 업로드하는 것도 가능합니다.

    공개



    서명 된 URL의 URL은 관리 콘솔에서 만들 수 없으며 CLI 등을 사용하여 만들 수 있습니다.
    CloudShell을 사용하면 쉽게 CLI를 실행할 수 있습니다.



    실행할 명령은 aws s3 presign입니다.
    [cloudshell-user@ip-XX-XX-XX-XX ~]$ aws s3 presign s3://website-2721ae93/index.html --expires-in 604800 --region ap-northeast-3
    
    expires 는 서명된 URL의 만료일입니다. (604800을 지정하면 일주일 동안 유효합니다.)
    조금만 빠졌지만 CloudShell이 ​​도쿄 리전에서 실행되고 S3 버킷이 오사카 리전인 경우 명시적으로 --region ap-northeast-3를 붙이지 않으면 잘못된 서명된 URL이 생성됩니다. (생성은 성공하지만 액세스하면 AuthorizationQueryParametersError 라는 오류가 발생합니다)

    게시된 서명된 URL은 쿼리 매개 변수에 다음과 같은 문자가 제공되며 이 항목이 제대로 설정된 경우에만 파일에 액세스할 수 있는 메커니즘입니다.
    X-Amz-Algorithm=XXXXXXXXXX
    X-Amz-Credential=XXXXXXXXXX
    X-Amz-Date=XXXXXXXXXX
    X-Amz-Expires=XXXXXXXXXX
    X-Amz-SignedHeaders=XXXXXXXXXX
    X-Amz-Security-Token=XXXXXXXXXX
    X-Amz-Signature=XXXXXXXXXX
    

    좋은 웹페이지 즐겨찾기