S3 버킷을 만들고 난 후, AWS는 보안적인 측면을 고려하여 모든 것을 허용하지 않고, 기본적으로 외부 접근을 제한
이로 인해, 버킷을 사용하는 사용자들은 적절한 `권한 설정`을 해야만 버킷에 접근할 수 있음
S3 사용 용례
1. 파일 저장소
- 로그, 이미지, 비디오, 압축 파일 등 다양한 파일을 저장할 수 있음.
- S3 버킷에 특정 파일이 업로드될 때 `이벤트를 트리거`시켜 다른 서비스를 실행할 수 있는 기능이 있음.
- 웹사이트 호스팅, 로그 파일 보관, 연구 데이터 복원 등 다양한 방식으로 사용.
2. 웹사이트 호스팅
- HTML, CSS, 자바스크립트 파일을 올려 웹사이트를 호스팅할 수 있음.
- `Route 53`을 사용하여 도메인을 S3 버킷에 연결할 수 있음.
3. CORS (Cross-Origin Resource Sharing)
- `다른 리전`의 버킷에 있는 데이터를 접근 가능하게 설정할 수 있음.
- 예를 들어, 버킷 A(서울)와 버킷 B(N. Virginia)가 있을 때, 버킷 B의 데이터를 버킷 A에서 접근할 수 있도록 CORS 설정 가능.
S3 보안 설정
1. 버킷 정책 (Bucket Policy)
- 버킷 `전체`에 대한 `접근 권한`을 설정.
- 버킷 정책을 퍼블릭으로 설정하면 모든 파일에 대한 `공개 접근`이 가능해짐.
- 정책은 JSON 형식으로 작성됨.
2. 접근 제어 리스트 (Access Control List)
- `개별 파일`마다 접근 권한을 설정할 수 있음.
- 예를 들어, John은 X, Y 파일에만, Mike는 Z 파일에만 접근할 수 있도록 설정 가능.
S3 - 암호화 (Encryption)
S3는 중요한 파일들을 업로드할 때 `암호화`를 통해 보안을 강화.
이를 통해 외부로부터의 노출을 차단하고, 파일을 안전하게 `보관`할 수 있음.
[1] 파일 업로드/ 다운로드시
SSL/TLS
- 직접접 개입할 필요는 없으며 `AWS내부`에서 관리
- `SSL`: Secure Socket Layer 인터넷 사용시 도메인 주소 맨 앞에 HTTPS가 붙으므로 우리의 사이트는 안전하다라는 뜻
- `TLS`: Transport Layer Security SSL에서 파생됬으나 이보다 훨씬 업데이트된 보안
[2] 가만히 있을시
1. SSE-S3 (Server-Side Encryption)
- 기본적으로 `S3 버킷`에 저장된 모든 파일은 `고유한 키`로 암호화됨. (마스터키)
- AES-256 비트 암호화 방식을 사용.
2. SSE-KMS (Key Management Service)
- AWS KMS를 통해 `암호화 키`를 관리하며, 누가 언제 파일을 접근했는지에 대한 `기록`을 보관할 수 있음.
3. SSE-C (Customer Provided Keys)
- 사용자가 직접 암호화 키를 관리할 수 있으며, 키값을 사용자가 변경해야 함.
- SSE는 Service-Side Encryption의 약자
S3 암호화 과정
- 파일 업로드 시 암호화를 요청할 수 있으며, 헤더에 `x-amz-server-side-encryption-parameter`가 포함되어 암호화 방식이 적용됨.
- 버킷 정책을 통해 암호화되지 않은 파일은 버킷에 업로드되지 않도록 설정 가능.
S3 사용 시 주의점
- 외부 접근을 허용할 경우, 필요한 사용자에게만 정확한 권한을 부여하는 것이 중요.
- 암호화된 파일만 업로드되도록 버킷 정책을 설정하여 보안 수준을 유지.
참고강의
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8
'백엔드 공부일지 > AWS 공부일지' 카테고리의 다른 글
[AWS] DynamoDB: DAX & Stream (4) | 2024.11.05 |
---|---|
[AWS] DynamoDB 기초부터 Index, Query, Scan 활용까지 (1) | 2024.11.04 |
[AWS] S3와 S3 스토리지 종류 (0) | 2024.10.06 |
[AWS] RDS 읽기 전용 복제본 & AZ 가용영역 (1) | 2024.09.29 |
[AWS] RDS 관계형 데이터베이스 서비스 (1) | 2024.09.29 |