Programming

[AWS, Certified Developer Associate] AWS KMS, SSM Parameter Store

AWS KMS (Key Management Service)

  • AWS 서비스에서 '암호화'라고 하면 대부분 KMS 암호화를 의미할 가능성이 높음
  • 암호화 키 관리
  • CloudTail을 통해 키를 사용하기 위한 API 호출 추적 가능
  • API call을 통해 KMS 키 암호화 사용 가능 (SDK, CLI 등)
  • KMS 키
    • Symmetric (AES-256)
      • 암호화/복호화에 하나의 키가 사용
      • 대부분의 AWS Service는 대칭키 사용
      • 키 자체에 액세스 불가능 (API call을 통해서만)
    • Asymmetric (RSA & ECC)
      • 암호화에 사용되는 공개키 & 복호화에 사용되는 개인키
      • 암/복호화 및 서명/검증 작업에 사용
      • 공개키는 KMS에서 다운로드 가능 / 개인키 액세스 불가능 (API call을 통해서만)
      • 사용사례 : KMS 키에 액세스할 수 없거나 액세스 권한이 없는 사용자가 클라우드 외부에서 공개키를 통해 암호화 수행
        • AWS 계정에서 개인키로 복호화
  • KMS 키는 리전별로 범위가 지정됨
  • 키에 대한 정책 설정 (Key Policies)
  • 정책 설정이 없으면 아무도 해당 키에 접근 불가능
    • 기본 정책 : 특정한 사용자 지정 KMS 키 정책이 제공되지 않는 경우 생성 / 기본적으로 계정 내 모든 사람이 키에 액세스 허용
    • 사용자 지정 정책 : 키에 액세스 가능한 사용자, 역할 정의 / 키를 관리하는 사람 정의, 교차 계정 액세스 설정 시 유용
  • 4KB 넘어가는 데이터에 대해서는 Envelope Encryption 사용 (GenerateDataKey API)

 

 

SSM Parameter Store

  • 구성 / 보안 암호를 안전하게 보관하기 위한 장소
  • 필요 시 KMS 암호화 가능
  • 서버리스 / 확장성 / 내구성 / SDK 사용 쉬움
  • 구성 업데이트 시 버전 생성되어 버저닝 가능
  • IAM 적용 가능
  • EventBridge로 알림 설정
  • CloudFormation과 통합 (매개변수 사용)
  • 계층별로 데이터 관리 가능 (IAM 접근 권한 범위 지정 가능)
  • 파라미터 정책 설정 가능 (고급 플랜에서만)
    • 파라미터 만료 날짜 설정 가능
    • EventBridge를 통해 n일 뒤 알림 발송 가능 (pw 변경 알림 등에 사용)

 

 

SSM Parameter Store vs Secrets Manager

  • Secrets Manager
    • 더 비쌈
    • 람다 함수를 통해 암호 순환 자동화 가능
    • 람다 함수는 RDS, Redshifts, DocumentDB로부터 제공됨 (시간 절약 가능)
    • KMS 암호화 필수
    • CloudFormation과 통합 가능
  • Parameter Store
    • 비용 저렴
    • 단순한 API
    • 암호 순환은 없음 (CloudWatch 이벤트에 의해 트리거되는 람다 함수를 통해 직접 가능)
    • KMS 암호화 선택
    • CloudFormation과 통합 가능
    • Parameter Store API를 통해 Secrets Manager 암호 풀링 가능

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!