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 |