YOGAE

TODO: FIXME:

AWS KMS

27 Mar 2019

AWS KMS는 데이터를 손쉽게 암호화할 수 있는 관리형 서비스입니다. AWS KMS는 고가용성 키 스토리지, 관리 및 감사 솔루션을 제공하므로, 이를 통해 자체 애플리케이션 내 데이터를 암호화할 뿐만 아니라 AWS 서비스에 저장되는 데이터의 암호화를 제어할 수도 있습니다.

애플리케이션에서 데이터를 암호화해야 하는 개발자의 경우 AWS KMS 지원과 함께 AWS Encryption SDK를 사용하면 암호화 키를 보호하고 손쉽게 사용할 수 있습니다.

AWS KMS에서 수행할 수 있는 키 관리 기능은 다음과 같습니다.

  • 고유 별칭 및 설명과 함께 키 생성
  • 자체 키 구성 요소 가져오기
  • 키를 관리할 수 있는 IAM 사용자 및 역할 정의
  • 키를 사용하여 데이터를 암호화하고 복호화할 수 있는 IAM 사용자 및 역할 정의
  • AWS KMS가 매년 키를 자동으로 교체하도록 선택
  • 아무도 사용할 수 없도록 일시적으로 키 비활성화
  • 비활성화된 키 다시 활성화
  • 더 이상 사용하지 않는 키 삭제
  • AWS CloudTrail의 로그를 검사하여 키 사용 감사
  • 사용자 지정 키 스토어* 생성
  • 사용자 지정 키 스토어* 연결 및 분리
  • 사용자 지정 키 스토어* 삭제

*사용자 지정 키 스토어를 사용하려면 계정에서 CloudHSM 리소스를 사용할 수 있어야 합니다.

AWS KMS를 사용하면 키를 중앙 집중식으로 관리하고 안전하게 저장할 수 있습니다. 이러한 키를 고객 마스터 키(CMK)라고 합니다. CMK는 KMS 또는 AWS CloudHSM 클러스터에서 생성하거나, 혹은 자체 키 관리 인프라에서 가져올 수 있습니다. 마스터 키는 하드웨어 보안 모듈(HSM)에서 보호하기 때문에 계속해서 모듈 내에서만 사용됩니다. 데이터를 KMS에 직접 제출할 때 이 마스터 키를 사용해 암호화하거나 복호화할 수 있습니다. 데이터를 암호화하거나 복호화할 수 있는 사용자와 조건을 결정하는 키 사용 정책을 설정합니다.

사용자 지정 키 스토어

AWS KMS 사용자 지정 키 스토어 기능은 AWS CloudHSM에서 제공하는 제어 기능과 AWS KMS의 통합 및 사용 편의성을 결합한 것입니다.

AWS CloudHSM 클러스터는 사용자가 제어하기 때문에 AWS KMS 마스터 키의 수명 주기를 관리할 수 있는 옵션은 KMS와 상관없이 사용자에게 있습니다. 사용자 지정 키 스토어가 유용한 이유는 다음과 같이 4가지입니다.

  1. 단일 테넌트 HSM에서, 혹은 직접 제어하는 HSM에서 키를 명시적으로 보호해야 하는 경우가 발생할 수 있기 때문입니다.
  2. FIPS 140-2 레벨 3 인증을 받은 HSM에 키를 저장해야 하는 경우가 발생할 수 있기 때문입니다(표준 KMS 키 스토어에서 사용되는 HSM은 다수의 카테고리에서 레벨 3과 함께 레벨 2 인증을 받고 있습니다).
  3. KMS에서 키 구성 요소를 바로 제거한 후 별도의 수단으로 제거 여부를 확인하는 기능이 필요할 수도 있기 때문입니다.
  4. KMS 또는 AWS CloudTrail에 상관없이 모든 키 사용을 감사할 수 있는 요건이 필요할 수도 있기 때문입니다.
  • AWS KMS는 AWS CloudHSM과 어떻게 다릅니까?

    AWS CloudHSM은 키를 저장 및 사용하도록 Amazon Virtual Private Cloud(VPC)에서 FIPS 140-2 레벨 3 인증 단일 테넌트 HSM 클러스터를 제공합니다. AWS와는 별도로 인증 메커니즘을 통해 키가 사용되는 방식을 배타적으로 제어할 수 있습니다.

    AWS KMS를 사용하면 단일 콘솔에서 전 세계 여러 리전의 애플리케이션 및 지원되는 AWS 서비스에서 사용하는 암호화 키를 생성하고 제어할 수 있습니다.