ybeen 님의 블로그

Part 2. AWS S3 버킷생성 및 정책설정 본문

AWS

Part 2. AWS S3 버킷생성 및 정책설정

ybeen 2024. 11. 26. 20:56

 

Part 1을 이어 Part 2에서는 프로젝트 생성에 이어 S3에 버킷 생성 및 CloudFront 배포 설정을 해봅시다

먼져 이론으로 알아보고 가야할것 S3, 버킷, 객체

  • S3
    • AWS에서 제공하는 객체 스토리지 서비스
    • 대규모 데이터 저장 및 관리에 최적화된 서비스
    역할
    • 빅데이터를 안전하게 저장할 수 있는 공간을 제공
    • 객체 수명 주기(객체가 저장되어 삭제될 때 까지를 말함)를 이용해 데이터의 저장 기간을 설정하고 관리할 수 있음
    • 저장된 데이터에서 필요한 정보만 효율적으로 조회가 가능
    • AWS의 다른 서비스와 통합되어 데이터 처리, 분석, 배포 등등 호환성이 높음
  • 버킷
    • 여러개의 저장소를 만들수 있는데 하나의 저장소를 버킷이라고 부름
    • S3에서 객체를 저장하는 기본 단위
    역할
    • 데이터를 저장하기 위한 컨테이너 (전세계에서 고유한(유일한) 이름 필요, 여러 객체(파일) 포함 가능)
  • 객체
    • S3 버킷에 업드로한 파일을 객체라 부름 즉, 파일 = 객체
      JS에서 객체는 프로퍼티(키,값)를 가지고 있지만 AWS에서 객체는 업로드한 파일을 뜻함
    • 데이터의 기본 단위로 특정 정보를 포함하는 구조체 ex)파일, 이미지, 비디오, 문서등을 다양한 형태의 데이터를 객체로 표현할 수있음
    • 객체는 반드시 버킷이라는 컨테이너에 저장
    역할
    • 다양한 스토리지 클래스를 통해 데이터 저장 비용을 최적화 할 수 있음

AWS

  • S3 버킷 생성 및 설정
  • 빌드 결과물 업로드 방법
  • 퍼블릭 액세스 설정
  • CloudFront 배포 설정 (선택 사항)

시작하기 전

https://aws.amazon.com/ko/ 에 먼져 가입을 해줘야 함

가입을 했으면 콘솔 홈으로 들어간다

1. S3 버킷 생성 및 설정

  • 홈화면에 S3가 있으면 들어가고 없으면 위 검색창에 S3를 입력해 들어간다
  • 옆에 S3목록에 버킷을 눌러 들어간다

  • 버킷 만들기 클릭

여기서부터 입력하는 부분만 보여주고 나머지는 생략할거임

  • 버킷 이름을 입력해야하는데 전세계에서 유일한 이름이어야함
  • 특수기호, 대문자 등등 X

  • 차단 설정 밑에와 같이 설정후 노란 박스는 체크해줌

  • 이렇게 버킷이 만들어졌을것이다 클릭해서 들어가준다

 

별개) 미국 동부라 되있는데 나는 SSL인증서 때문에 못바꿧는데 아무튼 화면 오른쪽 위 모서리쪽에 서울로 바꿔서 다시 만들면됨

  • 클릭해서 들어가면 객체에 아무것도 없다고 뜨는데 아까 dist 파일을 업로드 해주면 됨(dist 폴더를 끌어오지말고 dist폴더 들어가서 드래그 해줄것)
  • tip) 터미널에서 open . 을 입력해주면 바로 폴더를 열어줌 (나도 오늘 알았음ㅎ)

  • 그러면 이렇게 들어가있을 것임 업로드 해주됨

  • 다음으로 권한에 들어가 정책을 설정하러 가보자

  • 편집을 누른후 새 문 추가를 눌른 후 서비스 선택에 s3를 추가해준다

  • 그 다음은 object를 검색해 GetObject른 선택

  • 그 다음 "Principal": {}, 를 "Principal": "*", 이렇게 바꿔주고 추가 해줌

  • 그럼 이렇게 뜰것이다

 

  • 리소스 유형을 object로 바꿔주면 위 사진에 나와있듯이
    리소스 ARN에서 bucketname를 자기가 만들었던 버킷이름을 적으면 되는데 기억이 안난다면 위에 사진처럼 띵보고 하면 됨
  • 나는 arn:aws:s3:::my-blog-yb/* 로 입력
    여기서 *은 모든 객체를 포한한다 (버킷 내의 모든 객체를 의미함)
  • 다음으로 리소스 추가한 후 변경 사항 저장을 누름

 

  • 다음은 속성으로 들어가 정적 웹 사이트 호스팅 설정을 들어가서

  • 밑에 사진과 같이 노란 동라그미처럼 바꿔준다

  • 그러면 이렇게 생성될 것임

  • 여기서 저 주소로 배포를 할 수 있다

위에 글처럼 배포를 할 수 있는데 이렇게 보안 없이 배포하게 되면 보안에 취약함

왜????????

S3는 HTTPS를 적용시키는 기능을 제공하고 있지 않기 때문
HTTP, HTTPS에 대한 글은 따로 블로그에 올려놓겠음 (추후 수정)
만약 정보가 들어가있는 파일이라고 가정한다면 전송 과정에서 개인정보가 유출되거나 데이터 변경이되는 일이 생김

그래서 우리는 CloudFront를 이용해 HTTP를 HTTPS로 배포하는 방법을 다음 Part 3에서 알아볼거임

 

그러면 이제 다음 Part 3로 가봅시다

다음 Part https://ybeen.tistory.com/13