S3 훑어보기

로건·2022년 11월 17일
0

AWS

목록 보기
1/3

Simple Storage Service의 약자
데이터를 온라인에 오브젝트 형태로 저장하는 서비스이다.
S3는 아래와 같은 특징을 가지고 있다.

→ 객체 스토어(스토리지)
→ 리전 내 여러 시설에 걸쳐 생성됨
→ 인터넷 액세스가 가능함
→ EC2나 EBS로 구축하는 것보다 저렴함
→ 장 용량이 사실상 무한대이며 파일 저장에 최적화 되어있음


S3를 이루는 두가지 개념 - 객체과 버킷

객체(Object)는 저장단위

→ 최대 5TB까지 저장가능
→ Key를 통해서 버킷에서 유일한 것으로 식별
→ 객체 자체의 ACL(파일 권한), CORS가 존재한다.
→ 파일의 정보를 담은 메타데이터(수정일, 파일 타입, 사이즈 등)

버킷(Bucket)은 객체를 저장하고 관리하는 역할을 한다.

→ 한 리전에 여러 개 버킷이 존재할 수 있다.
→ 여러 가용영역에 걸쳐 생성된다.


언제나 헷갈리는 버킷 정책과 접근 권한 - S3 보안/권한

4가지 권한 설정방법이 있다.
Public Access, ACL, Bucket Policy, pre-signed URL


Public Access

기본적으로 버킷 공개를 차단할 수 있는 방법을 제공한다.
특수한 경우에 대해 퍼블릭 엑세스가 허용되는 경우를 모두 차단할 수 있다.
(버킷의 권한 탭에서 설정할 수 있다)

S3 Public Access


ACL(Access Control List)

버킷이나 객체에 대해 요청자의 권한 허용범위를 설정할 수 있다.
요청자마다 권한 허용 범위를 설정할 수 있다. (버킷 소유자, owner, group, 특정 유저별 설정 가능)
IP 주소나 도메인 단위로의 제어, IAM 사용자 단위로의 제어는 불가능 하다.

S3 ACL


Bucket Policy(버킷 정책)

버킷자체를 사용할 권한을 가진 사용자별로 권한 범위 설정 가능하다.
버킷 안의 객체 별로 권한 설정은 불가능하다.
버킷은 ACL보다 세분화된 권한을 제공하지만 객체별 권한을 설정할 순 없다.
(아래는 모든 유저에게 s3의 모든 권한을 주는 정책)

{
  "Id": "Policy1668596926629",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1668596922203",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::the-pool-s3-1112",
      "Principal": "*"
    }
  ]
}

Action은 어떤 작업을 허용할 것인지(get, put 등)
Effect는 이 작업을 허용할것인지 거부 할것인지
Resource는 어떤 자원에 대한 것인지(arn으로 작성)
Principal은 특정사용자에 대한 명세


pre-signed url

비공개인 객체를 일정 기간 동안 객체 다운로드를 허가해주는 기능이다.
미리 서명된 URL을 만들어 일정 기간동안만 객체를 이용할 수 있다.


정적 웹 사이트 호스팅

버킷의 속성 탭 하단에 정적 웹 사이트 호스팅 기능이 있다. 해당 기능을 이용하여 호스팅을 설정할 수 있다.

profile
Life Designer

0개의 댓글