1️. 왜 암호화가 필요한가 – In-Flight Encryption

Encryption in Flight (TLS / SSL)

  • 전송 중 데이터 암호화
  • MITM(Man-in-the-Middle) 공격 방지
  • HTTPS = TLS 인증서 기반 암호화
Client
 └─HTTPS (TLS Encryption)
     └─Server
  • 사용자명 / 비밀번호가 평문으로 노출되지 않음

2️. 서버 측 암호화 – Encryption at Rest

Server-Side Encryption

  • 서버가 데이터를 받은 뒤 암호화
  • 저장 시 암호화된 상태
  • 전송 시 복호화
Client
 └─ HTTPS
     └─ AWS Service (ex: S3)
         ├─ Data Key
         ├─ Encrypt
         └─EncryptedObject
  • 암호화 키 관리가 핵심
  • AWS 서비스는 보통 KMS 사용

3️. 클라이언트 측 암호화

Client-Side Encryption

  • 클라이언트가 직접 암호화
  • 서버는 절대 복호화 불가
  • 수신 클라이언트만 복호화 가능
Client
 ├─ Encrypt (Data Key)
 └─EncryptedObject
      └─Storage (S3 / FTP / etc)
  • Envelope Encryption 사용 가능

4️. AWS KMS

AWS Key Management Service

핵심 특징

  • AWS 암호화의 중심 서비스
  • IAM 기반 권한 제어
  • CloudTrail로 키 사용 감사 가능
  • EBS, S3, RDS, SSM 등과 통합
  • SDK / CLI / API 호출 지원

❗ 절대 비밀 값을 코드에 평문으로 저장하지 말 것


5️. KMS Key 유형

Symmetric Key (AES-256)

  • Encrypt / Decrypt 동일 키
  • 대부분 AWS 서비스에서 사용
  • 키 자체는 절대 노출되지 않음

Asymmetric Key (RSA / ECC)

  • Public Key (Encrypt)
  • Private Key (Decrypt, Sign)
  • Public Key 다운로드 가능
  • AWS 외부 암호화 시 사용

6️. KMS Key 관리 방식

키 종류 & 비용

  • AWS Owned Keys: 무료 (SSE-S3, SSE-DDB 등)
  • AWS Managed Keys: 무료 (aws/rds, aws/ebs)
  • Customer Managed Keys: $1 / 월
  • Imported Keys: $1 / 월
  • API 호출: $0.03 / 10,000회

Key Rotation

  • AWS Managed: 자동 1년
  • Customer Managed: 자동/수동
  • Imported: 수동만 가능

7️. 리전 간 스냅샷 복사 + KMS

RegionA
 └─ Snapshot (KMS KeyA)
      └─ ReEncrypt
           └─ Snapshot (KMS KeyB)
               └─ RegionB
  • 리전 이동 시 재암호화 필수

8️. KMS Key Policy

특징

  • S3 Bucket Policy와 유사
  • 없으면 접근 불가
  • Root 계정은 기본 전체 권한

Custom Key Policy

  • 사용자 / Role 지정
  • 관리자 / 사용자 분리
  • Cross-Account 암호화 필수

9️. 계정 간 Snapshot 공유 (Encrypted)

전체 흐름

  1. CMK로 Snapshot 생성
  2. KMS Key Policy에 대상 계정 허용
  3. Snapshot 공유
  4. 대상 계정에서 자기 CMK로 재암호화
  5. Volume 생성

10. KMS Multi-Region Keys (MRK)

개념

  • 동일 Key ID / Key Material
  • 여러 리전에 복제
  • 리전 간 Encrypt / Decrypt 가능
  • 글로벌 ❌ (Primary + Replica 구조)

사용 사례

  • Global DynamoDB
  • Global Aurora
  • 글로벌 Client-Side Encryption

1️1. DynamoDB Global Tables + MRK

Region A
 └─ EncryptAttribute (Primary MRK)
     └─ DDBGlobalTableReplication
          └─ Region B
               └─ Decrypt (Replica MRK)
  • 민감 필드(SSN 등)만 클라이언트 측 암호화
  • API Key 없으면 복호화 불가

1️2. Aurora Global DB + MRK

  • Encryption SDK 사용
  • DB 관리자도 특정 컬럼 복호화 ❌
  • 글로벌 복제 + 저지연 복호화

1️3. S3 Replication & 암호화 주의사항

  • SSE-S3: 자동 복제
  • SSE-C: 복제 가능
  • SSE-KMS
    • 옵션 활성화 필요
    • 대상 버킷 KMS Key 지정
    • Source / Target KMS 권한 필요
  • 대량 복제 시 KMS Throttling 발생 가능

