Cloud Infra Architecture (AWS)/AWS SAA-C03

AWS Key Management Service (KMS)란?

seongduck 2023. 1. 12. 09:15

암호화 (Encryption)이란?

  • 데이터를 도난이나 해킹으로부터 보호하기 위한 방법
  • 3가지 암호화 방법
    • 1) 전송중 암호화 : 네트워크로 전송하는 트래픽을 암호화
    • 2) 서버측 암호화 : 서버에 저장된 데이터를 암호화
    • 3) 클라이언트측 암호화 : 데이터를 보내기전에 암호화
출처 : AWS Certified Solutions Architecture


Key Management System (KMS)

  • 암호화 키를 생성 및 관리하는 서비스
  • 키(Key)는 암호화를 하고 암호를 해독하는 역할
  • AWS에서 암호화에 관련된 서비스는 대부분 KMS와 관련되어 있음
  • EBS, S3, RDS등의 AWS 서비스 데이터 암호화에 대부분 KMS를 사용
  • 키를 자동으로 교체하는 기능을 지원 (보안을 위해)
  • 감사를 위해 AWS CloudTrail과도 통합되어 모든 키 사용에 관한 로그를 제공
  • 3가지 유형의 키를 제공
    • 1) 고객 관리형 키 (Customer Managed keys) 
      • 사용자가 생성, 소유 및 관리하는 AWS 계정의 KMS 키
      • 키 정책, IAM 정책 및 권한 부여, 암호화 구성요소 등의 제어 권한을 사용자가 가짐
    • 2) AWS 관리형 키 (AWS Managed Keys)
      • AWS 서비스가 고객의 계정에서 고객 대신 생성, 관리 및 사용하는 KMS 키
      • 키 정책, 키 삭제 등의 제어 권한이 없거나 제한이 있음
    • 3) AWS의 키 (AWS Owned Keys)
      • AWS 서비스가 여러 AWS 계정에서 사용하기 위해 소유하고 관리하는 KMS 키 모음


CloudHSM

  • KMS는 AWS에서 관리하는 SW방식의 암호화
  • CloudHSM은 AWS에서 제공하는 하드웨어 암호화 장비를 통한 하드웨어 방식의 암호화
  • KMS와 다르게 암호화 키관리는 사용자(클라이언트)가 해야함
  • 고객 제공 키(SSE-C, Customer Provided Keys)에 적합한 방식


KMS 다중 리전 키 (Multi-Region Keys)

  • 기본적으로 단일 리전에 키를 가지고 있지만 이 경우 여러 리전에서 동일한 키를 가지고 있는 것을 뜻한다.
  • 다중 리전 키의 각 세트에는 동일한 키 구성요소와 키 ID가 있다. 그렇기 때문에 AWS KMS를 다시 암호화하거나 크로스리전 호출을 수행하지 않고 하나의 AWS 리전에서 데이터를 암호화할 수 있다. 이 암호화된 데이터를 다른 리전에서 복호화(원래는 그 리전에 맞는 키)를 할 수 있다.
    • 예를들어, 시드니의 복제본 키를 사용하여 데이터를 암호화하고, 데이터를 오레곤으로 보낸다. 오레곤에서는 복제 키를 사용하여 암호를 복호화할 수 있다. (리전이 다름에도 불구하고)
    • 즉, 동일한 키를 사용하면 다른 리전의 데이터를 서로 다른 키로 다시 암호화 및 복호화할 필요 없음 (복제 키면 모두 가능)
  • Amazon DynamoDB 글로벌 테이블 및 DynamoDB 암호화, 멀티 리전의 복제된 S3 버킷의 암호화 등에 사용 가능하다.


실습


  1. KMS를 검색해 서비스에 들어간다.
  2. AWS에서 직접 생성한 AWS 관리형키(S3, RDS 등등...)
    1. 이때는 키 관리자, 사용자, 암호화 구성 등등 수정이 불가하다.
  3. 키를 직접 만든는 고객 관리형 키(대칭, 비대칭)가 있으며 키를 사용하는 사람, 관리하는 사람, 다른 AWS 계정에 권한을 부여할 수 있다.
    1. 반면 키 관리자, 사용자, 암호화, 활성화, 비활성화 등등 수정할 수 있다.