$ yh.log
[AWS 자격증] Amazon S3 Advanced & Security 정리

[AWS 자격증] Amazon S3 Advanced & Security 정리

AWSS3Security자격증

작성자 : 오예환 | 작성일 : 2026-01-10 | 수정일 : 2026-01-10

Part 1: Amazon S3 Advanced

1. 스토리지 클래스 간 이동

이동 계층 구조

Standard

Standard IA

Intelligent Tiering

One-Zone IA

Glacier Instant Retrieval

Glacier Flexible Retrieval

Glacier Deep Archive

이동 기준

  • 자주 접근하지 않는 객체 → Standard IA로 이동
  • 빠른 접근 불필요한 아카이브 → Glacier 또는 Glacier Deep Archive로 이동
  • Lifecycle Rules로 자동화 가능

2. Lifecycle Rules (수명 주기 규칙)

규칙 유형

유형설명예시
Transition Actions다른 스토리지 클래스로 전환생성 60일 후 Standard IA로 이동
Expiration Actions일정 시간 후 삭제365일 후 액세스 로그 삭제

Expiration Actions 활용

  • 오래된 파일 버전 삭제 (버전 관리 활성화 시)
  • 미완료 Multi-Part 업로드 삭제

규칙 필터링

필터예시
Prefixs3://mybucket/mp3/*
TagsDepartment: Finance

3. Lifecycle Rules 시나리오

시나리오 1: 썸네일 이미지 관리

요구사항:

  • EC2에서 프로필 사진 업로드 시 썸네일 생성
  • 썸네일: 60일만 보관, 재생성 가능
  • 원본: 60일간 즉시 접근, 이후 6시간 대기 가능

솔루션:

파일스토리지 클래스Lifecycle Rule
원본 이미지Standard60일 후 → Glacier
썸네일One-Zone IA60일 후 → 삭제 (Expiration)

시나리오 2: 삭제된 객체 복구

요구사항:

  • 30일간: 삭제된 객체 즉시 복구 가능
  • 30~365일: 48시간 내 복구 가능

솔루션:

  1. S3 Versioning 활성화 (삭제 시 Delete Marker만 추가)
  2. Noncurrent versions → Standard IA로 전환
  3. 이후 Noncurrent versions → Glacier Deep Archive로 전환

4. S3 Analytics - Storage Class Analysis

개요

  • 적절한 스토리지 클래스 전환 시점 추천
  • Lifecycle Rules 설정의 첫 단계로 활용

특징

항목내용
지원 클래스Standard, Standard IA
미지원One-Zone IA, Glacier ❌
리포트 업데이트매일
분석 시작24~48시간 후
출력 형식CSV 리포트

5. S3 Event Notifications

지원 이벤트 유형

  • S3:ObjectCreated
  • S3:ObjectRemoved
  • S3:ObjectRestore
  • S3:Replication
  • 등...

대상 서비스

대상설명
Lambda Function서버리스 처리
SQS메시지 큐
SNS알림

필터링

  • 객체 이름으로 필터링 가능 (예: *.jpg)

사용 사례

  • S3 업로드 시 썸네일 자동 생성

특징

  • 이벤트 개수 제한 없음
  • 보통 몇 초 내 전달 (최대 1분 이상 걸릴 수도 있음)

IAM 권한 설정

  • Lambda → Lambda Resource Policy
  • SQS → SQS Resource (Access) Policy
  • SNS → SNS Resource (Access) Policy

6. S3 Event Notifications with EventBridge

EventBridge 연동 장점

기능설명
고급 필터링JSON 규칙으로 메타데이터, 객체 크기, 이름 등 필터
다중 대상Step Functions, Kinesis Streams/Firehose 등 18개+ 서비스
추가 기능이벤트 아카이브, 리플레이, 신뢰성 있는 전달

구조

S3 Bucket (모든 이벤트) → EventBridge → (규칙) → 18개+ AWS 서비스

7. S3 Baseline Performance

기본 성능

항목수치
지연시간100~200ms
PUT/COPY/POST/DELETE3,500 요청/초/prefix
GET/HEAD5,500 요청/초/prefix

Prefix 개념

bucket/folder1/sub1/file prefix: /folder1/sub1/
bucket/folder1/sub2/file prefix: /folder1/sub2/
bucket/1/file prefix: /1/
bucket/2/file prefix: /2/

성능 확장

  • Prefix 개수 제한 없음
  • 4개 Prefix로 분산 시: 22,000 GET/HEAD 요청/초 가능

8. S3 Performance 최적화

