[AWS SAA] 암호화(KMS,S3,,)

시훈·2025년 4월 14일

AWS SAA

목록 보기
31/43

🔍 KMS란?

KMS(Key Management Service)는 데이터 암호화에 사용되는 Key를 안전하게 생성하고 관리하는 서비스이다. KMS는 AWS 서비스와 연동되어 작동하며, 다양한 형태의 키 관리 방식을 제공한다.


🧩 KMS 키 유형 3가지

키 유형설명제어 수준요금사용 사례
고객 관리형 키사용자가 직접 생성하고 관리✅ 완전 제어 가능💰 월별 요금 + 사용량 요금민감 데이터 암호화
AWS 관리형 키AWS 서비스가 생성·관리❌ 제어 불가일부 사용량 요금 (월 요금 없음)암호화 자동화, 비용 효율
AWS 소유 키AWS 내부용❌ 완전 비공개💸 요금 없음AWS 옵션 Default


🔄 클라이언트 측 vs 서버 측 암호화

구분클라이언트 측 암호화 (Client-side)서버 측 암호화 (Server-side)
암호화 주체사용자가 직접 데이터를 암호화 후 업로드AWS가 업로드 시점에 암호화 수행
키 관리사용자 (로컬 또는 KMS 활용 가능)AWS 관리 또는 KMS 연동
사용 예자체 보안 정책이 엄격한 조직대부분의 AWS 서비스 기본 암호화

🔐 서버 측 암호화(SSE) 방식

![]

  • SSE-S3: AWS가 관리하는 키로 암호화 (기본 옵션)
  • SSE-KMS: 사용자가 지정한 KMS 키로 암호화
  • SSE-C: 사용자가 제공한 키로 서버에서 암호화 (키 저장 안됨)

🔐 Envelope Encryption 구조

KMS는 Envelope Encryption 방식을 사용한다. 즉, CMK(고객 마스터 키)를 사용해 데이터 키(Data Key)를 생성하고, 이 데이터 키로 실제 데이터를 암호화한다.

1️⃣ 암호화 과정

  1. CMK를 통해 Data Key 생성 (plaintext + encrypted 버전)
  2. Plaintext Data Key로 사용자 데이터를 암호화
  3. Plaintext Key는 메모리에서 삭제, Encrypted Data Key만 저장
[CMK] → GenerateDataKey → [Plaintext DataKey, Encrypted DataKey]
       ↓                               ↓
  데이터 암호화           보관용으로 함께 저장

📌 이 구조를 Envelope Encryption이라 부른다.

2️⃣ 복호화 과정

  1. Encrypted Data Key → KMS로 보내 복호화 (CMK 사용)
  2. 복호화된 Plaintext Data Key로 암호화된 데이터 복호화
[Encrypted DataKey] → KMS 복호화(CMK) → Plaintext DataKey → 복호화된 데이터

🛠️ KMS 연동 예시

  • S3 버킷 객체 암호화: CMK를 지정하면 객체가 저장될 때 자동으로 암호화됨
  • Lambda 환경 변수 암호화
  • RDS 스냅샷 암호화

🧪 보너스: KMS & CloudHSM 차이

항목KMSCloudHSM
관리 주체AWS사용자(전용 HSM)
보안 수준FIPS 140-2 레벨 2FIPS 140-2 레벨 3
비용상대적으로 저렴고가 (전용 리소스)
접근 방식공유형 키 관리전용형 키 하드웨어 장치

✅ KMS는 멀티 테넌트 환경에서 간편한 관리에 적합하며, CloudHSM은 강력한 규제 준수와 보안이 필요한 환경에 적합하다.


✨ 마무리 요약

  • AWS KMS는 안전한 키 관리, Envelope Encryption, 다양한 통합 서비스가 강점이다.
  • 고객의 보안 요구사항에 따라 적절한 KMS 키 유형을 선택해야 한다.
  • 시험에서는 키 유형 구분, Envelope 구조, 연동 예시를 이해하는 것이 핵심이다.
profile
Backend Developer / Cloud Engineer

0개의 댓글