AWS Key Management Service, 기존 암호 키 활용 기능 공개
AWS Key Management Service (KMS) 데이터를 암호화할 때 사용하는 암호화 키를 쉽게 생성하고 제어할 수 있게 해주는 관리형 서비스로서, 하드웨어 보안 모듈(HSM)을 사용하여 키를 안전하게 보호합니다. AWS Key Management Service는 여러 다른 AWS 서비스와 통합되어 이 서비스로 저장하는 데이터를 보호해 줍니다. 또한, AWS CloudTrail과도 통합되어 모든 키 사용에 관한 로그를 제공함으로써 각종 규제 및 규정 준수 요구사항을 충족할 수 있게 지원합니다.
대부분 KMS에서 만드는 키를 사용하지만, 일부 고객의 경우, 로컬에서 제어하는 키를 만들어 사용하는 경우가 있는데, 이를 관리 하기위해 KMS에서 관리해주길 원했습니다.
기존 암호키 활용 기능(Bring Your Own Keys)
이러한 고객 피드백에 대해, 오늘 부터 KMS에서 기존 암호키 활용 기능(Bring Your Own Keys)을 공개합니다. 이를 통해, 매우 민감한 워크로드에 대해 AWS 외부의 키 복사복을 유지할 수 있습니다. 따라서, RSA PKCS #1 표준을 준수하는 HSM (Hardware Security Module) 혹은 다른 키 관리 서비스를 통해 만들어진 키를 가져오거나, 이를 AWS 서비스 및 다른 애플리케이션에서 사용할 수 있습니다. 또한, AWS CloudTrail와 연계하여 세부적인 감사 정보를 얻을 수 있습니다. 종합적으로 고가용성을 위한 AWS 키 관리 서비스를 사용하면서, 암호 키에 대한 라이프 사이클 및 내구성을 높일 수 있습니다. 대부분 키 관리 솔루션은 HSM을 백엔드에서 쓰고 있으나, 모든 HSM이 키 관리 솔루션을 제공하는 것은 아닙니다.
가져오기 기능은 AWS 관리 콘솔, AWS 커맨드 라인 모드 (CLI), 및 KMS API를 이용할 수 있습니다. 보안 키를 공개된 상태로 옮기기 원하지 않기 때문에, 가져오기 과정은 계정에 특별히 제공되는 KMS 공개 키를 가진 KMI로 먼저 감싸는 작업을 하게 됩니다. 이렇게 키를 감싸는 작업은 PKCS #1 스키마를 사용할 수 있습니다.
아래 과정에서 (Importing Key Material in AWS Key Management Service), 키 가져오기를 Create key를 눌러 시작해 보겠습니다.
별칭(Alias)과 소개(Description)를 입력하고, External를 선택한 후, “I understand…” 체크박스를 클릭합니다.
이제 키 관리를 위해 KMS API를 사용할 권한을 가진 IAM 사용자를 선택합니다. (이 과정은 KMS와 외부 키 모두 동일합니다.)
이제 데이터 암호화 및 복호화를 할 키를 사용할 IAM 사용자를 선택합니다.
키 정책을 확인하고, 암호화된 키와 가져오기 토큰을 다운로드 받습니다. 가져오기를 위해 암호화한 키는 2048-bit RSA 공개 키로서 256비트 시크릿 키로 암호화 합니다. 가져오기 토큰에는 KMS에 문제 없이 가져올 수 있도록 하기 위한 메타 데이터를 포함하고 있습니다.
ZIP 파일을 열고, EC2 인스턴스 내 디렉토리로 암호화된 키를 넣습니다. openssl
명령을 두번 하여, 키를 풀게 됩니다. 손쉽게 가져오기를 위해 256 비트 키를 생성하는 방법을 사용했지만, 실제 서비스 환경에서는 키 보안을 위해 상용 키 관리 도구나 HSM 솔루션을 활용 해야 합니다.
$ openssl rand -out plain_text_aes_key.bin 32
$ openssl rsautl -encrypt -in plain_text_aes_key.bin -oaep
-inkey wrappingKey_fcb572d3-6680-449c-91ab-ac3a5c07dc09_0804104355
-pubin -keyform DER -out enc.aes.key
마지막으로 “I am ready to upload…”을 클릭하고, Next를 선택 한 후, 키 만료 기간에 따른 부분은 정의합니다. 만료 기간 이후에는 AWS에서 사용할 수 없기 때문에, 키가 만료되지 않도록 하는 옵션을 선택할 수 있습니다. 만료 기간 후, 새로 가져오기를 선택할 수 있습니다.
Finish를 선택하면, 키를 사용할 수 있게 됩니다.
이제 모두 끝났습니다. 우리는 가져온 키의 만료 일자를 정했기 때문에 KMS는 자동으로 CloudWatch 통계를 생성하고, 키 만료시까지 남아 있는 시간을 추적하게 됩니다. CloudWatch 알림을 만들어 만료 시, 다시 가져오기를 할 수 있는 기능을 만들 수 있습니다. 키가 만료될 때 CloudWatch 이벤트가 만들어지면, 그에 따른 동작을 구현할 수 있습니다.
정식 출시
신규 기능은 China (Beijing)은 제외한 AWS GovCloud (US) 포함 모든 AWS 리전에서 오늘 부터 사용 가능합니다.
— Jeff;
이 글은 New – Bring Your Own Keys with AWS Key Management Service의 한국어 번역으로 AWS Summit 뉴욕 행사에서 신규로 발표된 소식입니다.