본문으로 건너뛰기

암호화

Object Storage는 서비스 관리형 키(Service-managed key)와 사용자 키(SSE-KMS)를 사용한 서버 측 암호화를 지원합니다. 암호화 방식은 버킷 생성 시 선택할 수 있으며, 일부 조건에서는 변경이 제한됩니다.

SSE-KMS를 사용하는 경우 버킷 권한 외에 KMS 사용자 키에 대한 접근 권한이 필요합니다. 암호화 방식을 선택하거나 변경하기 전에 암호화 방식별 동작과 제한 사항을 확인하세요.

암호화 방식 비교

암호화 방식키 관리 주체암호화 알고리즘설명
서비스 관리형 키
(Service-managed key)
Object Storage 서비스AES256- 서비스가 자동으로 관리하는 키를 사용해 암호화
- 별도 키 관리 없이 모든 객체에 자동으로 암호화 적용
사용자 키
(SSE-KMS)
사용자(KMS 사용자 키)AES256- KMS 서비스에서 사용자가 직접 생성한 사용자 키로 버킷 암호화
- 키에 대한 완전한 제어권을 보유하며, 키 사용 이력 감사(Audit) 가능

버킷 암호화 설정

버킷을 생성할 때 저장 객체에 적용할 서버 측 암호화 방식을 선택할 수 있습니다. 암호화 방식은 변경할 수 있지만, 변경 전후에 업로드된 객체의 암호화 키가 서로 다를 수 있습니다.

암호화 설정 변경 및 제한 사항

암호화 설정을 변경할 때는 다음 동작과 제한 사항을 확인하세요.

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

SSE-KMS 사용 조건

SSE-KMS로 암호화된 버킷에 객체를 업로드하거나 조회하려면 다음 권한이 필요합니다. 권한이 누락된 경우 접근이 거부됩니다.

필요 권한설명
KMS 역할KMS 키를 사용한 암호화 작업을 수행할 수 있는 역할
- KMS 사용자(User) 이상의 권한 필요
- 자세한 내용은 KMS 역할 참고
KMS 사용자 키 접근 제어 권한버킷 암호화에 사용된 KMS 사용자 키에 대한 접근 권한
- KMS 사용자 키 접근 제어 권한은 동일 프로젝트의 대상에게만 부여 가능
- 자세한 내용은 접근 제어 설정 참고
안내

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

프로젝트 외부 사용자에게 SSE-KMS 암호화 객체 접근 허용 시 주의

프로젝트 외부 사용자는 KMS 사용자 키 접근 제어에 바로 추가할 수 없습니다. 먼저 해당 프로젝트에서 객체 접근에 필요한 Object Storage 역할과 KMS 역할을 부여해 구성원으로 추가해야 합니다.

이후 KMS 사용자 키 접근 제어에 해당 사용자를 추가해야 SSE-KMS 암호화 객체에 접근할 수 있습니다.

KMS 키 상태와 암호화 동작

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

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

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

KMS 키 상태에 대한 자세한 내용은 KMS 키 상태를 참고하세요.