AWS 개요 - S3

코지클래식·2022년 7월 20일
0

UDEMY 강의
를 듣고 남기는 AWS에 대한 짤막한 개요.

개요

사용 예시

S3는 매우 다양한 용도로 사용된다. 이는 S3가 꽤 다재다능하기 때문이다.
그냥 알고 넘어가기 정도만 하자.

  • 백업/저장, 아카이브, 재난대비용, 하이브리드 클라우드 저장소, 미디어 호스팅(영상), 빅 데이터 분석을 위한 "데이터 호수", 정적 웹사이트

알아야 하는 개념 : 버킷/객체

아마존 S3는 사람들이 객체(파일)을 버킷(디렉토리)에 저장하게 한다.
편하게 버킷을 폴더, 객체를 파일 개념이라고 생각하자.

버킷

버킷은 무조건 전세계적으로 유일한 이름을 가져야 한다. (모든 계정과 지역을 통틀어서)
버킷은 지역(region)레벨에서 정의된다.
S3는 글로벌 서비스처럼 보이지만, 버킷은 region안에 생성된다. (2번 말햇음. 강조)

객체

객체는 Key값을 갖는다. Key는 전체 경로이다.
키는 접두사 + 파일명 으로 이루어진다.
버킷을 디렉토리라고 표현했는데, 버킷 내에는 별도의 디렉토리/폴더 개념이 없다.
UI에는 마치 디렉토리가 있는 것처럼 보이지만, 그저 특수문자 슬래시"/" 를 포함하는 긴 이름의 키 일 뿐이다.
객체는 Value를 갖는다. 이는 body의 컨텐츠 부분이다.
메타데이터(키/밸류페어의 리스트), 태그(유니코드 키/밸류페어), 버전ID도 있음

S3 보안 - 버킷 정책

1. 큰 분류

사용자 기반

IAM 정책 : 특정 사용자로부터 무슨 API호출이 허용되는지 여부. IAM 콘솔로 확인 가능하다.

리소스 기반

버킷정책 : 버킷은 S3 콘솔에서 글로벌하게 정책을 다룰 수 있음. (계정간 cross 허용 등)

===> 그래서 언제 S3 객체에 접근할 수 있는가?
=====> (사용자 IAM이 허용할 때 OR 자원 정책이 허용할 때) AND 명시적인 DENY가 존재하지 않을 때

암호화

S3에서는 암호화 키를 사용해 객체를 암호화할 수 있음

실제 사용 예시

  1. PUBLIC ACCESS(아무나 허용)하려면?
    • IAM 정책: 익명의 www사용자에게는 IAM 정책없음
    • Bucket 정책: Bucket 정책에서 Public Access를 허용해야 함.
  1. USER가 사용 가능하게 하려면?

    • IAM 정책 : USER가 S3 객체에 접근 가능하도록 허용 해야 함
    • Bucket 정책: 변경 필요 없음
  2. EC2 인스턴스에서 사용 가능하게 하려면?

    • IAM 정책 : EC2인스턴스에는 IAM 정책없음. 다만, EC2 인스턴스에 EC2 Instance Role을 부착해서, Instance ROle의 IAM 정책을 변경할 수 잇다.
    • Bucket정책 : 변경 필요 없음
  3. Cross-Account정책(다른 AWS계정) 에서 사용 가능하게 하려면?

    • IAM 정책 : 타 계정에는 해당없음
    • Bucket정책 : Cross-Account 정책을 허용

S3 버킷 정책

JSON으로 되어 있음

  • Resources : 버켓과 객체
  • Actions : API 의 집합(set) (Allow 또는 Deny 에 대한)
  • Effect : Allow 또는 Deny
  • Principal : 정책을 적용할 계정 또는 사용자

S3로 정적 웹사이트 다루기

  • HTML/CSS/JS 파일 업로드
  • Bucket -> Properties -> static website hosting -> edit -> INDEX document에 HTML 파일 주소 입력
  • 일반 사용자들이 접근 가능하게 하기 위해서는, “무조건" 모든 content를 public에서 read 가능하게 해야한다.

Version

  • S3에서는 파일을 버전화 할 수 있다.
  • 버켓 단계에서 가능하다.
  • 동일한 “키"값에 “버전”이 증가하면서 덮어씌웢니다.
  • 버켓들 버저닝하는 베트스 실천
    • 의도하지 않은 삭제에서 보호할 수 있음.
    • 뭔가 잘못되었을 때, 이전 버전으로 Roll back 하기 쉬움
  • 알아야 할 점
    • 버전관리를 활성화 하기 이전의, 버저닝이 되지 않은 모든 파일은 “null” 의 버전 값을 갖는다.
    • 버전을 유예하는 것은 지난 버전을 삭제하지 않는다.

Storage(저장소) 클래스

S3 Glacier 시리즈 -> 최소 저장기간이 90일, 180일인 데이터 저장소들.
저장/보관 비용이 저렴하고, 데이터 access 비용이 비싸기 때문에 접근할일이 적은 데이터를 보관하는데 유리하다.
저장기간, 손실율, 저장하는데 걸리는 시간,.. 등에 따라 티어/비용이 달라진다.

S3 암호화

1. No 암호화

  • 사용자가 파일을 업로드하면, 그대로 저장한다.

2. 서버사이드 암호화

  • 사용자가 파일을 업로드 한다.
  • 서버가 파일을 받는다.
  • 서버가 파일을 암호환다.
  • 서버가 파일을 저장한다.
  • 이는 허용받지 않은 사용자의 파일에 대한 접근을 막는다.

3. 사용자 사이드 암호화

  • 사용자가 파일을 암호화한다.
  • 사용자가 파일을 업로드한다.
  • 서버가 저장한다.

Snow Family

잘 보안된, 포터블 디바이스를 통해, 데이터를 process/collect 해서 AWS 밖으로 갖고 나오는 것을 의미한다. (대용량 USB, 컴퓨터사이즈 하드디스크, 트럭에 담기는 사이즈 하드디스크로 분류)

profile
코지베어

0개의 댓글