1. S3란?
S3는 AWS에서 제공하는 정적 파일을 저장하는 저장소
- 인터넷 스토리지 서비스로 원하는 데이터를 저장하는 저장소
- 저장한 데이터를 장소에 구애받지 않고 다운로드 받을 수 있게 합니다.
- 권한을 부여해 권한을 가진 사용자만 사용할 수 있게 할 수 있습니다.
📋 구성요소
1. bucket(버킷)
객체가 저장되는 저장소
2. 객체와 키
- 객체: 버킷에 저장된 파일 모두를 객체라고 합니다.
- 객체 = 객체 데이터 + 메타데이터
💫 메타데이터: 객체 관련 정보를 저장하기 위한 이름-값 페어의 세트
ex)
https://buckeranme.s3.ap-northeast-2.amazonaws.com/boards/1.jpg
boards/1.jpg 가 키가 됩니다!
3. Regions
- 말 그대로 저장소가 있는 장소
- 계정에 활성화한 AWS 리전에서만 S3에 엑세스하고 해당 기능을 사용할 수 있게 됩니다.
🛒 버킷 생성
1. 버킷 만들기 버튼 클릭
2. 버킷 이름과 리전 설정
3. 퍼블릭 엑세스 차단 설정
📃 설정
1. 버킷 정책
- 새로 생성한 버킷에 대해 어떤 행동을 허락해줄지를 정할 수 있습니다.
- 편집을 누르면 정책생성기가 있습니다. 그곳에서 빠르게 만들 수 있습니다.
생성 후 버킷 정책에 그대로 넣어주면 됩니다.
- 필자같은 경우에는 버킷에 들어가는 데이터들을 조회/생성/삭제할 수 있도록 했습니다.
2. CORS
흔히 볼 수 있는 CORS 에러
- CORS는 웹 브라우저에서 보안상의 이유로 도입한 정책으로 현재 사용자가 접속한 웹 애플리케이션이 다른 출처의 리소스를 불러올 때, 브라우저가 그 리소스를 거부하는 브라우저의 보안 정책 이라고 할 수 있습니다.
- Access-Control-Allow-Origin 헤더를 보내는 방식으로 해결할 수 있는데 S3도 마찬가지입니다.
- 필자는 편의성을 위해서 *로 모든 도메인을 허락해주었지만 이 부분은 더 공부를 해봐야 될 것 같습니다.
- AllowedMethods는 허락해줄 HTTP Method를 지정합니다.
마치며
S3는 모든 데이터를 무제한 용량으로 저장할 수 있고 같은 지역이라면 모든 데이터를 어디서든 받아올 수 있다는 장점이 있지만 설정을 잘못한다면 다른 사람이 악용할 수 있다는 주의점도 존재한다고 생각합니다.
그래서 CORS 정책이나 퍼블릭 엑세스에 대한 공부가 좀 더 필요하다고 느껴집니다!!
그리고 다음에 중점으로 올려보겠습니다~