DevOps BootCamp/AWS

Storage - S3

cloudmaster 2023. 4. 14. 14:47

Simple Storage Service, S3

 > AWS의 대표 스토리지 서비스인 S3는 객체 스토리지

 > 데이터 백업, 정적 웹사이트 호스팅, 애플리케이션 호스팅, 재난 복구, 콘텐츠 배포, 데이터 레이크, 프라이빗 저장소 등에 활용

 

버킷(bucket)

 > 객체를 저장하는 컨테이너 역할을 하며, 컴퓨터로 비유하자면 파일을 담는 폴더 역할

 > 한 버킷 내에 여러 개의 폴더를 생성

 

 > 버킷 생성 시 주의해야 할 점

 : 리전에서 유일무이한 이름을 사용

 : 사용자가 버킷 URL을 통해 해당 데이터에 접근

 

 > 어떤 리전에서나 생성할 수 있고, 명시적으로 복제 작업을 수행하지 않으면, 한 다른 리전에 특정 버킷의 데이터가 복제 x

 > S3 버킷은 버전 부여 기능을 제공하므로 객체가 버킷에 추가될 때마다 해당 객체에 유일한 ID가 할당

 

객체(object)

 > 객체란 문서, 이미지, 비디오 등 비교적 단순한 구조에 메타데이 터을 포함하고 있는 데이터

 > 버킷에 저장한 모든 것이 객체

 > 이름, 키 또는 버전 ID를 통해 식별할 수 있으며, 키를 통해 버킷에서 유일한 것으로 식별

 

접근성 통제

 > S3 버킷에 누가 어떻게 접근하도록 할 것인지를 정의하는 것

 > JSON을 이용해 작성된 정책(Policy)을 통해 이루어지며, 접근 정책, 버킷 정책, 접근 제어 목록 등의 방식을 사용

 > 하나의 Statement에는 하나의 permission 정보가 포함

 > 정책에 포함된 다수의 statement은 논리합(Logical OR) 관계

 

각 필드는 다음과 같은 의미를 가짐

  • ID : 정책의 ID 값으로, UUID를 사용하기를 권장
  • SID : Statement ID로 statement를 구분하기 위해서 사용
  • Effect : 정책의 효과를 나타내며, 허용할 것인지 거부할 것인지를 선택
  • Principal : 대상 및 주체를 지정합니다. Users, Services 등
  • Action : 정책을 통해 승인 혹은 거절할 동작
  • Resource : Action이 영향을 미치는 리소스 리스트를 지정
  • Condition : 조건이 충족되는 경우에는 해당 정책을 적용

 > 정책은 사용자, 그룹, 및 롤에 할당하는 IAM 정책인 Identity-based policies와 S3 Bucket, SES Queue 등 AWS 자원에 할당되는 정책인 Resource-based policies로 나뉘어 작성

 

 > 필드에 Principal이 있는지 확인, AWS 자원에 할당되는 정책에는 Principal 항목이 포함되어 있고, IAM 정책에는 Principal 항목이 포함되어 있지 않음

 

접근 정책

  • Identity-based policies

 > IAM, 즉 신분 및 접근 관리 정책으로 S3의 객체를 매우 세분화해 통제

 > 유저, 그룹, 롤 등 IAM 정책을 정의

 > S3 풀 액세스 정책을 생성하고, 10명의 유저가 포함된 그룹에 해당 정책을 할당

 > 그룹에 속한 10명의 회원 모두 S3 버킷에 대한 풀 액세스 권한에 접근 가능

 > IAM과 S3를 이용하면 특정 IAM 유저와 공유되고 있는 버킷을 선택할 수 있고, 특정 유저가 해당 버킷에 접근하도록 허용

 

버킷 정책

  • Resource-based policies

> 버킷 레벨에서 생성한 정책을 의미

> S3 버킷을 세분화된 방식으로 제어

 

S3의 보안 Best Practice

 > S3 버킷에 대한 퍼블릭 액세스를 허용해서는 안됨

 > S3 버킷을 퍼블릭 액세스 할 수 있다는 말은 모든 파일이 아무에게나 노출될 수 있다는 의미

 > 최소한의 접근 권한 전략을 사용

 > S3 버킷에 접근해야 하는 사람에게도 관련 작업에 해당하는 만큼만 권한을 부여하고, 그 외 사람에게는 접근 거부 정책을 적용

 > 다중인증(MultiFactor Authentication, 이하 MFA) 시스템을 활용

 > MFA Delete를 설정하여 데이터 삭제 권한이 없는 사람은 삭제할 수 없도록 제한

 

스토리지 클래스 다음으로 설계됨 내구성(설계상) 가용성(설계상) 가용 영역 최소 스토리지 기간 최소 요금 객체 크기 기타 고려 사항
S3 Standard 자주 액세스하는 데이터(한 달에 한 번 이상), 밀리초 단위의 액세스 99.999999999% 99.99% >= 3 없음 없음 없음
S3 Standard-IA 밀리초 단위의 액세스로 한 달에 한 번 이따금 액세스하는 수명이 긴 데이터 99.999999999% 99.9% >= 3 30일 128KB GB당 검색 요금이 적용됩니다.
S3 Intelligent-Tiering 알 수 없거나 변경되거나 예측할 수 없는 액세스 패턴이 있는 데이터 99.999999999% 99.9% >= 3 없음 없음 객체당 모니터링 및 자동화 비용이 적용됩니다. 검색 요금이 없습니다.
S3 One Zone-IA 재생성 가능하고 자주 액세스하지 않는 데이터(한 달에 한 번), 밀리초 단위의 액세스 99.999999999% 99.5% 1 30일 128KB GB당 검색 요금이 적용됩니다. 가용 영역의 손실에 대한 복원력이 없습니다.
S3 Glacier Instant Retrieval 밀리초 단위의 액세스로 분기에 한 번 액세스하는 수명이 긴 아카이브 데이터 99.999999999% 99.9% >= 3 90일 128KB GB당 검색 요금이 적용됩니다.
S3 Glacier Flexible Retrieval 몇 분에서 몇 시간의 검색 시간으로 1년에 한 번 액세스하는 수명이 긴 아카이브 데이터 99.999999999% 99.99%(객체 복원 후) >= 3 90일 40KB GB당 검색 요금이 적용됩니다. 이 객체에 액세스하려면 먼저 보관된 객체를 복원해야 합니다. 자세한 정보는 아카이브된 객체 복원 섹션을 참조하세요.
S3 Glacier Deep Archive 몇 시간의 검색 시간으로 1년에 한 번 미만 액세스하는 수명이 긴 아카이브 데이터 99.999999999% 99.99%(객체 복원 후) >= 3 180일 40KB GB당 검색 요금이 적용됩니다. 이 객체에 액세스하려면 먼저 보관된 객체를 복원해야 합니다. 자세한 정보는 아카이브된 객체 복원 섹션을 참조하세요.
RRS(권장되지 않음) 자주 액세스하는 중요하지 않은 데이터, 밀리초 단위의 액세스 99.99% 99.99% >= 3 없음 없음 없음

'DevOps BootCamp > AWS' 카테고리의 다른 글

Storage - EFS  (0) 2023.04.14
Storage - EBS  (0) 2023.04.14
스토리지  (0) 2023.04.14
EC2 관련 개념  (0) 2023.04.14
AWS 서비스 로드맵  (0) 2023.04.14