1. KMS(Key Management Service)란?
AWS Key Management Service(KMS)는 암호화 키의 생성부터 저장, 회전, 삭제까지 전체 수명주기를 관리하고, 실제 암호화 및 복호화 요청도 처리해주는 서비스다. 이 키들은 AWS가 제공하는 FIPS 140-2 인증 하드웨어 보안 모듈(HSM) 내부에서 안전하게 관리되며, 사용자나 AWS 운영자조차 키 내용을 직접 볼 수 없다. 사용자는 키를 보는 것이 아니라, 암호화 또는 복호화를 요청만 하고, 결과만 응답받는 방식이다.
KMS 키는 AWS 콘솔 또는 API를 통해 생성할 수 있고, 각 키에 대한 IAM 권한 설정이나 키 사용 기록 추적도 가능하다. CloudTrail을 통해 어떤 서비스나 사용자가 해당 키를 사용했는지 로그로 확인할 수 있어 감사와 보안 관리에 매우 유리하다.
2. KMS 키의 활용처
KMS는 AWS 전반의 다양한 서비스에서 암호화가 필요한 상황에 사용된다.
사용처 | 예시 설명 |
S3 | SSE-KMS 방식으로 객체 암호화 |
EBS | EC2 인스턴스의 볼륨 암호화 |
RDS | 데이터베이스 내용 암호화 |
Secrets Manager | DB 비밀번호, API 키 등 민감정보 암호화 |
SSM Parameter Store | SecureString 파라미터 암호화 |
Lambda | 환경 변수 암호화 |
CloudTrail | 로그 파일 암호화 |
기타 | 커스텀 앱에서 SDK/API로 직접 암호화 요청 가능 |
3. SSE-S3 vs SSE-KMS 비교
S3는 서버 측 암호화를 위해 두 가지 주요 방식을 제공한다: SSE-S3와 SSE-KMS. 이 두 방식은 모두 AWS가 키를 관리하지만, 보안 제어 수준, 로그 기록 여부, 비용에서 차이가 있다.
항목 | SSE-S3 (S3 기본 키) | SSE-KMS (KMS 키 지정) |
암호화 키 관리 | S3 내부에서 자동 관리 | 사용자가 생성한 KMS 키 지정 가능 |
암호화 방식 | AES-256 | AWS KMS가 제공하는 키로 암호화 |
키 접근 제어 | 불가능 | IAM 및 KMS 정책으로 세분화 가능 |
CloudTrail 로그 추적 | 불가능 | 가능 (누가, 언제 키를 썼는지 기록됨) |
비용 | 무료 | KMS API 호출 수에 따라 과금 발생 |
사용 난이도 | 매우 쉬움 | 중간 (권한 관리 필요) |
SSE-S3는 설정이 간편하고 비용이 들지 않기 때문에 기본적인 보안 요구에 적합하지만, 기업 보안 정책이나 감사 추적이 필요한 환경이라면 SSE-KMS가 더 적합하다.
4. SSE-C (사용자 제공 키)
SSE-C는 사용자(client)가 직접 생성한 암호화 키를 요청마다 함께 보내 S3에서 암호화를 수행하도록 하는 방식이다. 이 방식은 AWS가 키를 저장하지 않기 때문에, 완전한 키 제어가 가능하다는 장점이 있지만, 매 요청마다 키와 그에 대한 무결성 검증값을 함께 보내야 하므로 관리가 복잡하고 실수 위험도 크다.
사용자는 아래와 같은 헤더를 요청에 포함해야 한다:
- x-amz-server-side-encryption-customer-algorithm
: 일반적으로 AES256 - x-amz-server-side-encryption-customer-key
: base64로 인코딩된 암호화 키 - x-amz-server-side-encryption-customer-key-MD5
: 위 키의 base64 인코딩된 MD5 해시값
SSE-C는 데이터 보안에 극도로 민감하고, 자체적인 키 관리 체계를 갖춘 경우에만 사용하는 것이 좋다. 키가 손실되거나 잘못 전달되면 복구가 불가능하기 때문이다.
정리하자면 SSE-S3는 간편하지만 사용자 제어가 거의 없고, SSE-KMS는 보안성과 감사 기능이 뛰어나며 기업 환경에서 선호된다. SSE-C는 최고 수준의 키 제어를 가능하게 하지만 사용 난이도가 높고 실수 시 복구가 어렵다. 따라서 보안 요구 사항과 관리 수준, 비용 등을 종합적으로 고려해 적절한 암호화 방식을 선택하는 것이 중요하다.
'AWS' 카테고리의 다른 글
AWS KMS와 CloudHSM의 차이와 선택 기준 (0) | 2025.05.23 |
---|---|
VPC 내부 EC2 인스턴스 간 통신 구조와 보안 설정 이해하기 (0) | 2025.05.22 |
S3 객체 소유권과 액세스 제어 (0) | 2025.05.20 |
DMS 흐름으로 본 계층 보안의 이유 (0) | 2025.05.19 |
AWS WAF를 활용한 국가 기반 요청 차단 및 예외 IP 허용 (0) | 2025.05.18 |