8.1 Multi-Part Upload

조건권장 사항
파일 > 100MB권장
파일 > 5GB필수

장점: 병렬 업로드로 전송 속도 향상

 파일 [Part 1] [Part 2] [Part 3] ... 병렬 업로드 S3

8.2 S3 Transfer Acceleration

동작 방식:

파일 (미국) → Edge Location → (AWS 프라이빗 네트워크) → S3 버킷 (호주)
 빠름 (공용 인터넷)       ↑ 빠름 (AWS 내부)
  • Edge Location을 통해 전송 속도 향상
  • Multi-Part Upload와 호환

8.3 S3 Byte-Range Fetches

용도 1: 다운로드 속도 향상

S3 파일 [Part 1] [Part 2] ... [Part N] 병렬 다운로드

용도 2: 부분 데이터만 조회

S3 파일 [Header 부분만 요청] 파일 헤더 정보 획득

9. S3 Metadata & Tags

User-Defined Object Metadata

항목설명
형식Name-Value (Key-Value) 쌍
접두사x-amz-meta- 필수
저장소문자로 저장됨
조회객체 조회 시 함께 반환

예시:

x-amz-meta-origin: paris
x-amz-meta-author: john

S3 Object Tags

항목설명
형식Key-Value 쌍
용도세분화된 권한, 분석 (S3 Analytics 그룹화)

예시:

Project: Blue
PHI: True
Department: Finance

검색 제한

⚠️ Metadata와 Tags로 직접 검색 불가!
DynamoDB 같은 외부 DB를 검색 인덱스로 사용해야 함


Part 2: Amazon S3 Security

10. S3 객체 암호화

암호화 방식 총정리

방식키 관리특징
SSE-S3AWS 관리기본값, AES-256
SSE-KMSAWS KMS감사 추적 가능
SSE-C고객 관리HTTPS 필수, 키를 매 요청마다 전달
Client-Side고객 관리클라이언트에서 암/복호화

11. SSE-S3 (Server-Side Encryption with S3)

특징

  • AWS가 키를 소유, 관리
  • 암호화 타입: AES-256
  • 새 버킷/객체에 기본 활성화

헤더

"x-amz-server-side-encryption": "AES256"

동작 흐름

User HTTP(S) + Header S3 S3 Owned Key로 암호화 저장

12. SSE-KMS (Server-Side Encryption with KMS)

특징

  • AWS KMS가 키 관리
  • 사용자가 키 제어 가능
  • CloudTrail로 키 사용 감사 가능

헤더

"x-amz-server-side-encryption": "aws:kms"

KMS 제한 사항 ⚠️

작업API 호출
업로드GenerateDataKey
다운로드Decrypt
  • KMS 할당량에 포함 (리전별 5,500 / 10,000 / 30,000 req/s)
  • 할당량 초과 시 → Service Quotas Console에서 증가 요청

13. SSE-C (Server-Side Encryption with Customer Key)

특징

  • 고객이 키를 완전 관리 (AWS 외부)
  • AWS는 키를 저장하지 않음
  • HTTPS 필수
  • 매 요청마다 HTTP 헤더에 키 포함

동작 흐름

User HTTPS + Key in Header S3 고객 키로 암호화 저장 (키는 버림)

14. Client-Side Encryption

특징

  • 클라이언트에서 암호화 후 업로드
  • 클라이언트에서 다운로드 후 복호화
  • 고객이 키와 암호화 사이클 완전 관리

라이브러리

  • Amazon S3 Client-Side Encryption Library 사용

동작 흐름

파일 클라이언트 키로 암호화 암호화된 파일 HTTP(S)  S3 저장

15. 전송 중 암호화 (Encryption in Transit)

S3 엔드포인트

엔드포인트암호화
HTTP❌ 암호화 안 됨
HTTPS✅ SSL/TLS 암호화

권장 사항

  • HTTPS 권장
  • SSE-C 사용 시 HTTPS 필수

HTTPS 강제 (Bucket Policy)

{
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:*",
  "Resource": "arn:aws:s3:::my-bucket/*",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false"
    }
  }
}

16. Default Encryption vs Bucket Policy

항목설명
Default EncryptionSSE-S3가 기본 적용
Bucket Policy특정 암호화 헤더 없으면 거부 가능 (SSE-KMS, SSE-C)

⚠️ Bucket Policy가 Default Encryption보다 먼저 평가됨


17. CORS (Cross-Origin Resource Sharing)

Origin이란?

Origin = Scheme(Protocol) + Host(Domain) + Port
예: https://www.example.com (HTTPS 기본 포트 443)