1️4. AMI 공유 (KMS 암호화)

절차

  1. Source 계정에서 AMI 생성 (KMS 암호화)
  2. AMI Launch Permission 공유
  3. KMS Key 공유
  4. 대상 계정 Role 권한 필요
  5. 필요 시 자기 KMS로 재암호화

1️5. SSM Parameter Store

구성·비밀 값 저장소

특징

  • Serverless
  • KMS 암호화 지원
  • 버전 관리
  • IAM 기반 접근
  • EventBridge 알림
  • CloudFormation 연동

1️6. Parameter Store 계층 구조

/my-department/my-app/dev/db-password
/my-department/my-app/prod/db-password
/aws/service/ami-amazon-linux-latest/...
  • Lambda / EC2에서 GetParametersByPath 사용

1️7. Standard vs Advanced Parameter

항목StandardAdvanced
개수10,000100,000
크기4KB8KB
TTL 정책
비용무료$0.05 / 월

1️8. Parameter Policies (Advanced)

정책 유형

  • Expiration (삭제)
  • ExpirationNotification (EventBridge)
  • NoChangeNotification

비밀번호 강제 로테이션


1️9. AWS Secrets Manager

특징

  • 비밀 값 전용 서비스
  • 자동 로테이션
  • Lambda 기반 회전
  • RDS와 강력 통합
  • KMS 암호화

Parameter Store보다 DB 비밀 관리에 특화


2️0. Secrets Manager – Multi-Region

  • 리전 간 Secret 복제
  • Read Replica 동기화
  • DR / 글로벌 서비스에 적합

2️1. AWS Certificate Manager (ACM)

TLS 인증서 관리

특징

  • Public TLS 무료
  • 자동 갱신
  • ALB / NLB / CloudFront / API Gateway 연동
  • EC2 직접 사용 ❌

2️2. ACM 인증서 요청 & 가져오기

Public Certificate

  • DNS Validation 권장
  • 60일 전 자동 갱신

Import Certificate

  • 자동 갱신 ❌
  • EventBridge / Config로 만료 감시

2️3. ACM + ALB / API Gateway

  • ALB: HTTP → HTTPS Redirect
  • API Gateway
    • Edge-Optimized → us-east-1 인증서
    • Regional → 동일 리전 인증서

2️4. AWS WAF

L7 웹 공격 방어

보호 대상

  • ALB
  • API Gateway
  • CloudFront
  • AppSync
  • Cognito

Rule 유형

  • IP Set
  • Header / Body / URI 검사
  • SQLi / XSS
  • Geo-block
  • Rate-based Rule

2️5. WAF + Global Accelerator

Users
 └─ GlobalAccelerator(Fixed IP)
     └─ ALB + WAF
  • NLB는 WAF 미지원
  • 고정 IP + L7 보안

2️6. AWS Shield

Shield Standard

  • 기본 활성화
  • L3 / L4 DDoS 보호

Shield Advanced

  • $3,000 / 월
  • L7 공격 보호
  • DDoS 대응팀 24/7
  • 비용 보호
  • WAF 자동 규칙 생성

2️7. AWS Firewall Manager

조직 단위 보안 정책 관리

관리 대상

  • WAF
  • Shield Advanced
  • Security Group
  • Network Firewall
  • Route 53 DNS Firewall
  • 신규 리소스 자동 적용

2️8. DDoS 방어 베스트 프랙티스

Edge Protection

  • CloudFront
  • Global Accelerator
  • Route 53

Infrastructure

  • ALB
  • Auto Scaling
  • Multi-AZ

Application Layer

  • WAF Rule
  • Rate Limit
  • Managed Rules

Attack Surface Reduction

  • Backend 숨기기
  • SG / NACL
  • API Gateway + WAF

2️9. Amazon GuardDuty

위협 탐지 서비스

입력 로그

  • CloudTrail
  • VPC Flow Logs
  • DNS Logs
  • S3 Data Events
  • EKS / RDS / Lambda (옵션)

출력

GuardDuty
 └─ EventBridge
     ├─ SNS
     └─ Lambda
  • Crypto Mining 탐지 가능

3️0. Amazon Inspector

대상

  • EC2 (SSM Agent 필요)
  • ECR 이미지
  • Lambda 함수

평가

  • CVE 취약점
  • 네트워크 노출
  • Risk Score 제공
  • Security Hub 연동

3️1. Amazon Macie

S3 민감 데이터 탐지

기능

  • PII 자동 탐지
  • ML + 패턴 매칭
  • EventBridge 연동
S3 Bucket
 └─ Macie
     └─ PII 발견
         └─ EventBridge → 알림