Skip to main content

암호화

버킷 암호화 설정

버킷에 저장되는 객체를 보호하기 위해 버킷 생성 시 서버 측 암호화 방식을 선택할 수 있습니다.

암호화 방식 비교

암호화 방식키 관리 주체암호화 알고리즘설명
서비스 관리형 키
(Service-managed key)
Object Storage 서비스AES256서비스가 자동으로 관리하는 키를 사용하여 암호화합니다.
별도의 키 관리 없이 모든 객체에 자동으로 암호화가 적용됩니다.
사용자 키
(SSE-KMS)
사용자 (KMS 사용자 키)AES256KMS 서비스에서 사용자가 직접 생성한 사용자 키로 버킷을 암호화합니다.
키에 대한 완전한 제어권을 보유하며, 키 사용 이력을 감사(Audit)할 수 있습니다.
안내
  • 버킷의 암호화 방식은 변경할 수 있습니다. 객체는 업로드 시점의 암호화 방식에 따라 암호화되므로, 방식 변경 전후에 업로드된 객체의 암호화 키가 서로 다를 수 있습니다.
  • 사용자 키(SSE-KMS) 설정 직후 업로드: 버킷에 사용자 키(SSE-KMS) 암호화를 설정한 직후에는 암호화 설정이 완전히 반영되기까지 짧은 시간이 소요될 수 있습니다.
    이 시간 동안 업로드된 객체는 서비스 관리형 키(Service-managed key)로 암호화될 수 있으므로, 암호화 설정 후 잠시 대기한 뒤 객체를 업로드하는 것을 권장합니다.
  • 암호화 방식 변경 후에는 변경 전 객체와 변경 후 객체 각각에 사용된 KMS 사용자 키에 대한 접근 권한이 있어야 정상적으로 복호화할 수 있습니다.
  • KMS 사용자 키가 비활성화되거나 삭제된 경우, 해당 키로 암호화된 버킷의 객체에 접근할 수 없습니다.

SSE-KMS 사용 조건

SSE-KMS로 암호화된 버킷에 객체를 업로드하거나 조회하려면, 요청자의 자격증명이 다음 두 가지 권한을 모두 보유해야 합니다.

주의

두 권한 중 하나라도 누락된 경우 접근이 거부됩니다.

필요 권한설명
KMS 서비스의 IAM 역할KMS 서비스에서 키를 사용한 암호화 작업을 수행할 수 있는 최소 IAM 역할,
자세한 내용은 KMS 역할을 참고하시기 바랍니다
KMS 사용자 키 접근 제어 권한버킷 암호화에 사용된 KMS 사용자 키에 대한 접근 권한
KMS 키 접근 제어에 대한 자세한 내용은 KMS 서비스 가이드를 참고하시기 바랍니다
안내

Presigned URL을 통해 SSE-KMS 암호화 객체에 접근하는 경우에도, Presigned URL을 생성하는 자격 증명에 해당 KMS 사용자 키 접근 권한이 있어야 합니다.

프로젝트 외부 사용자와 SSE-KMS 암호화 버킷 공유 시 주의

버킷 권한은 도메인 내 모든 사용자(프로젝트 외부 포함)에게 부여할 수 있지만, KMS 사용자 키 접근 제어 권한은 해당 프로젝트 내 사용자에게만 부여할 수 있습니다.
따라서 SSE-KMS로 암호화된 버킷의 접근 권한을 프로젝트 외부 사용자에게 부여하더라도, 해당 사용자는 KMS 사용자 키 접근 권한을 가질 수 없어 암호화된 객체에 접근할 수 없습니다.

해결 방안

  • 프로젝트 멤버로 초대: 외부 사용자를 해당 프로젝트의 멤버로 초대한 후, KMS 사용자 키 접근 제어에 해당 사용자를 추가합니다.

KMS 키 상태와 암호화 동작

SSE-KMS로 암호화된 버킷의 객체 암호화/복호화 가능 여부는 KMS 사용자 키의 상태에 따라 결정됩니다.

KMS 키 상태설명신규 객체 암호화기존 객체 복호화
준비(Pre-activation)키가 생성되었지만 운영 상태의 버전이 없는 상태불가불가
운영(Active)암호화 및 복호화 작업을 수행할 수 있는 상태가능가능
정지(Deactivated)비활성화되어 신규 암호화는 불가하나 기존 데이터는 복호화 가능한 상태불가가능
폐기(Destroyed)버전이 영구적으로 삭제되어 복구가 불가능한 상태불가불가
주의

KMS 사용자 키가 정지 또는 폐기 상태가 되면, 해당 키로 암호화된 버킷에 새로운 객체를 업로드할 수 없습니다. 또한 폐기 상태의 경우 기존 객체도 복호화할 수 없어 데이터에 영구적으로 접근이 불가능해집니다.

KMS 키 상태에 대한 자세한 내용은 KMS 키 상태를 참고하시기 바랍니다.

암호화 설정 변경

버킷의 기본 암호화 정보를 확인하고, 암호화 방식 또는 KMS 키를 변경할 수 있습니다.

  1. 카카오클라우드 콘솔 > Storage > Object Storage 메뉴로 이동합니다.
  2. 일반 버킷 목록에서 대상 버킷을 클릭합니다.
  3. 속성 탭의 기본 암호화 섹션에서 현재 암호화 방식과 키 정보를 확인합니다.
  4. [기본 암호화 설정] 버튼을 클릭합니다.
  5. 모달 창에서 변경할 암호화 방식과 KMS 키를 선택한 후 [저장] 버튼을 클릭합니다.

암호화 관련 유의 사항

주의
  • 사용자 키(SSE-KMS) 설정 직후 업로드: 버킷에 사용자 키(SSE-KMS) 암호화를 설정한 직후에는 암호화 설정이 완전히 반영되기까지 짧은 시간이 소요될 수 있습니다. 이 시간 동안 업로드된 객체는 서비스 관리형 키(Service-managed key)로 암호화될 수 있으므로, 암호화 설정 후 잠시 대기한 뒤 객체를 업로드하는 것을 권장합니다.
  • 업로드 시점 기준: 객체는 업로드 시점의 암호화 설정을 따릅니다. 버킷의 기본 암호화 방식을 변경해도 기존에 업로드된 객체의 암호화 방식은 변경되지 않습니다.
  • 암호화 → 비암호화 전환 불가: 암호화된 버킷을 비암호화 버킷으로 전환할 수 없습니다.
  • 비암호화 → 암호화 전환: 버킷 사용량(bytes)이 0인 경우에만 가능합니다.
  • 암호화 방식 변경: Service-managed key와 SSE-KMS 간의 기본 암호화 방식 변경은 버킷 사용량과 무관하게 자유롭게 가능합니다.
  • SSE-C 미지원: 고객 제공 키(SSE-C)는 지원하지 않습니다. 관련 헤더 사용 시 501 응답을 반환합니다.
  • DeleteBucketEncryption 미지원: 버킷 암호화 설정 삭제는 지원하지 않습니다 (403 반환).