암호화의 본질은 "데이터를 못 읽게 만드는 것"이 아니라 "키를 통제하는 것"이다. AES-256으로 암호화한 데이터는 키가 없으면 무의미한 바이트 덩어리지만, 키를 가진 누군가는 데이터를 평문으로 본다. 따라서 클라우드 보안에서 암호화 논의는 거의 항상 키 관리로 귀결된다 — 누가 키를 만들고, 누가 쓰며, 누가 그 사용을 감사하는가. AWS Key Management Service(KMS)는 이 세 가지를 IAM·키 정책·CloudTrail로 통제하는 관리형 키 관리 서비스다.
KMS의 핵심 개념은 **KMS key(예전 명칭 CMK, Customer Master Key)**다. 이 키는 KMS의 FIPS 140-2 검증된 HSM(Hardware Security Module) 경계 밖으로 절대 평문으로 나오지 않는다. 우리가 KMS에 보내는 것은 "이 데이터를 암호화/복호화해 달라"는 API 호출이고, KMS는 HSM 내부에서 연산만 수행해 결과를 돌려준다. 키 자체를 다운로드할 수 없다는 점이 KMS의 보안 모델 전체를 떠받친다.
암호 시스템을 설계할 때 "키 하나로 전부 암호화"는 최악의 구조다. 그 키가 유출되면 전부가 무너지고, 그 키를 회전하려면 전체 데이터를 재암호화해야 하며, 그 키를 쓰는 모든 주체가 같은 권한을 갖는다. 그래서 현대 키 관리는 **계층(hierarchy)**을 쓴다