1️⃣ 개요

  • KMS(Key Management Service)는 AWS에서 제공하는 암호화 키 관리 서비스
  • 개발 시 비밀번호, API 키, DB 접속 정보 등이 코드나 Git에 노출될 수 있는데
    KMS를 이용하면 이를 안전하게 암호화하여 관리할 수 있음
  • 협업 중 설정 파일이 유출되거나 배포 과정에서 실수로 노출되는 문제를 예방함

2️⃣ 주요 기능

  • 대칭키 / 비대칭키 관리

    • 대칭키: 암호화와 복호화에 같은 키 사용 (일반 데이터 암호화용)
    • 비대칭키(공개키·개인키): 서명과 검증에 사용 (인증서, 전자서명 등)
  • 권한 제어

    • IAM 정책을 이용해 누가 어떤 키를 사용할 수 있는지 세밀하게 제어 가능
  • 통합 보안

    • S3, RDS, Lambda 등 AWS 서비스와 연계되어 자동 암호화 기능 제공
  • 감사 로그

    • AWS CloudTrail과 통합되어 누가, 언제, 어떤 키를 사용했는지 추적 가능

3️⃣ KMS 키 유형

키 유형설명제어 권한
AWS Managed KeyAWS 서비스가 자동으로 생성 및 관리하는 키사용자 제어 불가
Customer Managed Key (CMK)사용자가 직접 생성·관리하는 키사용자 제어 가능
Custom Key StoreCloudHSM 기반으로 하드웨어 암호화 처리사용자 직접 관리

4️⃣ CloudHSM과의 차이

항목AWS KMSCloudHSM
암호화 방식소프트웨어 방식하드웨어 방식 (전용 암호화 장비 사용)
키 관리 주체AWS사용자 (클라이언트)
통합성AWS 서비스와 자동 연동독립적 환경, 보안 강화용
용도일반 데이터 암호화, 서비스 연동높은 보안 수준이 필요한 금융/정부 기관 등

5️⃣ 비용 정책 (2024~2025 기준)

  • KMS 키 생성 및 보관: 키 1개당 월 $1
  • 암복호화 요청: 1000건당 $0.03
    • Encrypt, Decrypt, GenerateDataKey 요청 포함
  • AWS 서비스 통합 사용
    • S3 암호화 등 일부 기본 기능은 무료로 포함

💡

  • 기본 사용량은 대부분 무료이며, 실제 과금은 대규모 키 요청 시 발생
  • 실무에서는 CMK(사용자 관리 키)를 최소한으로 유지하여 비용 절감 가능

6️⃣ 실제 활용 예시

  • S3 버킷 암호화

    • S3 객체 자동 암호화 시 KMS 키 선택 가능
    • 접근 권한이 없는 사용자는 데이터 복호화 불가
  • RDS 암호화

    • DB 생성 시 KMS 키를 지정하면 자동으로 저장 데이터 암호화
    • 복호화 권한 제어 가능
  • Lambda

    • 환경 변수나 API Key를 KMS로 암호화한 뒤 런타임 시 복호화하여 사용

7️⃣ CLI 실습 예시

  • 데이터 암호화
    aws kms encrypt \
      --key-id <CMK_ARN> \
      --plaintext fileb://data.txt \
      --output text \
      --query CiphertextBlob
  • 데이터 복호화

aws kms decrypt \
  --ciphertext-blob fileb://encrypted_data.txt \
  --output text \
  --query Plaintext

AWS CLI로 CloudTrail과 연계하면 키 사용 내역 실시간 감사 가능


8️⃣ 정리

  • KMS는 AWS의 핵심 암호화 인프라로, 보안 데이터 관리의 중심 역할을 함

  • CloudTrail과 연동해 감사 추적을 남기고, S3·RDS·Lambda 등과 자동 통합됨

  • CloudHSM은 하드웨어 기반 고보안 버전이며,
    KMS는 운영 효율성과 확장성 중심의 서비스형 키 관리로 보면 됨

0개의 댓글