Same Origin vs Different Origin

비교예시
Same Originhttp://example.com/app1 & http://example.com/app2
Different Originhttp://www.example.com & http://other.example.com

CORS 동작 흐름

1. 브라우저 Cross-Origin 서버에 Preflight Request (OPTIONS)
2. Cross-Origin 서버 CORS 헤더 응답
   - Access-Control-Allow-Origin시나리오: S3 버킷(HTML)에서 다른 S3 버킷(Assets) 리소스 요청
   - Access-Control-Allow-Methods
3. 브라우저 실제 요청 수행

S3 CORS 설정

시나리오: 한 S3 버킷(HTML)에서 다른 S3 버킷(Assets)의 리소스 요청

my-bucket-html (정적 웹사이트)
 이미지 요청
my-bucket-assets (정적 웹사이트)
 CORS 헤더 설정 필요!

설정:

  • 특정 Origin 허용: http://my-bucket-html.s3-website.us-west-2.amazonaws.com
  • 모든 Origin 허용: *

💡 시험 단골 문제!


18. MFA Delete

MFA 필요한 작업

작업MFA 필요
객체 버전 영구 삭제✅ 필요
버전 관리 일시 중지✅ 필요
버전 관리 활성화❌ 불필요
삭제된 버전 목록 조회❌ 불필요

조건

  • 버전 관리 활성화 필수
  • 버킷 소유자(root 계정)만 MFA Delete 활성화/비활성화 가능

19. S3 Access Logs

개요

  • 감사 목적으로 S3 버킷의 모든 접근 로깅
  • 승인/거부된 모든 요청 기록

설정 조건

항목조건
로깅 버킷 위치같은 AWS 리전

⚠️ 주의: 로깅 루프 방지

 잘못된 설정: 모니터링 버킷 = 로깅 버킷
 무한 루프 발생 버킷 용량 기하급수적 증가!
 
 올바른 설정: 별도의 로깅 전용 버킷 사용

20. S3 Pre-Signed URLs

개요

  • 임시로 S3 객체에 접근 권한 부여
  • URL 생성자의 권한을 상속

URL 만료 시간

생성 방법만료 시간
S3 Console1분 ~ 720분 (12시간)
AWS CLI기본 3600초, 최대 604800초 (168시간 = 7일)

CLI 예시

aws s3 presign s3://my-bucket/my-file.txt --expires-in 3600

사용 사례

  • 로그인 사용자에게만 프리미엄 비디오 다운로드 허용
  • 동적으로 파일 다운로드 URL 생성
  • 특정 위치에 임시 업로드 허용

21. S3 Access Points

개요

  • S3 버킷의 보안 관리 간소화
  • 대규모 접근 관리에 유용

구성 요소

요소설명
DNS nameInternet Origin 또는 VPC Origin
Access Point PolicyBucket Policy와 유사

예시 구조

S3 Bucketf
├── /finance/...
├── /sales/...
└── /analytics/...
 
Access Points:
├── Finance Access Point /finance prefix에 R/W
├── Sales Access Point /sales prefix에 R/W
└── Analytics Access Point 전체 버킷에 R

VPC Origin Access Point

  • VPC 내부에서만 접근 가능하도록 설정
  • VPC Endpoint 생성 필요 (Gateway 또는 Interface)
  • VPC Endpoint Policy에서 버킷 + Access Point 접근 허용 필요

22. S3 Object Lambda

개요

  • Lambda 함수로 객체 조회 전 내용 변환
  • 하나의 S3 버킷 + Access Point + Object Lambda Access Point 구성

동작 흐름

애플리케이션 S3 Object Lambda Access Point Lambda 함수 S3 Access Point S3 Bucket

                                              객체 변환 처리

사용 사례

사용 사례설명
PII 삭제분석/비프로덕션 환경용 개인정보 마스킹
데이터 형식 변환XML → JSON 변환
이미지 처리요청자별 리사이징, 워터마크 추가

핵심 요약 표

암호화 방식 비교

방식키 관리자키 저장HTTPS감사
SSE-S3AWSAWS선택
SSE-KMSAWS KMSAWS선택✅ CloudTrail
SSE-C고객고객필수
Client-Side고객고객선택

성능 최적화 방식

방식용도
Multi-Part Upload대용량 업로드 (>100MB 권장, >5GB 필수)
Transfer Acceleration원거리 전송 속도 향상
Byte-Range Fetches병렬 다운로드, 부분 조회
Prefix 분산요청 처리량 확장