AWS KMS
KMS는 암호화 키를 중앙에서 만들고 보호하며 다른 AWS 서비스가 그 키를 쓰게 하는 계층입니다. 데이터 자체보다 키의 생성, 사용 권한, 회전, 감사 이력을 관리하는 데 초점이 있습니다.
▶아키텍처 다이어그램
🔗 관계 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
디스크, 객체, 데이터베이스를 암호화해야 하는데 키를 파일이나 환경변수로 흩어 놓으면 회전과 접근 감사가 곧 수작업이 됩니다. 데이터는 암호화돼 있어도 키 운영이 허술하면 보호가 오래 가지 않습니다.
애플리케이션이 각자 키를 파일로 들고 있던 방식은 회전과 폐기, 감사가 매우 어렵습니다. 그래서 클라우드 자원 전반에 공통으로 연결할 수 있는 중앙 키 관리 계층인 KMS가 필요해졌습니다.
KMS는 고객 관리 키와 정책, 권한 부여를 관리하고 다른 AWS 서비스가 이 키를 사용해 암호화하도록 연결합니다. 키는 HSM(키를 물리적으로 격리된 하드웨어 장치에 보관하는 보안 모듈) 기반으로 보호되어 소프트웨어 수준의 침해에도 키 자체는 노출되지 않습니다. 누가 어떤 키를 언제 사용했는지 CloudTrail에 남겨 감사 흐름까지 이어집니다.
둘 다 AWS 보안의 핵심입니다. 하지만 IAM은 누가 어떤 작업을 할 수 있는지 정하고, KMS는 데이터를 어떤 키로 암호화하고 복호화할지 정합니다. 접근 권한이 문제면 IAM, 데이터 암호화가 문제면 KMS입니다.
객체 저장소, 블록 볼륨, 관계형 데이터베이스, 애플리케이션 비밀값처럼 암호화 키 관리와 감사가 중요한 워크로드에 적합합니다. 규정 준수 때문에 키 사용 이력까지 남겨야 할 때 특히 유용합니다. 누가 어떤 리소스에 접근 가능한지 자체를 결정하는 계층은 아닙니다.