AWS S3 암호화 및 버킷 정책
· 약 3분
S3 암호화
Amazon S3
- 객체 스토리지 서비스 : 파일 보관만 가능
- 글로벌 서비스 단, 데이터는 리전에 저장
- 무제한 용량 : 하나의 객체는 0byte에서 5TB의 용량
- 내구성 : 99.999999999% 내구성
S3의 보안 설정
- S3 모든 버킷은 새로 생성시 기본적으로 Private(비공개)
- 보안 설정은 객체 단위와 버킷 단위로 구성
- MFA를 활용해 객체 삭제 방지 가능
- Versioning을 통해 파일 관리 가능
- 액세스 로그 생성 및 전송 가능
S3의 객체 암호화
- On Transit : 통신하는 도중에 암호화 지원
- At Rest(Sever Side) : S3에서 파일 저장 시 암호화 지원
- Client Side : 클라이언트가 직접 암호화(가장 강력한 보안)
S3 버전관리 및 객체 잠금
S3 버전 관리
- 객체의 생성, 업데이트, 삭제의 모든 단계를 저장
- 버킷 단위로 활성화 필요(기본적으로 비활성화)
- MFA 인증 후 삭제 기능을 통해 보안 강화 가능
- 수명 주기 관리와 연동 가능
S3 버전 관리 유의 사항
- 중지 가능(단, 비활성화 불가능)
- 모든 버전에 대한 비용이 발생
객체 잠금 종류
-
보관 모드(Retention Mode)
- 일정 기간 동안 수정을 방지함
- 규정 준수 모드 : 누구도 잠금 설정 변경, 객체 삭제 불가능
- 거버넌스 모드 : 특별한 권한 없이 삭제 혹은 잠금 설정 변경 불가능(권한 있으면 해제 가능)
-
법적 모드(Legal Mode)
- Hold(특정한 신호)를 객체에 부여하고, Hold가 존재하는 한 객체 삭제, 수정 불가능
S3 버킷 정책
IAM 정책(Policy)의 종류
- Identity-based policies(자격 증명 기반 정책)
- 자격증명에 부여하는 정책(IAM 유저, 그룹, 역할)
- 해당 자격증명이 무엇을 할 수 있는지 허용
- Resource-based policies(리소스 기반 정책)
- 리소스에 부여하는 정책(예 : S3, SQS, VPC Endpoint 등, KMS 등)
- 해당 리소스에 누가 무엇을 할 수 있는지 허용 가능
S3 버킷 정책
- 버킷 단위로 부여되는 리소스 기반 정책으로, 해당 버킷의 데이터에 정의 가능
- 기본적으로 모든 버킷은 Private
- 접근 불가능